|
9 | 9 | import app |
10 | 10 | from app.models import MediaTypes, Sources |
11 | 11 | from app.providers import services |
| 12 | +from app.templatetags import app_tags |
12 | 13 | from integrations.imports import helpers |
13 | 14 | from integrations.imports.helpers import MediaImportError, MediaImportUnexpectedError |
14 | 15 |
|
@@ -65,11 +66,16 @@ def import_data(self): |
65 | 66 | for row in reader: |
66 | 67 | try: |
67 | 68 | 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 | + ) |
70 | 74 | self.warnings.append(error_msg) |
71 | | - logger.error(error_msg, exc_info=True) |
72 | 75 | continue |
| 76 | + except Exception as error: |
| 77 | + error_msg = f"Error processing entry: {row}" |
| 78 | + raise MediaImportUnexpectedError(error_msg) from error |
73 | 79 |
|
74 | 80 | helpers.cleanup_existing_media(self.to_delete, self.user) |
75 | 81 | 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 |
159 | 165 | if row["source"] == Sources.MANUAL.value and row["image"] == "": |
160 | 166 | row["image"] = settings.IMG_NONE |
161 | 167 | 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