aboutsummaryrefslogtreecommitdiff
path: root/src/wikiget/dl.py
diff options
context:
space:
mode:
authorCody Logan <cody@lokken.dev>2023-11-01 11:55:44 -0700
committerGitHub <noreply@github.com>2023-11-01 11:55:44 -0700
commit15ffefbd0ca80f240b5468b4ab5cea5e9800ad83 (patch)
treec0b5bd30f23183cd81f67622c3534e0ee5417bee /src/wikiget/dl.py
parente11e6ec4fc6180f2ffc4905b2561ecc385a29e5d (diff)
parent823171ba0bf42766446509f0143b95078285a1f0 (diff)
downloadwikiget-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.py29
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