From ab7a0f6a51f06530bf77dd8f592273136be76653 Mon Sep 17 00:00:00 2001 From: Serene-Arc Date: Tue, 13 Apr 2021 13:22:13 +1000 Subject: [PATCH] Catch errors when resources have no extension This is related to #266 and will prevent the BDFR from completely crashing when a file extension is unknown --- bdfr/file_name_formatter.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/bdfr/file_name_formatter.py b/bdfr/file_name_formatter.py index 9573f2c..17713ed 100644 --- a/bdfr/file_name_formatter.py +++ b/bdfr/file_name_formatter.py @@ -132,11 +132,19 @@ class FileNameFormatter: ) -> list[tuple[Path, Resource]]: out = [] if len(resources) == 1: - out.append((self.format_path(resources[0], destination_directory, None), resources[0])) + try: + out.append((self.format_path(resources[0], destination_directory, None), resources[0])) + except BulkDownloaderException as e: + logger.error(f'Could not generate file path for resource {resources[0].url}: {e}') + logger.exception('Could not generate file path') else: for i, res in enumerate(resources, start=1): logger.log(9, f'Formatting filename with index {i}') - out.append((self.format_path(res, destination_directory, i), res)) + try: + out.append((self.format_path(res, destination_directory, i), res)) + except BulkDownloaderException as e: + logger.error(f'Could not generate file path for resource {res.url}: {e}') + logger.exception('Could not generate file path') return out @staticmethod