diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2020-07-07 10:31:11 +0200 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2020-07-07 10:31:11 +0200 |
| commit | 60f8657b7a9b4130313367b85a5f60e53a89d31c (patch) | |
| tree | 06fb4b67f38e2a3dc7de01d80bd7d6fe66bd0d6d /animism-align/cli | |
| parent | 0c4e611eb7cb54ede61131b829f9edbd2616e32e (diff) | |
media controller
Diffstat (limited to 'animism-align/cli')
| -rw-r--r-- | animism-align/cli/app/controllers/media_controller.py | 19 | ||||
| -rw-r--r-- | animism-align/cli/app/controllers/upload_controller.py | 14 | ||||
| -rw-r--r-- | animism-align/cli/app/server/web.py | 2 |
3 files changed, 28 insertions, 7 deletions
diff --git a/animism-align/cli/app/controllers/media_controller.py b/animism-align/cli/app/controllers/media_controller.py new file mode 100644 index 0000000..e7e620c --- /dev/null +++ b/animism-align/cli/app/controllers/media_controller.py @@ -0,0 +1,19 @@ +from flask import request, jsonify, redirect +from flask_classful import route +from werkzeug.datastructures import MultiDict + +from app.sql.common import db, Session +from app.sql.models.media import Media, MediaForm +from app.controllers.crud_controller import CrudView + +class MediaView(CrudView): + model = Media + form = MediaForm + + def on_create(self, session, form, item): + if 'settings' in form: + item.settings = form['settings'] + + def on_update(self, session, form, item): + if 'settings' in form: + item.settings = form['settings'] diff --git a/animism-align/cli/app/controllers/upload_controller.py b/animism-align/cli/app/controllers/upload_controller.py index 86f9f29..aa29553 100644 --- a/animism-align/cli/app/controllers/upload_controller.py +++ b/animism-align/cli/app/controllers/upload_controller.py @@ -73,13 +73,13 @@ class UploadView(FlaskView): # convert string of image data to uint8 file.seek(0) - nparr = np.fromstring(file.read(), np.uint8) + # nparr = np.fromstring(file.read(), np.uint8) # decode image - try: - im = Image.fromarray(nparr) - except: - return jsonify({ 'status': 'error', 'error': 'Image parse error' }) + # try: + # im = Image.fromarray(nparr) + # except: + # return jsonify({ 'status': 'error', 'error': 'Image parse error' }) session = Session() upload = session.query(Upload).filter_by(sha256=sha256).first() @@ -93,14 +93,14 @@ class UploadView(FlaskView): session.close() return jsonify(response) - uploaded_im_fn = secure_filename(sha256 + ext) + uploaded_im_fn = secure_filename(file.filename) uploaded_im_abspath = os.path.join(app_cfg.DIR_UPLOADS, sha256_tree(sha256)) uploaded_im_fullpath = os.path.join(uploaded_im_abspath, uploaded_im_fn) os.makedirs(uploaded_im_abspath, exist_ok=True) nparr.tofile(uploaded_im_fullpath) - upload = Upload(username=username, sha256=sha256, ext=ext) + upload = Upload(username=username, fn=uploaded_im_fn, sha256=sha256, ext=ext) session.add(upload) session.commit() response = { diff --git a/animism-align/cli/app/server/web.py b/animism-align/cli/app/server/web.py index 8c7bbc2..a20d40c 100644 --- a/animism-align/cli/app/server/web.py +++ b/animism-align/cli/app/server/web.py @@ -19,6 +19,7 @@ from app.settings import app_cfg from app.controllers.annotation_controller import AnnotationView from app.controllers.paragraph_controller import ParagraphView from app.controllers.upload_controller import UploadView +from app.controllers.media_controller import MediaView def create_app(script_info=None): """ @@ -37,6 +38,7 @@ def create_app(script_info=None): AnnotationView.register(app, route_prefix='/api/v1/') ParagraphView.register(app, route_prefix='/api/v1/') UploadView.register(app, route_prefix='/api/v1/') + MediaView.register(app, route_prefix='/api/v1/') index_html = 'index.html' |
