コード例 #1
0
ファイル: api.py プロジェクト: jorol/StoryMapJS
def admin_users(user):
    if not user["uid"] in settings.ADMINS:
        abort(401)
    args = request.args.copy()
    page = int(args.pop("page", 1))
    rpp = int(request.args.get("rpp", 100))
    skip = (page - 1) * rpp
    files = defaultdict(list)
    users = []
    query = {}
    if args.get("uname"):
        if args.get("unamesearch") == "is":
            query.update({"uname": args["uname"]})
        else:
            query.update({"uname": {"$regex": args["uname"], "$options": "i"}})
    if args.get("uid"):
        query.update({"uid": args["uid"]})
    migrated = args.get("migrated")
    if migrated == "migrated":
        query.update({"migrated": 1})
    elif migrated == "unmigrated":
        query.update({"migrated": 0})
    for k in storage.all_keys():
        uid = k.split("/")[1]
        files[uid].append(k)
    pages = 0
    if query:
        for u in _user.find(query, skip=skip, limit=rpp):
            u.update({"files": files[u["uid"]]})
            users.append(u)
        pages = int(math.ceil(_user.find(query).count() / rpp))
    return render_template(
        "admin/users.html",
        **{
            "users": users,
            "page": page,
            "pages": pages,
            "args": args,
            "querystring": urllib.urlencode(args.items()),
            "storage_root": settings.AWS_STORAGE_BUCKET_URL,
        }
    )
コード例 #2
0
ファイル: api.py プロジェクト: maxine/StoryMapJS
def admin_users(user):
    if not user['uid'] in settings.ADMINS:
        abort(401)
    args = request.args.copy()
    page = int(args.pop('page', 1))
    rpp = int(request.args.get('rpp', 100))
    skip = (page - 1) * rpp
    files = defaultdict(list)
    users = []
    query = {}
    if args.get('uname'):
        if args.get('unamesearch') == 'is':
            query.update({'uname': args['uname']})
        else:
            query.update({'uname': {'$regex': args['uname'], '$options': 'i'}})
    if args.get('uid'):
        query.update({'uid': args['uid']})
    migrated = args.get('migrated')
    if migrated == 'migrated':
        query.update({'migrated': 1})
    elif migrated == 'unmigrated':
        query.update({'migrated': 0})
    for k in storage.all_keys():
        uid = k.split('/')[1]
        files[uid].append(k)
    pages = 0
    if query:
        for u in _user.find(query, skip=skip, limit=rpp):
            u.update({'files': files[u['uid']]})
            users.append(u)
        pages = int(math.ceil(_user.find(query).count() / rpp))
    return render_template(
        'admin/users.html', **{
            'users': users,
            'page': page,
            'pages': pages,
            'args': args,
            'querystring': urllib.urlencode(args.items()),
            'storage_root': settings.AWS_STORAGE_BUCKET_URL
        })
コード例 #3
0
ファイル: api.py プロジェクト: TobMcG/StoryMapJS
def admin_users(user):
    if not user['uid'] in settings.ADMINS:
        abort(401)
    args = request.args.copy()
    page = int(args.pop('page', 1))
    rpp = int(request.args.get('rpp', 100))
    skip = (page - 1) * rpp
    files = defaultdict(list)
    users = []
    query = {}
    if args.get('uname'):
        if args.get('unamesearch') == 'is':
            query.update({ 'uname': args['uname'] })
        else:
            query.update({ 'uname':{'$regex': args['uname'], '$options': 'i'}})
    if args.get('uid'):
        query.update({ 'uid': args['uid'] })
    migrated = args.get('migrated')
    if migrated == 'migrated':
        query.update({ 'migrated': 1 })
    elif migrated == 'unmigrated':
        query.update({ 'migrated': 0 })
    for k in storage.all_keys():
        uid = k.split('/')[1]
        files[uid].append(k)
    pages = 0
    if query:
        for u in _user.find(query, skip=skip, limit=rpp):
            u.update({ 'files': files[u['uid']] })
            users.append(u)
        pages = int(math.ceil(_user.find(query).count() / rpp))
    return render_template('admin/users.html', **{
        'users': users,
        'page': page,
        'pages': pages,
        'args': args,
        'querystring': urllib.urlencode(args.items()),
        'storage_root': settings.AWS_STORAGE_BUCKET_URL
    })
コード例 #4
0
def admin_unmatched_files(user):
    if not user['uid'] in settings.ADMINS:
        abort(401)
    files = defaultdict(list)
    users = []
    for k in storage.all_keys():
        uid = k.split('/')[1]
        files[uid].append(k)
    for u in _user.find():
        try:
            del files[u['uid']]
        except KeyError:
            pass
    return _jsonify(files)
コード例 #5
0
ファイル: api.py プロジェクト: dmoses/StoryMapJS
def admin_users(user):
    if not user['uid'] in settings.ADMINS:
        abort(401)
    page = int(request.args.get('page', 1))
    rpp = int(request.args.get('rpp', 100))
    skip = (page - 1) * rpp
    files = defaultdict(list)
    users = []
    for k in storage.all_keys():
        uid = k.split('/')[1]
        files[uid].append(k) 
    for u in _user.find(skip=skip, limit=rpp):
        u.update({ 'files': files[u['uid']] })
        users.append(u)
    return render_template('admin/users.html', **{ 'users': users })
コード例 #6
0
ファイル: render.py プロジェクト: johanez/StoryMapJS
from storymap import storage
from api import app, _write_embed_draft, _write_embed_published
from flask import g

# Find all storymaps with ids that contain bad chars

print "Examining StoryMaps"

regex = re.compile("[^A-Za-z0-9_\-]")

skip = 0
limit = 100
n = _user.count()

while skip < n:
    for user in _user.find({}, skip=skip, limit=limit):
        for id in [id for id in user["storymaps"].keys() if regex.search(id)]:
            key_prefix = storage.key_prefix(user["uid"], id)

            with app.test_request_context():
                print "Writing embed draft for %s" % key_prefix
                _write_embed_draft(key_prefix, user["storymaps"][id])

                if user["storymaps"][id].get("published_on"):
                    print "Writing embed published for %s" % key_prefix
                    _write_embed_published(key_prefix, user["storymaps"][id])

    skip += limit

sys.exit(0)
コード例 #7
0
ファイル: render.py プロジェクト: aladdinarnous/StoryMapJS-1
from storymap import storage
from api import app, _write_embed_draft, _write_embed_published
from flask import g

# Find all storymaps with ids that contain bad chars

print 'Examining StoryMaps'

regex = re.compile('[^A-Za-z0-9_\-]')

skip = 0
limit = 100
n = _user.count()

while skip < n:
    for user in _user.find({}, skip=skip, limit=limit):
        for id in [id for id in user['storymaps'].keys() if regex.search(id)]:
            key_prefix = storage.key_prefix(user['uid'], id)

            with app.test_request_context():
                print 'Writing embed draft for %s' % key_prefix
                _write_embed_draft(key_prefix, user['storymaps'][id])

                if user['storymaps'][id].get('published_on'):
                    print 'Writing embed published for %s' % key_prefix
                    _write_embed_published(key_prefix, user['storymaps'][id])

    skip += limit

sys.exit(0)