feat: flat design Sunset Glitch + download manager + settings + recommendations overhaul
- Sunset Glitch color palette applied to all templates - Font Awesome icons throughout UI - Download manager with parallel queue and progress tracking - Settings page with dynamic configuration - Recommendations router enhanced with scoring - Local vendor libs (Alpine.js, HTMX) for offline support - Auto test suite with screenshots - Series releases list component - New download model
This commit is contained in:
+10
-15
@@ -296,8 +296,7 @@ async def search_series_unified(
|
||||
|
||||
search_results = await asyncio.gather(*search_tasks, return_exceptions=True)
|
||||
|
||||
# Enrich results with metadata (synopsis, rating, genres)
|
||||
enricher = await get_metadata_enricher()
|
||||
# Enrich results with metadata from scrapers (not Kitsu — Kitsu is anime-only)
|
||||
enrichment_tasks = []
|
||||
enrichment_mapping = []
|
||||
|
||||
@@ -308,17 +307,15 @@ async def search_series_unified(
|
||||
elif result:
|
||||
results[provider_id] = result
|
||||
print(f"[SERIES SEARCH] {provider_id}: Found {len(result)} results")
|
||||
# Prepare enrichment for top 15 results
|
||||
for idx, item in enumerate(result[:15]):
|
||||
if isinstance(item, dict):
|
||||
enrichment_tasks.append(
|
||||
enricher.enrich_metadata(
|
||||
item.get("metadata") or {},
|
||||
item.get("title") or "",
|
||||
item.get("url") or "",
|
||||
# Enrich top 10 results with metadata from the scraper itself
|
||||
downloader = series_downloaders.get(provider_id)
|
||||
if downloader and hasattr(downloader, "get_anime_metadata"):
|
||||
for idx, item in enumerate(result[:10]):
|
||||
if isinstance(item, dict) and item.get("url"):
|
||||
enrichment_tasks.append(
|
||||
downloader.get_anime_metadata(item["url"])
|
||||
)
|
||||
)
|
||||
enrichment_mapping.append((provider_id, idx))
|
||||
enrichment_mapping.append((provider_id, idx))
|
||||
else:
|
||||
print(f"[SERIES SEARCH] {provider_id}: No results returned")
|
||||
|
||||
@@ -334,9 +331,7 @@ async def search_series_unified(
|
||||
and provider_id in results
|
||||
and pos < len(results[provider_id])
|
||||
):
|
||||
results[provider_id][pos]["metadata"] = (
|
||||
meta.model_dump() if hasattr(meta, "model_dump") else meta
|
||||
)
|
||||
results[provider_id][pos]["metadata"] = meta
|
||||
|
||||
# Truncate synopses at sentence boundaries
|
||||
for pid in results:
|
||||
|
||||
Reference in New Issue
Block a user