Skip to content

Commit a7818fa

Browse files
committed
fixes old episode items that had images none 353a70d
1 parent e0aa931 commit a7818fa

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
from django.db import migrations
2+
from django.conf import settings
3+
from app.models import MediaTypes
4+
from app.providers import services
5+
import logging
6+
7+
logger = logging.getLogger(__name__)
8+
9+
def update_episode_images(apps, schema_editor):
10+
Item = apps.get_model('app', 'Item')
11+
12+
# Get all episode items with default image
13+
episode_items = Item.objects.filter(
14+
media_type=MediaTypes.EPISODE.value,
15+
image=settings.IMG_NONE
16+
)
17+
18+
if not episode_items.exists():
19+
return
20+
21+
logger.info("Starting episode image update migration")
22+
logger.info("Found %s episodes with default images to process", episode_items.count())
23+
24+
items_to_update = []
25+
26+
for item in episode_items:
27+
try:
28+
29+
logger.info(
30+
"Updating image for %s S%sE%s",
31+
item.title,
32+
item.season_number,
33+
item.episode_number
34+
)
35+
season_metadata = services.get_media_metadata(
36+
MediaTypes.SEASON.value,
37+
item.media_id,
38+
item.source,
39+
[item.season_number]
40+
)
41+
42+
for ep_meta in season_metadata.get('episodes', []):
43+
if ep_meta['episode_number'] == int(item.episode_number):
44+
if ep_meta.get('still_path'):
45+
item.image = f"https://image.tmdb.org/t/p/original{ep_meta['still_path']}"
46+
elif 'image' in ep_meta:
47+
item.image = ep_meta['image']
48+
items_to_update.append(item)
49+
break
50+
51+
except Exception as e:
52+
print(f"Failed to update image for episode {item.id}: {str(e)}")
53+
54+
if items_to_update:
55+
Item.objects.bulk_update(items_to_update, ['image'])
56+
57+
class Migration(migrations.Migration):
58+
dependencies = [
59+
('app', '0043_remove_historicalanime_progress_changed_and_more'),
60+
]
61+
62+
operations = [
63+
migrations.RunPython(update_episode_images, reverse_code=migrations.RunPython.noop),
64+
]

0 commit comments

Comments
 (0)