X-Git-Url: http://git.purplebirdman.com/web-gallery.git/blobdiff_plain/17e2bbe79fb35e0422b14a63bafb8be48a0a8d78..bed68c8777e680f9afb8f4eaf5a0404e0b080100:/navigator/app/app.py?ds=sidebyside diff --git a/navigator/app/app.py b/navigator/app/app.py index 33aac3d..50d8cf7 100644 --- a/navigator/app/app.py +++ b/navigator/app/app.py @@ -6,6 +6,26 @@ app = Flask(__name__) gallery_root = "/app/gallery" get_num_regex = re.compile(r'\d+') +### helper functions ### + +def get_page_number_from_name(name): + try: + return int(get_num_regex.findall(name)[-1]) + except IndexError: + print ("Index error on name " + name, flush=True) + return -1 + +def get_file_text(filename): + file_text = None + try: + with open(filename, 'r') as file: + file_text = file.read() + except: + print("File not found:" + filename) + return file_text + +### routes ### + @app.route('/') def render_gallery(): gallery_names = [] @@ -14,19 +34,18 @@ def render_gallery(): if not gallery.is_file(): gallery_names.append(gallery.name) gallery_names.sort() - return render_template( 'gallery.html', galleries=gallery_names ) - -def get_page_number_from_name(name): - try: - return int(get_num_regex.findall(name)[-1]) - except IndexError: - print ("Index error on name " + name, flush=True) - return -1 + return render_template( 'gallery.html', + title="My Comics", + galleries=gallery_names + ) @app.route('/') def render_pages(gallery=None): + gallery_dir = gallery_root + "/" + gallery + + # get list of available pages in gallery template_pages = [] - with os.scandir(gallery_root + "/" + gallery) as pages: + with os.scandir(gallery_dir) as pages: for page in pages: if page.is_file() and page.name.endswith('.png') or page.name.endswith('.jpg'): template_pages.append({ @@ -34,7 +53,17 @@ def render_pages(gallery=None): 'number': get_page_number_from_name(page.name) }) template_pages = sorted(template_pages, key=lambda page: page['number']) - return render_template( 'pages.html', gallery=gallery, pages=template_pages ) + + # get header for gallery (if available) + header_html = get_file_text(gallery_dir + "/header.html") + + # render! + return render_template( 'pages.html', + title=gallery, + gallery=gallery, + header=header_html, + pages=template_pages + ) @app.route('//') def render_page(gallery=None, page_num=None): @@ -57,7 +86,7 @@ def render_page(gallery=None, page_num=None): return render_template( 'page.html', gallery=gallery, page_num=page_num, - title=page_name, src=src, alt=page_name, + title='{} {}'.format(gallery, page_num), src=src, alt=page_name, prev_page_url=prev_page_url, next_page_url=next_page_url ) else: