1 from flask import Flask, render_template
6 gallery_root = "/app/gallery"
7 get_num_regex = re.compile(r'\d+')
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)
17 return render_template( 'gallery.html', galleries=gallery_names )
19 @app.route('/<gallery>')
20 def render_pages(gallery=None):
22 with os.scandir(gallery_root + "/" + gallery) as pages:
24 if page.is_file() and page.name.endswith('.png') or page.name.endswith('.jpg'):
25 page_names.append(page.name)
27 return render_template( 'pages.html', gallery=gallery, pages=page_names )
29 @app.route('/<gallery>/<page>')
30 def render_page(gallery=None, page=None):
31 src = '/images/{}/{}'.format( gallery, page )
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')
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) )
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 )