summaryrefslogtreecommitdiff
path: root/animism-align/cli/commands
diff options
context:
space:
mode:
Diffstat (limited to 'animism-align/cli/commands')
-rw-r--r--animism-align/cli/commands/admin/fix_uploads.py45
-rw-r--r--animism-align/cli/commands/site/export.py2
2 files changed, 46 insertions, 1 deletions
diff --git a/animism-align/cli/commands/admin/fix_uploads.py b/animism-align/cli/commands/admin/fix_uploads.py
new file mode 100644
index 0000000..8eaa505
--- /dev/null
+++ b/animism-align/cli/commands/admin/fix_uploads.py
@@ -0,0 +1,45 @@
+import click
+
+@click.command('fix_uploads')
+@click.pass_context
+def cli(ctx):
+ from app.settings import app_cfg
+ from app.sql.common import db, Session, Media
+ from sqlalchemy.orm.attributes import flag_modified
+
+ session = Session()
+ media = session.query(Media).all()
+
+ seen_keys = {}
+ for item in media:
+ if "poster" in item.settings:
+ fix_url(item.settings['poster'])
+ print(item.settings['poster']['url'])
+ if "display" in item.settings:
+ fix_url(item.settings['display'])
+ if "fullsize" in item.settings:
+ fix_url(item.settings['fullsize'])
+ if "thumbnail" in item.settings:
+ fix_url(item.settings['thumbnail'])
+ if "file" in item.settings:
+ fix_url(item.settings['file'])
+ if "image_lookup" in item.settings:
+ fix_lookup(item.settings['image_lookup'])
+ if "display_lookup" in item.settings:
+ fix_lookup(item.settings['display_lookup'])
+ if "thumbnail_lookup" in item.settings:
+ fix_lookup(item.settings['thumbnail_lookup'])
+ # sqlalchemy will not notice deep updates of JSON fields
+ flag_modified(item, "settings")
+ session.add(item)
+ session.commit()
+
+def fix_lookup(lookup):
+ for key, value in lookup.items():
+ fix_url(value)
+
+def fix_url(obj):
+ if 'episode_id' in obj:
+ return
+ obj['episode_id'] = 1
+ obj['url'] = obj['url'].replace('/uploads', '/uploads/1')
diff --git a/animism-align/cli/commands/site/export.py b/animism-align/cli/commands/site/export.py
index 41e41ed..6bafadc 100644
--- a/animism-align/cli/commands/site/export.py
+++ b/animism-align/cli/commands/site/export.py
@@ -24,7 +24,7 @@ MEDIA_ANNOTATION_TYPES = [
help='Whether to rebuild the Javascript bundle')
@click.pass_context
def cli(ctx, opt_output_dir, opt_sync, opt_js):
- """Export a graph"""
+ """Export an episode"""
# ------------------------------------------------
# imports