Rewrite server: FastAPI + auth (users/roles/tokens) + admin WebUI + server-authoritative covers/metadata
This commit is contained in:
+14
-1
@@ -12,7 +12,7 @@ import json
|
||||
import sqlite3
|
||||
import time
|
||||
|
||||
from . import config, covers
|
||||
from . import config, covers, server_client
|
||||
from .db import get_connection
|
||||
|
||||
_failed = {} # (release_id, system) -> time.time() of last failed fetch
|
||||
@@ -199,6 +199,19 @@ def get_or_fetch(release_id, system, fetch_title):
|
||||
info = load(release_id, system)
|
||||
if info is not None:
|
||||
return info
|
||||
# Server is authoritative for metadata when configured — no IGDB/TMDB
|
||||
# fallback; an unreachable server just leaves metadata empty.
|
||||
if server_client.configured():
|
||||
try:
|
||||
meta = server_client.fetch_metadata(system, fetch_title)
|
||||
except Exception as exc: # noqa: BLE001
|
||||
log.warning("server metadata fetch failed for %r: %s", fetch_title, exc)
|
||||
return None
|
||||
if meta:
|
||||
save(release_id, system, meta, manual=False)
|
||||
meta["manual"] = False
|
||||
return meta
|
||||
return None
|
||||
key = (str(release_id), system)
|
||||
last = _failed.get(key)
|
||||
if last is not None and time.time() - last < _FAIL_TTL:
|
||||
|
||||
Reference in New Issue
Block a user