ai-frame-image-server/routes/gallery_routes.py

41 lines
1.3 KiB
Python
Raw Permalink Normal View History

from flask import Blueprint, render_template, jsonify, request
2025-06-24 13:01:39 +01:00
import os
import json
2025-06-24 13:01:39 +01:00
bp = Blueprint("gallery_routes", __name__)
image_folder = "./output"
2025-07-09 12:54:17 +01:00
from libs.generic import get_favourites, save_favourites
2025-06-24 13:01:39 +01:00
@bp.route("/images", methods=["GET"])
def gallery():
favourites = get_favourites()
2025-06-24 13:01:39 +01:00
images = [
{"filename": f, "favourited": f in favourites}
2025-06-24 13:01:39 +01:00
for f in os.listdir(image_folder)
if f.lower().endswith(("png", "jpg", "jpeg", "gif"))
]
images = sorted(images, key=lambda x: os.path.getmtime(os.path.join(image_folder, x["filename"])), reverse=True)
return render_template("gallery.html", images=images)
@bp.route("/favourites", methods=["GET"])
def get_favourites_route():
return jsonify(get_favourites())
2025-06-30 14:28:27 +01:00
@bp.route("/favourites/toggle", methods=["POST"])
def toggle_favourite():
data = request.get_json()
filename = data.get("filename")
if not filename:
return jsonify({"status": "error", "message": "Filename missing"}), 400
favourites = get_favourites()
2025-06-30 14:28:27 +01:00
is_favourited = False
if filename in favourites:
favourites.remove(filename)
2025-06-30 14:28:27 +01:00
else:
favourites.append(filename)
is_favourited = True
save_favourites(favourites)
return jsonify({"status": "success", "favourited": is_favourited})