Harden request cache titles and cache-only reads
This commit is contained in:
@@ -21,6 +21,7 @@ from ..db import (
|
||||
clear_history,
|
||||
cleanup_history,
|
||||
update_request_cache_title,
|
||||
repair_request_cache_titles,
|
||||
)
|
||||
from ..runtime import get_runtime_settings
|
||||
from ..clients.sonarr import SonarrClient
|
||||
@@ -282,27 +283,10 @@ async def read_logs(lines: int = 200) -> Dict[str, Any]:
|
||||
|
||||
@router.get("/requests/cache")
|
||||
async def requests_cache(limit: int = 50) -> Dict[str, Any]:
|
||||
repaired = repair_request_cache_titles()
|
||||
if repaired:
|
||||
logger.info("Requests cache titles repaired via settings view: %s", repaired)
|
||||
rows = get_request_cache_overview(limit)
|
||||
missing_titles = [row for row in rows if not row.get("title")]
|
||||
if missing_titles:
|
||||
runtime = get_runtime_settings()
|
||||
client = JellyseerrClient(runtime.jellyseerr_base_url, runtime.jellyseerr_api_key)
|
||||
if client.configured():
|
||||
for row in missing_titles:
|
||||
request_id = row.get("request_id")
|
||||
if not isinstance(request_id, int):
|
||||
continue
|
||||
details = await requests_router._get_request_details(client, request_id)
|
||||
if not isinstance(details, dict):
|
||||
continue
|
||||
payload = requests_router._parse_request_payload(details)
|
||||
title = payload.get("title")
|
||||
if not title:
|
||||
continue
|
||||
row["title"] = title
|
||||
if payload.get("year"):
|
||||
row["year"] = payload.get("year")
|
||||
update_request_cache_title(request_id, title, payload.get("year"))
|
||||
return {"rows": rows}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user