diff options
| author | Cody Logan <cody@lokken.dev> | 2023-11-01 11:55:44 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-11-01 11:55:44 -0700 |
| commit | 15ffefbd0ca80f240b5468b4ab5cea5e9800ad83 (patch) | |
| tree | c0b5bd30f23183cd81f67622c3534e0ee5417bee /src/wikiget/dl.py | |
| parent | e11e6ec4fc6180f2ffc4905b2561ecc385a29e5d (diff) | |
| parent | 823171ba0bf42766446509f0143b95078285a1f0 (diff) | |
| download | wikiget-15ffefbd0ca80f240b5468b4ab5cea5e9800ad83.tar.gz wikiget-15ffefbd0ca80f240b5468b4ab5cea5e9800ad83.zip | |
Merge pull request #11 from clpo13/add-tests
Add and improve some tests
Diffstat (limited to 'src/wikiget/dl.py')
| -rw-r--r-- | src/wikiget/dl.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/wikiget/dl.py b/src/wikiget/dl.py index c0af6e9..20d8a07 100644 --- a/src/wikiget/dl.py +++ b/src/wikiget/dl.py @@ -49,6 +49,35 @@ def prep_download(dl: str, args: Namespace) -> File: return file +def process_download(args: Namespace) -> None: + if args.batch: + # batch download mode + errors = batch_download(args) + if errors: + # return non-zero exit code if any problems were encountered, even if some + # downloads completed successfully + logger.warning( + f"{errors} problem{'s'[:errors^1]} encountered during batch processing" + ) + sys.exit(1) # completed with errors + else: + # single download mode + try: + file = prep_download(args.FILE, args) + except ParseError as e: + logger.error(e) + sys.exit(1) + except FileExistsError as e: + logger.warning(e) + sys.exit(1) + except (ConnectionError, HTTPError, InvalidResponse, LoginError, APIError): + sys.exit(1) + + errors = download(file, args) + if errors: + sys.exit(1) # completed with errors + + def batch_download(args: Namespace) -> int: errors = 0 |
