]> Untitled Git - web-gallery.git/blobdiff - navigator/app/app.py
Updated version to 1.4.0
[web-gallery.git] / navigator / app / app.py
index 33aac3d28c2a627db29b320485ed697d3537fe65..e6bc9b23dc3c84fa8840f43bc91b386af50a59a4 100644 (file)
@@ -4,6 +4,7 @@ import re
 
 app = Flask(__name__)
 gallery_root = "/app/gallery"
+gallery_desc_filename = "description.html"
 get_num_regex = re.compile(r'\d+')
 
 @app.route('/')
@@ -14,7 +15,10 @@ def render_gallery():
             if not gallery.is_file():
                 gallery_names.append(gallery.name)
     gallery_names.sort()
-    return render_template( 'gallery.html', galleries=gallery_names )
+    return render_template( 'gallery.html',
+        title="My Comics",
+        galleries=gallery_names
+        )
 
 def get_page_number_from_name(name):
     try:
@@ -25,8 +29,11 @@ def get_page_number_from_name(name):
 
 @app.route('/<gallery>')
 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 +41,23 @@ 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 description for gallery (if available)
+    desc_filename = gallery_dir + "/" + gallery_desc_filename
+    description = None
+    try:
+        with open(desc_filename, 'r') as file:
+            description = file.read()
+    except:
+        print("Description file not found at " + desc_filename)
+
+    # render!
+    return render_template( 'pages.html',
+        title=gallery,
+        gallery=gallery,
+        description=description,
+        pages=template_pages
+        )
 
 @app.route('/<gallery>/<int:page_num>')
 def render_page(gallery=None, page_num=None):
@@ -57,7 +80,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: