Put downloader logic into phototools
This commit is contained in:
parent
8517d62b45
commit
0037541289
|
@ -1,7 +1,5 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
import argparse, os, requests, sys
|
|
||||||
|
|
||||||
def argparser():
|
def argparser():
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument("url", type=str, nargs="+", help="photo URL as copied from message window")
|
parser.add_argument("url", type=str, nargs="+", help="photo URL as copied from message window")
|
||||||
|
@ -13,54 +11,7 @@ def argparser():
|
||||||
group2.add_argument("-v", "--verbose", help="more verbose output", action="store_true")
|
group2.add_argument("-v", "--verbose", help="more verbose output", action="store_true")
|
||||||
return parser.parse_args()
|
return parser.parse_args()
|
||||||
|
|
||||||
def log(string, shutup = False, output = sys.stderr):
|
|
||||||
if not shutup:
|
|
||||||
print(string, file=output)
|
|
||||||
|
|
||||||
def verboselog(string, verbose = False, output = sys.stderr):
|
|
||||||
if verbose:
|
|
||||||
log(string, False, output)
|
|
||||||
|
|
||||||
def fileDownloader(url, sender = False):
|
|
||||||
if sender:
|
|
||||||
os.makedirs(sender, exist_ok=True)
|
|
||||||
filename = "%s/%s" % (sender, url.split('/')[-1])
|
|
||||||
else:
|
|
||||||
filename = url.split('/')[-1]
|
|
||||||
remote = requests.get(url, stream=True)
|
|
||||||
with open(filename, 'wb') as outfile:
|
|
||||||
for chunk in remote.iter_content(chunk_size=1024):
|
|
||||||
if chunk:
|
|
||||||
outfile.write(chunk)
|
|
||||||
outfile.flush()
|
|
||||||
|
|
||||||
def urlparse(url):
|
|
||||||
if "/img/usr/" in url:
|
|
||||||
return url
|
|
||||||
if "/auswertung/pix/popup.php/" in url:
|
|
||||||
return "http://www.planetromeo.com/img/usr/%s" % url[52:82]
|
|
||||||
else:
|
|
||||||
raise ValueError("%s is not a valid URL" % url)
|
|
||||||
|
|
||||||
def processURL(url, sender = False, geturls = False, verbose = False, shutup = False):
|
|
||||||
verboselog("Processing URL %s..." % url, verbose)
|
|
||||||
try:
|
|
||||||
purl = urlparse(url)
|
|
||||||
except ValueError as e:
|
|
||||||
log("Notice: %s. Skipping." % e, shutup)
|
|
||||||
else:
|
|
||||||
if purl == urlparse(url):
|
|
||||||
log("Warning: You may have copied the image URL rather than the link URL from the message window. Use the link URL instead!", shutup)
|
|
||||||
if geturls:
|
|
||||||
print(purl)
|
|
||||||
elif sender:
|
|
||||||
verboselog("Downloading file to directory %s..." % sender, verbose)
|
|
||||||
fileDownloader(purl, sender)
|
|
||||||
else:
|
|
||||||
verboselog("Downloading file...", verbose)
|
|
||||||
fileDownloader(purl)
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
args = argparser()
|
args = argparser()
|
||||||
for url in args.url:
|
for url in args.url:
|
||||||
processURL(url, args.sender, args.get_urls, args.verbose, args.shut_up)
|
phototools.processURL(url, args.sender, args.get_urls, args.verbose, args.shut_up)
|
||||||
|
|
49
phototools/__init__.py
Normal file
49
phototools/__init__.py
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
import argparse, os, requests, sys
|
||||||
|
|
||||||
|
def log(string, shutup = False, output = sys.stderr):
|
||||||
|
if not shutup:
|
||||||
|
print(string, file=output)
|
||||||
|
|
||||||
|
def verboselog(string, verbose = False, output = sys.stderr):
|
||||||
|
if verbose:
|
||||||
|
log(string, False, output)
|
||||||
|
|
||||||
|
def fileDownloader(url, sender = False):
|
||||||
|
if sender:
|
||||||
|
os.makedirs(sender, exist_ok=True)
|
||||||
|
filename = "%s/%s" % (sender, url.split('/')[-1])
|
||||||
|
else:
|
||||||
|
filename = url.split('/')[-1]
|
||||||
|
remote = requests.get(url, stream=True)
|
||||||
|
with open(filename, 'wb') as outfile:
|
||||||
|
for chunk in remote.iter_content(chunk_size=1024):
|
||||||
|
if chunk:
|
||||||
|
outfile.write(chunk)
|
||||||
|
outfile.flush()
|
||||||
|
|
||||||
|
def urlparse(url):
|
||||||
|
if "/img/usr/" in url:
|
||||||
|
return url
|
||||||
|
if "/auswertung/pix/popup.php/" in url:
|
||||||
|
return "http://www.planetromeo.com/img/usr/%s" % url[52:82]
|
||||||
|
else:
|
||||||
|
raise ValueError("%s is not a valid URL" % url)
|
||||||
|
|
||||||
|
def processURL(url, sender = False, geturls = False, verbose = False, shutup = False):
|
||||||
|
verboselog("Processing URL %s..." % url, verbose)
|
||||||
|
try:
|
||||||
|
purl = urlparse(url)
|
||||||
|
except ValueError as e:
|
||||||
|
log("Notice: %s. Skipping." % e, shutup)
|
||||||
|
else:
|
||||||
|
if purl == urlparse(url):
|
||||||
|
log("Warning: You may have copied the image URL rather than the link URL from the message window. Use the link URL instead!", shutup)
|
||||||
|
if geturls:
|
||||||
|
print(purl)
|
||||||
|
elif sender:
|
||||||
|
verboselog("Downloading file to directory %s..." % sender, verbose)
|
||||||
|
fileDownloader(purl, sender)
|
||||||
|
else:
|
||||||
|
verboselog("Downloading file...", verbose)
|
||||||
|
fileDownloader(purl)
|
||||||
|
|
Loading…
Reference in a new issue