X-Git-Url: http://git.purplebirdman.com/web-gallery.git/blobdiff_plain/d731a2bad30aaec2e1f1d63e2bb57062e1ccd503..f999f3b361af28c204af7fc0713634835c01011f:/app/app.py diff --git a/app/app.py b/app/app.py index 86cbf79..e6d723a 100644 --- a/app/app.py +++ b/app/app.py @@ -1,8 +1,45 @@ from flask import Flask, render_template +import os +import re app = Flask(__name__) +gallery_root = "/app/gallery" +get_num_regex = re.compile(r'\d+') @app.route('/') def render_gallery(): - items = ['LittleWilly', 'foo', 'bar'] - return render_template( 'gallery.html', gallery_items=items ) + gallery_names = [] + with os.scandir(gallery_root) as galleries: + for gallery in galleries: + if not gallery.is_file(): + gallery_names.append(gallery.name) + gallery_names.sort() + return render_template( 'gallery.html', galleries=gallery_names ) + +@app.route('/') +def render_pages(gallery=None): + page_names = [] + with os.scandir(gallery_root + "/" + gallery) as pages: + for page in pages: + if page.is_file() and page.name.endswith('.png') or page.name.endswith('.jpg'): + page_names.append(page.name) + page_names.sort() + return render_template( 'pages.html', gallery=gallery, pages=page_names ) + +@app.route('//') +def render_page(gallery=None, page=None): + src = '/images/{}/{}'.format( gallery, page ) + + page_num = int(get_num_regex.findall(page)[-1]) + page_num_str = str(page_num).rjust(3, '0') + next_page_num_str = str(page_num + 1).rjust(3, '0') + prev_page_num_str = str(page_num - 1).rjust(3, '0') + + prev_page_url = '/{}/{}'.format(gallery, page.replace(page_num_str, prev_page_num_str) ) + next_page_url = '/{}/{}'.format(gallery, page.replace(page_num_str, next_page_num_str) ) + + return render_template( 'page.html', + gallery=gallery, page=page, page_num=page_num, + title=page, src=src, alt=page, + prev_page_url=prev_page_url, + next_page_url=next_page_url )