summaryrefslogtreecommitdiff
path: root/flaskapi.py
diff options
context:
space:
mode:
Diffstat (limited to 'flaskapi.py')
-rw-r--r--flaskapi.py27
1 files changed, 22 insertions, 5 deletions
diff --git a/flaskapi.py b/flaskapi.py
index beabea0..a539dc5 100644
--- a/flaskapi.py
+++ b/flaskapi.py
@@ -30,16 +30,33 @@ def seek(increment):
return { "imageIndex": display.current_texture_index }
+@api.route("/albums/update", methods=["POST"])
+def albums_update():
+ return { "success": PixMan().update_config(album_list=request.json) }
+
@api.route("/albums")
-def get_albums():
+def albums_get():
if not (ic := PixMan().immich_connector):
return {}
keys = [ "albumName", "albumThumbnailAssetId", "id", "startDate", "endDate", "assetCount", "shared", ]
+ selected_albums = PixMan().config.album_list
return [{
- key: album[key] for key in keys
- } for album in ic.load_all_albums() ]
+ key: album.get(key, None) for key in keys
+ } | { "selected": album in selected_albums } for album in ic.load_all_albums() if album["assetCount"] ]
+
+
+@api.route("/asset/<key>/filename")
+def get_asset_name(key):
+ if not (ic := PixMan().immich_connector):
+ return {}
+ # TODO ensure getting actual album thumb
+ name = ic.load_image_filename(key)
+ if name is None:
+ abort(400)
+ return { "filename": name }
+@api.route("/asset/<key>/fullsize", defaults={ "size": "fullsize" })
@api.route("/asset/<key>/thumbnail", defaults={ "size": "thumbnail" })
@api.route("/asset/<key>", defaults={ "size": "preview" })
def get_asset(key, size):
@@ -61,10 +78,10 @@ def immich_redirect(path):
@api.route("/config/update", methods=["POST"])
def config_update():
- return { "success": PixMan().update_config(Config(**request.json)) }
+ return { "success": PixMan().update_config(**request.json) }
@api.route("/config")
-def config():
+def config_get():
return jsonify(PixMan().config)