From 31f1940ec8c4aba6a0c21b20eff9657d5d11cf80 Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Sun, 11 May 2025 00:20:08 -0500 Subject: albums thumbnails endpoint and albums endpoint --- flaskapi.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'flaskapi.py') diff --git a/flaskapi.py b/flaskapi.py index 29cea7e..0791016 100644 --- a/flaskapi.py +++ b/flaskapi.py @@ -1,4 +1,5 @@ -from flask import Flask, Blueprint, request, send_from_directory +from flask import Flask, Blueprint, request, send_from_directory, send_file, abort +from flask_cors import CORS app = Flask(__name__, static_folder="static/dist", static_url_path="/") @@ -10,6 +11,7 @@ def home(): return send_from_directory("static/public", "index.html") api = Blueprint("api", __name__) +CORS(api, origins="*") # For debugging TODO remove later @api.route("/seek") def seek(): @@ -24,4 +26,22 @@ def seek(): "imageIndex": pd.current_texture_index, } +@api.route("/albums/get") +def get_albums(): + ic = app.config["immich_connector"] + keys = [ "albumName", "albumThumbnailAssetId", "id", "startDate", "endDate", "assetCount", "shared", ] + return [{ + key: album[key] for key in keys + } for album in ic.load_all_albums() ] + +@api.route("/albums/thumb/") +def get_album_thumb(key): + # TODO ensure getting actual album thumb + ic = app.config["immich_connector"] + image_data, mimetype = ic.load_image(key, size="thumbnail") + if image_data is None: + abort(400) + return send_file(image_data, mimetype=mimetype) + + app.register_blueprint(api, url_prefix="/api") -- cgit v1.2.3