Files
pixiv_downloader/scripts/download_resource.py
2022-10-20 02:35:07 +00:00

43 lines
1.2 KiB
Python

from argparse import ArgumentParser, Namespace
from sys import exit as _exit
from traceback import print_exc
from urllib.parse import urlparse
from os.path import join
try:
from requests import Session
except ImportError:
_exit(2)
except Exception:
print_exc()
_exit(1)
def download_file(arg: Namespace):
s = Session()
fn = urlparse(arg.URL).path.split('/')[-1]
output = fn
if arg.output:
output = arg.output
elif arg.dest:
output = join(arg.dest, fn)
print(f'Downloading {arg.URL} to {output}')
r = s.get(arg.URL, stream=True)
if r.status_code >= 400:
raise Exception(f'Failed to download {arg.URL}')
with open(output, 'wb') as f:
for chunk in r.iter_content(chunk_size=1024):
if chunk:
f.write(chunk)
try:
p = ArgumentParser(description='Download resources from github.')
p.add_argument('URL', help='The URL of the resource.')
p.add_argument('-o', '--output', help='The full path of output file.')
p.add_argument('-d', '--dest', help='The destination directory.')
arg = p.parse_intermixed_args()
download_file(arg)
except Exception:
print_exc()
_exit(1)