mirror of
https://github.com/lifegpc/pixiv_downloader.git
synced 2026-07-08 01:32:41 +08:00
Add win build for CI
This commit is contained in:
42
scripts/download_resource.py
Normal file
42
scripts/download_resource.py
Normal file
@@ -0,0 +1,42 @@
|
||||
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)
|
||||
Reference in New Issue
Block a user