From 734a85079a7658ab1029d0cab6b0208e67aa60ff Mon Sep 17 00:00:00 2001 From: Joe Abbate Date: Tue, 29 Mar 2022 18:35:37 -0400 Subject: [PATCH 1/3] Fix: Gallery Thumbnails Failing to Re-Assign --- gallery/__init__.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/gallery/__init__.py b/gallery/__init__.py index 033c014..4f31db7 100644 --- a/gallery/__init__.py +++ b/gallery/__init__.py @@ -3,6 +3,7 @@ import os import zipfile import re +import requests import subprocess import tempfile @@ -772,7 +773,12 @@ def display_thumbnail(file_id: int, auth_dict: Optional[Dict[str, Any]] = None): file_model = File.query.filter(File.id == file_id).first() link = storage_interface.get_link("thumbnails/{}".format(file_model.s3_id)) - return redirect(link) + if "LOCAL_STORAGE_PATH" in app.config: + link = "http://" + app.config["SERVER_NAME"] + link + req = requests.get(link) + if req.status_code == requests.codes.ok: + return req.content + abort(404) @app.route("/api/thumbnail/get/dir/") @@ -791,7 +797,14 @@ def display_dir_thumbnail(dir_id: int, auth_dict: Optional[Dict[str, Any]] = Non thumbnail_uuid = thumbnail_uuid.split('.')[0] link = storage_interface.get_link("thumbnails/{}".format(thumbnail_uuid)) - return redirect(link) + if "LOCAL_STORAGE_PATH" in app.config: + link = "http://" + app.config["SERVER_NAME"] + link + req = requests.get(link) + if req.status_code == requests.codes.ok: + return req.content + dir_model.thumbnail_uuid = refresh_directory_thumbnail(dir_model) + db.session.commit() + return display_dir_thumbnail(dir_id) @app.route("/api/file/next/") From 67e8477bb747842db393bd59a511347c2198644d Mon Sep 17 00:00:00 2001 From: Joe Abbate Date: Thu, 31 Mar 2022 01:02:28 -0400 Subject: [PATCH 2/3] Loop over recursion --- gallery/__init__.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/gallery/__init__.py b/gallery/__init__.py index 4f31db7..2187602 100644 --- a/gallery/__init__.py +++ b/gallery/__init__.py @@ -800,11 +800,14 @@ def display_dir_thumbnail(dir_id: int, auth_dict: Optional[Dict[str, Any]] = Non if "LOCAL_STORAGE_PATH" in app.config: link = "http://" + app.config["SERVER_NAME"] + link req = requests.get(link) - if req.status_code == requests.codes.ok: - return req.content - dir_model.thumbnail_uuid = refresh_directory_thumbnail(dir_model) - db.session.commit() - return display_dir_thumbnail(dir_id) + while req.status_code != requests.codes.ok: + dir_model.thumbnail_uuid = refresh_directory_thumbnail(dir_model) + db.session.commit() + link = storage_interface.get_link("thumbnails/{}".format(thumbnail_uuid)) + if "LOCAL_STORAGE_PATH" in app.config: + link = "http://" + app.config["SERVER_NAME"] + link + req = requests.get(link) + return req.content @app.route("/api/file/next/") From c40a79d45d2ac4d494d2ed9f5058ea648304a7ef Mon Sep 17 00:00:00 2001 From: Joe Abbate Date: Thu, 31 Mar 2022 01:29:25 -0400 Subject: [PATCH 3/3] Go to default on file thumbnail fail --- gallery/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gallery/__init__.py b/gallery/__init__.py index 2187602..c2ec87a 100644 --- a/gallery/__init__.py +++ b/gallery/__init__.py @@ -778,7 +778,7 @@ def display_thumbnail(file_id: int, auth_dict: Optional[Dict[str, Any]] = None): req = requests.get(link) if req.status_code == requests.codes.ok: return req.content - abort(404) + return display_thumbnail(util.DEFAULT_THUMBNAIL_NAME) @app.route("/api/thumbnail/get/dir/")