Esempio n. 1
0
def create():
    file = request.files['file']
    if file:
        filename = secure_filename(file.filename)
        _, extension = os.path.splitext(filename.lower())

        unique_name = "%s%s" % (str(uuid.uuid4()), extension)
        path = app.config['UPLOAD_FOLDER']

        while os.path.isfile(os.path.join(path, unique_name)):
            unique_name = "%s%s" % (str(uuid.uuid4()), extension)

        file.save(os.path.join(path, unique_name))

        handler_class = get_handler(extension)
        data = File(
            filename,
            unique_name,
            path,
            handler_class.type,
            extension,
            request.form['access'],
            current_user.id
        )

        handler = handler_class(data)
        handler.process()

        db_session.add(handler.record)
        db_session.commit()

        return file_json(handler.record)
Esempio n. 2
0
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
Esempio n. 3
0
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
Esempio n. 4
0
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)
Esempio n. 5
0
import sys

if len(sys.argv) > 1:
    if sys.argv[1] == 'user':
        from spice.models import User
        from spice.database import db_session
        name = raw_input('User name: ')
        password = raw_input('Password: '******'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)