fix: show unsaved F95 covers and clarify import results
This commit is contained in:
1 parent
ad622389bd
commit
785233f763
7 files changed
+152
-23
No files matched your search
@@ -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}. Остальные данные загружены."
|
||||
|
||||
Reference in new issue
Block a user