def download_from_imgur(link, post): MAX_ALBUM_LEN = 20 # only download full albums if >20 total images try: downloader = ImgurDownloader(link) if(downloader.num_images() <= MAX_ALBUM_LEN): # Group images by redditor name album_name = post.author.name downloader.save_images("./saved/images/{}".format(album_name)) except: print("Error saving Imgur image: {}".format(link))
def imgurDownload(url, user): vids = [ "gif", "gifv", "mp4" ] try: downloader = ImgurDownloader(url) if downloader.num_images() == 1: verifyCreateDir(user, "images") if any(x in url for x in vids) or any(x in str(downloader.list_extensions()) for x in vids): dltype = "videos" else: dltype = "images" if downloader.imageIDs[0][0] == "": filename = url.split(r'/')[-1] else: if "gif" in downloader.imageIDs[0][1]: filename = downloader.imageIDs[0][0] + ".mp4" else: filename = downloader.imageIDs[0][0] + downloader.imageIDs[0][1] url = "https://i.imgur.com/" + filename downloadFile(url, filename, user, dltype) elif downloader.num_images() == 0: logging.info("IMGUR_EMPTY_ALBUM: {}".format(url)) return else: if not os.path.exists(user + "/albums/" + downloader.get_album_key()): try: downloader.save_images(user + "/albums/" + downloader.get_album_key()) printDownload(user, "albums", downloader.get_album_key() + "/all.html") allhtml = open(user + "/albums/" + downloader.get_album_key() + "/all.html", "w") allhtml.write("<style>\n") allhtml.write(".fixed-ratio-resize { /* basic responsive img class=\"fixed-ratio-resize\" */\n") allhtml.write(" max-width: 100%;\n") allhtml.write(" height: auto;\n") allhtml.write(" width: auto\9; /* IE8 */\n") allhtml.write("}\n") allhtml.write("</style>\n") allhtml.write("\n") allhtml.write("<body text=\"#ffffff\" bgcolor=\"#000000\">") for filename in sorted(os.listdir(user + "/albums/" + downloader.get_album_key())): if "image" in subprocess.run(['file','--brief','--mime-type', user + "/albums/" + downloader.get_album_key() + "/" + filename], stdout=subprocess.PIPE).stdout.decode("utf-8"): allhtml.write("<a href=" + filename + "><img class=\"fixed-ratio-resize\" src=" + filename + "></a><br>" + filename + "<hr>\n") allhtml.write("</body>") allhtml.close() logging.info("IMGUR_ALBUM_DOWNLOAD: {}".format(url)) except Exception as e: logging.info("IMGUR_ALBUM_EXCEPTION: {}".format(e)) pass else: logging.info("ALBUM_EXISTS: {}".format(user + "/albums/" + downloader.get_album_key())) except Exception as e: logging.info("IMGUR_EXCEPTION: {}".format(e)) pass