from gevent import monkey from gevent import sleep monkey.patch_all() from threading import Thread from os import remove, mkdir, path from shutil import rmtree from glob import glob from uuid import uuid4 from bottle import route, run from bottle import static_file from bottle import SimpleTemplate from .get import get from .config import IMAGE_CACHE, SINGLE_IMAGE_DELETE_AFTER_SECS, ALBUM_DELETE_AFTER_SECS, template_dir def album(id): req_id = str(uuid4()) req = IMAGE_CACHE get("/a/" + id, req) imgs = glob(req + "*") for c, img in enumerate(imgs): imgs[c] = img.replace(IMAGE_CACHE, '/') with open(f'{template_dir}gallery.html', 'r') as img_view: tpl = SimpleTemplate(img_view) return tpl.render(imgs=imgs) @route('/') @route('') def home(): return static_file("index.html", root=template_dir) @route('/static/') def static(file=''): return static_file(file, root=template_dir) @route('/gallery/') def gallery(id=''): return album(id) @route('/a/') def gallery(id=''): return album(id) @route('/') def hello(img=''): if not path.exists(IMAGE_CACHE + img): get(img, IMAGE_CACHE) return static_file(img, root=IMAGE_CACHE) def start_server(): try: rmtree(IMAGE_CACHE) except FileNotFoundError: pass mkdir(IMAGE_CACHE) run(server='gevent')