From d7376256f50e72f710bbe708b579a2d7f3906ab5 Mon Sep 17 00:00:00 2001 From: Klaus-Uwe Mitterer Date: Sun, 7 Aug 2016 18:12:13 +0200 Subject: [PATCH] Improve photo handling. Should now handle URLs a lot better. Also added a way to add a parent directory for all photos. --- phototools/__init__.py | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/phototools/__init__.py b/phototools/__init__.py index bbefd2f..693fb95 100644 --- a/phototools/__init__.py +++ b/phototools/__init__.py @@ -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)