diff --git a/GenThumb.py b/GenThumb.py new file mode 100755 index 0000000..49da9df --- /dev/null +++ b/GenThumb.py @@ -0,0 +1,56 @@ +#!/usr/bin/env python3 +# GenThumb.py - Part of the simple s3 gallery +# Usage: ./GenThumb.py + +from pathlib import Path +from PIL import Image +import logging +import _thread +import time + +logging.basicConfig(filename='GenThumb.log', level=logging.DEBUG, + format='%(asctime)s [%(levelname)s] %(message)s', + datefmt='%m/%d/%Y %I:%M:%S %p') +logging.info("---------------") + +baseuri = "https://s3.wasabisys.com/c0de-photography/" +s3_path = "/mnt/photos/" +browse_path = "EOS M100/" +thumb_path = "./thumbs" +thumbsize = (250, 250) + + +logging.info("Getting Paths (Can take time on large directories)") +filelist = list(Path(s3_path + browse_path).rglob("*.[jJ][pP][gG]")) +thumblist = list(Path(thumb_path).rglob("*.[jJ][pP][gG]")) + +def gen_thumb(image): + imagepath = "%s" % image.parent + imagepath = imagepath.strip(s3_path) + pathlist.write(baseuri + imagepath + image.name) + thumbname = "%s/%s:%s" % (thumb_path, imagepath, image.name) + + if image.name in "%s" % thumblist: + logging.debug("Skipping %s" % image) + else: + logging.info("Generating thumbnail for New Image: %s" % (image)) + + img = Image.open(image) + img.thumbnail(thumbsize) + img.save(thumbname) + + logging.info("Saved Thumbnail as %s" % thumbname) + +with open('pathlist.txt', 'w') as pathlist: + for image in filelist: + try: + _thread.start_new_thread(gen_thumb, (image,)) + time.sleep(0.15) + except: + logging.error("unable to start thread") + +logging.info("Wait for all threads to save") + +while(1): + pass +