summaryrefslogtreecommitdiff
path: root/animism-align/cli/app
diff options
context:
space:
mode:
Diffstat (limited to 'animism-align/cli/app')
-rw-r--r--animism-align/cli/app/controllers/upload_controller.py10
-rw-r--r--animism-align/cli/app/sql/models/upload.py6
-rw-r--r--animism-align/cli/app/sql/versions/202103111524_add_episode_id_to_uploads.py29
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 ###