diff --git a/grawlix/__main__.py b/grawlix/__main__.py index 7ebd75f..21547f3 100644 --- a/grawlix/__main__.py +++ b/grawlix/__main__.py @@ -126,13 +126,20 @@ async def download_series(source: Source, series: Series, args) -> None: :param series: Series to download """ template = args.output or "{series}/{title}.{ext}" + failed: list = [] with logging.progress(series.title, source.name, len(series.book_ids)) as progress: for book_id in series.book_ids: try: book: Book = await source.download_book_from_id(book_id) await download_with_progress(book, progress, template) - except AccessDenied as error: + except AccessDenied: logging.info("Skipping - Access Denied") + except Exception as error: + # Don't let one bad book abort the whole list; record and continue + failed.append((book_id, error)) + logging.info(f"Skipping {book_id} - {type(error).__name__}: {error}") + if failed: + logging.info(f"{len(failed)} book(s) could not be downloaded and were skipped")