from flask import Blueprint, current_app, Response, abort from app.immich import ImmichClient bp = Blueprint("proxy", __name__) def _client() -> ImmichClient: return ImmichClient( base_url=current_app.config["IMMICH_URL"], api_key=current_app.config["IMMICH_API_KEY"], ) @bp.get("/proxy/thumb/") def thumb(asset_id): try: data = _client().get_thumbnail(asset_id) except ConnectionError: abort(502) return Response(data, content_type="image/jpeg") @bp.get("/proxy/original/") def original(asset_id): try: data = _client().get_original(asset_id) except ConnectionError: abort(502) return Response(data, content_type="image/jpeg")