blob: 8eaa5059c749ff45f8f7a1c4b53738d7a5128eb2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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')
|