diff options
| author | Cody Logan <cody@lokken.dev> | 2023-10-20 16:23:28 -0700 |
|---|---|---|
| committer | Cody Logan <cody@lokken.dev> | 2023-10-20 16:23:28 -0700 |
| commit | 05457af0d73ff3a820c0b465e6607fc5832a6e74 (patch) | |
| tree | cc1a6e13d2a651c4048c5092c4f7891bb982c676 /src/wikiget | |
| parent | 59b97c7bef21cf68935b68fa7de6fd67653e21af (diff) | |
| download | wikiget-05457af0d73ff3a820c0b465e6607fc5832a6e74.tar.gz wikiget-05457af0d73ff3a820c0b465e6607fc5832a6e74.zip | |
Reorganize File class
Diffstat (limited to 'src/wikiget')
| -rw-r--r-- | src/wikiget/dl.py | 19 | ||||
| -rw-r--r-- | src/wikiget/file.py | 12 | ||||
| -rw-r--r-- | src/wikiget/parse.py | 4 | ||||
| -rw-r--r-- | src/wikiget/wikiget.py | 4 |
4 files changed, 22 insertions, 17 deletions
diff --git a/src/wikiget/dl.py b/src/wikiget/dl.py index 4521b72..171b017 100644 --- a/src/wikiget/dl.py +++ b/src/wikiget/dl.py @@ -30,10 +30,8 @@ from wikiget.validations import verify_hash def query_api(filename, site_name, args): - logging.debug(f"User agent: {wikiget.USER_AGENT}") - # connect to site and identify ourselves - logging.info(f"Site name: {site_name}") + logging.info(f"Connecting to {site_name}") try: site = Site(site_name, path=args.path, clients_useragent=wikiget.USER_AGENT) if args.username and args.password: @@ -60,7 +58,7 @@ def query_api(filename, site_name, args): # get info about the target file try: - file = site.images[filename] + image = site.images[filename] except APIError as e: # an API error at this point likely means access is denied, which could happen # with a private wiki @@ -71,23 +69,22 @@ def query_api(filename, site_name, args): logging.debug(i) raise - return file, site + return image 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) + file = get_dest(dl, args) + file.image = query_api(file.name, file.site, args) return file def download(f, args): - file = f.object + file = f.image filename = f.name - site = f.site dest = f.dest + site = file.site - if file.imageinfo != {}: + if file.exists: # file exists either locally or at a common repository, like Wikimedia Commons file_url = file.imageinfo["url"] file_size = file.imageinfo["size"] diff --git a/src/wikiget/file.py b/src/wikiget/file.py index c1b9ae6..b890e63 100644 --- a/src/wikiget/file.py +++ b/src/wikiget/file.py @@ -15,9 +15,13 @@ # You should have received a copy of the GNU General Public License # along with Wikiget. If not, see <https://www.gnu.org/licenses/>. +from mwclient.image import Image + +from wikiget import DEFAULT_SITE + class File: - def __init__(self, name, dest=""): + def __init__(self, name: str, dest: str = "", site: str = "") -> None: """ Initializes a new file with the specified name and an optional destination name. @@ -26,8 +30,10 @@ class File: :param dest: destination of the file, if different from the name; if not specified, defaults to the name :type dest: str, optional + :param site: name of the site hosting the file; if not specified, defaults to + the global default site """ - self.object = None - self.site = None + self.image: Image = None self.name = name self.dest = dest if dest else name + self.site = site if site else DEFAULT_SITE diff --git a/src/wikiget/parse.py b/src/wikiget/parse.py index f5c221d..4e9b195 100644 --- a/src/wikiget/parse.py +++ b/src/wikiget/parse.py @@ -52,4 +52,6 @@ def get_dest(dl, args): dest = args.output or filename - return filename, dest, site_name + file = File(filename, dest, site_name) + + return file diff --git a/src/wikiget/wikiget.py b/src/wikiget/wikiget.py index af13bc8..90078e1 100644 --- a/src/wikiget/wikiget.py +++ b/src/wikiget/wikiget.py @@ -195,15 +195,15 @@ def batch_download(args): def main(): - # setup + # setup our environment parser = construct_parser() args = parser.parse_args() - configure_logging(args) # log events are appended to the file if it already exists, so note the start of a # new download session logging.info(f"Starting download session using wikiget {wikiget.wikiget_version}") + logging.debug(f"User agent: {wikiget.USER_AGENT}") if args.batch: # batch download mode |
