diff options
Diffstat (limited to 'animism-align/cli/app')
3 files changed, 41 insertions, 4 deletions
diff --git a/animism-align/cli/app/controllers/upload_controller.py b/animism-align/cli/app/controllers/upload_controller.py index 7122e53..634f15d 100644 --- a/animism-align/cli/app/controllers/upload_controller.py +++ b/animism-align/cli/app/controllers/upload_controller.py @@ -64,6 +64,12 @@ class UploadView(FlaskView): except: raise APIError('No tag specified') + try: + episode_id = request.form.get('episode_id') + # print(episode_id) + except: + raise APIError('No episode_id specified') + if 'image' in request.files: file = request.files['image'] # print(fn) @@ -85,7 +91,7 @@ class UploadView(FlaskView): file.seek(0) uploaded_im_fn = secure_filename(file.filename) - uploaded_im_abspath = os.path.join(app_cfg.DIR_UPLOADS, tag) + uploaded_im_abspath = os.path.join(app_cfg.DIR_UPLOADS, str(episode_id), tag) uploaded_im_fullpath = os.path.join(uploaded_im_abspath, uploaded_im_fn) session = Session() @@ -107,7 +113,7 @@ class UploadView(FlaskView): os.makedirs(uploaded_im_abspath, exist_ok=True) file.save(uploaded_im_fullpath) - upload = Upload(username=username, tag=tag, fn=uploaded_im_fn, sha256=sha256, ext=ext) + upload = Upload(username=username, tag=tag, fn=uploaded_im_fn, sha256=sha256, ext=ext, episode_id=episode_id) session.add(upload) session.commit() response = { diff --git a/animism-align/cli/app/sql/models/upload.py b/animism-align/cli/app/sql/models/upload.py index ae30a54..ea6950f 100644 --- a/animism-align/cli/app/sql/models/upload.py +++ b/animism-align/cli/app/sql/models/upload.py @@ -14,6 +14,7 @@ class Upload(Base): """Table for storing references to various media""" __tablename__ = 'upload' id = Column(Integer, primary_key=True) + episode_id = Column(Integer) sha256 = Column(String(256), nullable=False) fn = Column(String(256), nullable=False) ext = Column(String(4, convert_unicode=True), nullable=False) @@ -24,6 +25,7 @@ class Upload(Base): def toJSON(self): return { 'id': self.id, + 'episode_id': self.episode_id, 'sha256': self.sha256, 'fn': self.fn, 'ext': self.ext, @@ -44,6 +46,6 @@ class Upload(Base): def url(self): if self.tag: - return join('/static/data_store/uploads', self.tag, self.fn) - return join('/static/data_store/uploads', self.fn) + return join('/static/data_store/uploads', str(self.episode_id), self.tag, self.fn) + return join('/static/data_store/uploads', str(self.episode_id), self.fn) # return join(app_cfg.URL_UPLOADS, sha256_tree(self.sha256), self.filename()) diff --git a/animism-align/cli/app/sql/versions/202103111524_add_episode_id_to_uploads.py b/animism-align/cli/app/sql/versions/202103111524_add_episode_id_to_uploads.py new file mode 100644 index 0000000..bccea9e --- /dev/null +++ b/animism-align/cli/app/sql/versions/202103111524_add_episode_id_to_uploads.py @@ -0,0 +1,29 @@ +"""add episode id to uploads + +Revision ID: d00c2398fc5f +Revises: 639488f6e800 +Create Date: 2021-03-11 15:24:07.230796 + +""" +from alembic import op +import sqlalchemy as sa +import sqlalchemy_utc + + +# revision identifiers, used by Alembic. +revision = 'd00c2398fc5f' +down_revision = '639488f6e800' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('upload', sa.Column('episode_id', sa.Integer(), nullable=True)) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column('upload', 'episode_id') + # ### end Alembic commands ### |
