Skip to content

Commit 925a392

Browse files
committed
Refactor error handling in YamtrackImporter
1 parent 3099b3e commit 925a392

File tree

1 file changed

+18
-18
lines changed

1 file changed

+18
-18
lines changed

src/integrations/imports/yamtrack.py

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import app
1010
from app.models import MediaTypes, Sources
1111
from app.providers import services
12+
from app.templatetags import app_tags
1213
from integrations.imports import helpers
1314
from integrations.imports.helpers import MediaImportError, MediaImportUnexpectedError
1415

@@ -65,11 +66,16 @@ def import_data(self):
6566
for row in reader:
6667
try:
6768
self._process_row(row)
68-
except Exception as error:
69-
error_msg = f"Error processing entry: {row.get('title', 'Unknown')} ({row.get('media_type', 'Unknown')}): {error}"
69+
except services.ProviderAPIError as error:
70+
error_msg = (
71+
f"Error processing entry with ID {row['media_id']} "
72+
f"({app_tags.media_type_readable(row['media_type'])}): {error}"
73+
)
7074
self.warnings.append(error_msg)
71-
logger.error(error_msg, exc_info=True)
7275
continue
76+
except Exception as error:
77+
error_msg = f"Error processing entry: {row}"
78+
raise MediaImportUnexpectedError(error_msg) from error
7379

7480
helpers.cleanup_existing_media(self.to_delete, self.user)
7581
helpers.bulk_create_media(self.bulk_media, self.user)
@@ -159,18 +165,12 @@ def _handle_missing_metadata(self, row, media_type, season_number, episode_numbe
159165
if row["source"] == Sources.MANUAL.value and row["image"] == "":
160166
row["image"] = settings.IMG_NONE
161167
else:
162-
try:
163-
metadata = services.get_media_metadata(
164-
media_type,
165-
row["media_id"],
166-
row["source"],
167-
[season_number],
168-
episode_number,
169-
)
170-
row["title"] = metadata["title"]
171-
row["image"] = metadata["image"]
172-
except services.ProviderAPIError as e:
173-
self.warnings.append(
174-
f"Failed to fetch metadata for {row['media_id']}: {e!s}",
175-
)
176-
raise
168+
metadata = services.get_media_metadata(
169+
media_type,
170+
row["media_id"],
171+
row["source"],
172+
[season_number],
173+
episode_number,
174+
)
175+
row["title"] = metadata["title"]
176+
row["image"] = metadata["image"]

0 commit comments

Comments
 (0)