From 931c9be0dfbe200b1b98f523c82f44dec97ed90d Mon Sep 17 00:00:00 2001 From: Johannes Date: Wed, 6 May 2026 05:11:12 +0200 Subject: [PATCH] show upload date next to filesize in slideshow --- Slideshow.py | 3 +++ db.py | 6 +++--- templates/slideshow.html | 5 ++++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/Slideshow.py b/Slideshow.py index 6bea539..4e81d17 100644 --- a/Slideshow.py +++ b/Slideshow.py @@ -39,6 +39,7 @@ def slideshow(): tags_list = [] file_sizes = [] preview_sizes = [] + created_ats = [] for r in results: fname = r['filename'] @@ -47,6 +48,7 @@ def slideshow(): post_urls.append(r['post_url']) tags_list.append(r['tags'].split()) file_sizes.append(os.path.getsize(os.path.join(pictures_dir, fname))) + created_ats.append(r['created_at']) ppath = os.path.join(previews_dir, pname) if pname else '' if pname and os.path.exists(ppath): @@ -66,6 +68,7 @@ def slideshow(): tags_list=tags_list, file_sizes=file_sizes, preview_sizes=preview_sizes, + created_ats=created_ats, active_tags=active_tags, tag_query=raw_query, selected_site=selected_site, diff --git a/db.py b/db.py index a57c6ab..1bd73f0 100644 --- a/db.py +++ b/db.py @@ -76,13 +76,13 @@ def search_images(tag_query, sort=None): with get_conn() as c: if not terms: rows = c.execute( - f"SELECT filename, preview_filename, post_url, tags FROM images ORDER BY {order}" + f"SELECT filename, preview_filename, post_url, tags, created_at FROM images ORDER BY {order}" ).fetchall() else: where = ' AND '.join(['tags LIKE ?'] * len(terms)) params = [f'%{t}%' for t in terms] rows = c.execute( - f"SELECT filename, preview_filename, post_url, tags FROM images WHERE {where} ORDER BY {order}", + f"SELECT filename, preview_filename, post_url, tags, created_at FROM images WHERE {where} ORDER BY {order}", params, ).fetchall() - return [{'filename': r[0], 'preview_filename': r[1], 'post_url': r[2], 'tags': r[3]} for r in rows] + return [{'filename': r[0], 'preview_filename': r[1], 'post_url': r[2], 'tags': r[3], 'created_at': r[4]} for r in rows] diff --git a/templates/slideshow.html b/templates/slideshow.html index 63ea39e..ab3159a 100644 --- a/templates/slideshow.html +++ b/templates/slideshow.html @@ -164,6 +164,7 @@ const tags_list = {{ tags_list|tojson }}; const file_sizes = {{ file_sizes|tojson }}; const preview_sizes = {{ preview_sizes|tojson }}; + const created_ats = {{ created_ats|tojson }}; let use_full = false; @@ -171,6 +172,8 @@ function cur_size(n) { return use_full ? file_sizes[n] : preview_sizes[n]; } function fmt_size(b){ return b >= 1048576 ? (b/1048576).toFixed(1)+' MB' : Math.round(b/1024)+' KB'; } + function fmt_date(ts){ if (!ts) return ''; const d = new Date(ts*1000); return d.getFullYear()+'-'+String(d.getMonth()+1).padStart(2,'0')+'-'+String(d.getDate()).padStart(2,'0'); } + function fmt_label(n){ const d = fmt_date(created_ats[n]); return fmt_size(cur_size(n)) + (d ? ' ยท '+d : ''); } const sidebar = document.getElementById('tag-sidebar'); const current_query = {{ tag_query|tojson }}; @@ -286,7 +289,7 @@ i = n; img.src = cur_src(n); counter.textContent = `${i+1} / ${images.length}`; - file_size_el.textContent = fmt_size(cur_size(n)); + file_size_el.textContent = fmt_label(n); render_tags(n); reset_zoom(); preload_next();