Improve photo handling. Should now handle URLs a lot better. Also added a way to add a parent directory for all photos.

This commit is contained in:
Klaus-Uwe Mitterer 2016-08-07 18:12:13 +02:00
parent 258a192b6a
commit d7376256f5

View file

@ -8,12 +8,9 @@ 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]
def fileDownloader(url, sender = False, directory = False):
os.makedirs("%s/%s" % (directory or ".", sender or "."), exist_ok=True)
filename = "%s/%s/%s" % (directory or ".", sender or ".", url.split('/')[-1])
remote = requests.get(url, stream=True)
with open(filename, 'wb') as outfile:
for chunk in remote.iter_content(chunk_size=1024):
@ -25,11 +22,11 @@ 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]
return "http://www.planetromeo.com/img/usr/%s" % url.split("/")[-1].split("?")[0]
else:
raise ValueError("%s is not a valid URL" % url)
def processURL(url, sender = False, geturls = False, verbose = False, shutup = False):
def processURL(url, sender = False, directory = "photos", geturls = False, verbose = False, shutup = False):
verboselog("Processing URL %s..." % url, verbose)
try:
purl = urlparse(url)
@ -40,10 +37,7 @@ def processURL(url, sender = False, geturls = False, verbose = False, shutup = F
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)
verboselog("Downloading file to directory %s..." % sender, verbose)
fileDownloader(purl, sender, directory)