aboutsummaryrefslogtreecommitdiff
path: root/src/wikiget/dl.py
diff options
context:
space:
mode:
authorCody Logan <clpo13@gmail.com>2023-10-03 13:26:09 -0700
committerCody Logan <clpo13@gmail.com>2023-10-03 13:26:09 -0700
commit865088207b39427b6b932de4f312d82bd5e05a53 (patch)
tree5b22a22263960662d56b0f95e5aa5783034a1b1b /src/wikiget/dl.py
parente18222daecca1656390652cbd1c7f6985080241a (diff)
downloadwikiget-865088207b39427b6b932de4f312d82bd5e05a53.tar.gz
wikiget-865088207b39427b6b932de4f312d82bd5e05a53.zip
Refactor for better code organization
Diffstat (limited to 'src/wikiget/dl.py')
-rw-r--r--src/wikiget/dl.py23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/wikiget/dl.py b/src/wikiget/dl.py
index d32736f..2b2befa 100644
--- a/src/wikiget/dl.py
+++ b/src/wikiget/dl.py
@@ -25,10 +25,11 @@ from requests import ConnectionError, HTTPError
from tqdm import tqdm
import wikiget
+from wikiget.file import File
from wikiget.validations import valid_file, verify_hash
-def download(dl, args):
+def get_dest(dl, args):
url = urlparse(dl)
if url.netloc:
@@ -56,6 +57,10 @@ def download(dl, args):
dest = args.output or filename
+ return filename, dest, site_name
+
+
+def query_api(filename, site_name, args):
logging.debug(f"User agent: {wikiget.USER_AGENT}")
# connect to site and identify ourselves
@@ -101,6 +106,22 @@ def download(dl, args):
logging.debug(i)
sys.exit(1)
+ return file, site
+
+
+def prep_download(dl, args):
+ filename, dest, site_name = get_dest(dl, args)
+ file = File(filename, dest)
+ file.object, file.site = query_api(file.name, site_name, args)
+ return file
+
+
+def download(f, args):
+ file = f.object
+ filename = f.name
+ site = f.site
+ dest = f.dest
+
if file.imageinfo != {}:
# file exists either locally or at a common repository, like Wikimedia Commons
file_url = file.imageinfo["url"]