コード例 #1
0
ファイル: views.py プロジェクト: jdcantrell/spice
def view_raw(key, filename):
    record = db_session.query(File).filter_by(key=key).first()

    if record is not None and can_view_file(record):
        return send_from_directory(record.path, record.filename)

    abort(404)
コード例 #2
0
ファイル: views.py プロジェクト: jdcantrell/spice
def get_file_data(limit=50, offset=0):
    files = []
    if current_user.is_authenticated:
        query = db_session.query(File)
    else:
        query = db_session.query(File).filter_by(access='public')

    files = query.order_by(File.id.desc()).limit(limit).offset(offset).all()

    json = []
    handlers = []
    for record in files:
        json.append(file_json(record))
        handlers.append(get_handler_instance(record))

    return (json, handlers)
コード例 #3
0
ファイル: views.py プロジェクト: jdcantrell/spice
def delete(id):
    record = db_session.query(File).get(id)
    if record is not None:
        handler = get_handler_instance(record)
        handler.delete()

        db_session.delete(record)
        db_session.commit()
        return '', 204
    return '', 404
コード例 #4
0
ファイル: views.py プロジェクト: jdcantrell/spice
def update(id):
    record = db_session.query(File).get(id)
    if record is not None:
        record.access = request.json['access']
        record.name = request.json['name']
        record.handler = request.json['type']
        record.key = request.json['key']
        db_session.add(record)
        db_session.commit()
        return '', 204
    return '', 404
コード例 #5
0
ファイル: views.py プロジェクト: jdcantrell/spice
def login_try():
    username = request.form.get('username', None)
    pw = request.form.get('password', None)
    if username is not None and pw is not None:
        users = db_session.query(User).filter_by(username=username)

        for user in users:
            if check_password_hash(user.password, pw):
                login_user(user, remember=True)
                return redirect(url_for('index'))

    time.sleep(5)

    return login()
コード例 #6
0
ファイル: views.py プロジェクト: jdcantrell/spice
def view(key):
    record = db_session.query(File).filter_by(key=key).first()

    if record is not None and can_view_file(record):
        record.views += 1
        db_session.add(record)
        db_session.commit()

        handler = get_handler_instance(record)
        return render_template(
            handler.template,
            current_path="%s%s" % (app.config['ROOT_WEB_PATH'], request.path),
            static_web_path=app.config['STATIC_WEB_PATH'],
            upload_web_path=app.config['UPLOAD_WEB_PATH'],
            root_web_path=app.config['ROOT_WEB_PATH'],
            handler=handler,
        )

    abort(404)
コード例 #7
0
        db_session.add(user)
        db_session.commit()

        print 'User created: %r' % user.id

    if sys.argv[1] == 'init_db':
        from spice import app
        from spice.database import init_db
        init_db()

        print "Database init"

    if sys.argv[1] == 'process':
        from spice.models import File
        from spice.database import db_session
        from spice.handlers import get_handler_instance
        files = db_session.query(File).order_by(File.id.desc()).all()

        for record in files:
            handler = get_handler_instance(record)
            handler.process()
            db_session.add(handler.record)

            db_session.commit()

else:
    from spice import app
    app.run(debug=True, host='0.0.0.0', port=8080)

    import spice.views
コード例 #8
0
ファイル: views.py プロジェクト: jdcantrell/spice
def load_user(user_id):
    return db_session.query(User).get(int(user_id))