From: Clifton Palmer Date: Sun, 29 Oct 2023 17:24:39 +0000 (-0500) Subject: Initial version X-Git-Tag: 1.0.0 X-Git-Url: http://git.purplebirdman.com/web-gallery.git/commitdiff_plain/7deeaa829328f71e5ce2ef03c1c20c56519369b6 Initial version * No longer exposes filenames --- diff --git a/app/app.py b/app/app.py index e6d723a..33aac3d 100644 --- a/app/app.py +++ b/app/app.py @@ -16,30 +16,49 @@ def render_gallery(): 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 + @app.route('/') def render_pages(gallery=None): - page_names = [] + template_pages = [] 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 ) + template_pages.append({ + 'name': page.name, + '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 ) + +@app.route('//') +def render_page(gallery=None, page_num=None): + + # find a page that I think corrosponds to this page number + page_name = None + with os.scandir(gallery_root + "/" + gallery) as pages: + for page in pages: + if page.is_file(): + num = get_page_number_from_name(page.name) + if int(page_num) == int(num): + page_name = page.name + break + + # if found, create src link to that page + if page_name: + src = '/images/{}/{}'.format( gallery, page_name ) + prev_page_url = "/{}/{}".format( gallery, page_num - 1) + next_page_url = "/{}/{}".format( gallery, page_num + 1) + + return render_template( 'page.html', + gallery=gallery, page_num=page_num, + title=page_name, src=src, alt=page_name, + prev_page_url=prev_page_url, + next_page_url=next_page_url ) + else: + return 'No page found' diff --git a/app/templates/pages.html b/app/templates/pages.html index fe4e751..c1204c9 100644 --- a/app/templates/pages.html +++ b/app/templates/pages.html @@ -8,7 +8,7 @@ diff --git a/docker-compose.yml b/docker-compose.yml index 88d1329..0dcd450 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -18,7 +18,7 @@ services: - gallery gallery: build: . - image: cjpalmer/gallery:0.1.0 + image: cjpalmer/gallery:1.0.0 volumes: - gallery_data:/app/gallery - ./app:/app