]> Untitled Git - web-gallery.git/blob - app/app.py
e6d723a27b2c47652404ad4d9b6d800ad6b9a92b
[web-gallery.git] / app / app.py
1 from flask import Flask, render_template
2 import os
3 import re
4
5 app = Flask(__name__)
6 gallery_root = "/app/gallery"
7 get_num_regex = re.compile(r'\d+')
8
9 @app.route('/')
10 def render_gallery():
11     gallery_names = []
12     with os.scandir(gallery_root) as galleries:
13         for gallery in galleries:
14             if not gallery.is_file():
15                 gallery_names.append(gallery.name)
16     gallery_names.sort()
17     return render_template( 'gallery.html', galleries=gallery_names )
18
19 @app.route('/<gallery>')
20 def render_pages(gallery=None):
21     page_names = []
22     with os.scandir(gallery_root + "/" + gallery) as pages:
23         for page in pages:
24             if page.is_file() and page.name.endswith('.png') or page.name.endswith('.jpg'):
25                 page_names.append(page.name)
26     page_names.sort()
27     return render_template( 'pages.html', gallery=gallery, pages=page_names )
28
29 @app.route('/<gallery>/<page>')
30 def render_page(gallery=None, page=None):
31     src = '/images/{}/{}'.format( gallery, page )
32
33     page_num = int(get_num_regex.findall(page)[-1])
34     page_num_str = str(page_num).rjust(3, '0')
35     next_page_num_str = str(page_num + 1).rjust(3, '0')
36     prev_page_num_str = str(page_num - 1).rjust(3, '0')
37
38     prev_page_url = '/{}/{}'.format(gallery, page.replace(page_num_str, prev_page_num_str) )
39     next_page_url = '/{}/{}'.format(gallery, page.replace(page_num_str, next_page_num_str) )
40
41     return render_template( 'page.html',
42         gallery=gallery, page=page, page_num=page_num,
43         title=page, src=src, alt=page,
44         prev_page_url=prev_page_url,
45         next_page_url=next_page_url )