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)
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
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
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)
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)