fix: show unsaved F95 covers and clarify import results
CI / frontend (push) Failing after 28s
CI / backend (push) Failing after 42s

This commit is contained in:
mrleo1nid committed 2026-10-26 16:10:26 +03:00
1 parent ad622389bd
commit 785233f763
7 files changed
+152 -23

No files matched your search

+6
View File
@@ -1,3 +1,4 @@
import base64
from urllib.parse import quote
from fastapi import APIRouter, HTTPException, status
@@ -6,6 +7,7 @@ from pydantic import BaseModel, SecretStr
from starlette.concurrency import run_in_threadpool
from app import f95
from app.blobs import read_bytes
from app.deps import DB, CurrentUser, has_perm
from app.f95_session import open_session, seal
from app.routers.games import make_cover
@@ -31,6 +33,7 @@ class MetaOut(BaseModel):
description: str = ""
tags: list[str] = []
cover_hash: str | None = None
cover_preview: str | None = None
cover_warning: str | None = None
auth_required: bool = False
metadata_available: bool = True
@@ -47,6 +50,9 @@ def load_metadata(url: str, cookie: str = "", user_agent: str = "") -> dict:
if image := metadata.pop("image_url", None):
try:
metadata["cover_hash"] = make_cover(f95.fetch_image(image, metadata["url"], cookie, user_agent))
# Unsaved covers cannot be read through the protected /blobs route yet.
metadata["cover_preview"] = "data:image/webp;base64," + base64.b64encode(
read_bytes(metadata["cover_hash"])).decode("ascii")
except f95.F95AuthError as e:
metadata["auth_required"] = True
metadata["cover_warning"] = f"{e}. Остальные данные загружены."