Skip to content

Commit 6e48470

Browse files
committed
refactor: optimize item creation logic in lists_modal function
1 parent b388d6b commit 6e48470

File tree

1 file changed

+25
-19
lines changed

1 file changed

+25
-19
lines changed

src/lists/views.py

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -246,25 +246,31 @@ def lists_modal(
246246
episode_number=None,
247247
):
248248
"""Return the modal showing all custom lists and allowing to add to them."""
249-
metadata = services.get_media_metadata(
250-
media_type,
251-
media_id,
252-
source,
253-
[season_number],
254-
episode_number,
255-
)
256-
257-
item, _ = Item.objects.get_or_create(
258-
media_id=media_id,
259-
source=source,
260-
media_type=media_type,
261-
season_number=season_number,
262-
episode_number=episode_number,
263-
defaults={
264-
"title": metadata["title"],
265-
"image": metadata["image"],
266-
},
267-
)
249+
try:
250+
item = Item.objects.get(
251+
media_id=media_id,
252+
source=source,
253+
media_type=media_type,
254+
season_number=season_number,
255+
episode_number=episode_number,
256+
)
257+
except Item.DoesNotExist:
258+
metadata = services.get_media_metadata(
259+
media_type,
260+
media_id,
261+
source,
262+
[season_number],
263+
episode_number,
264+
)
265+
item = Item.objects.create(
266+
media_id=media_id,
267+
source=source,
268+
media_type=media_type,
269+
season_number=season_number,
270+
episode_number=episode_number,
271+
title=metadata["title"],
272+
image=metadata["image"],
273+
)
268274

269275
custom_lists = CustomList.objects.get_user_lists_with_item(request.user, item)
270276

0 commit comments

Comments
 (0)