fix: smart routing in Browse — enrichment filters use /api/enriched, discovery uses /api/domains

Root cause: loadDomains() always hit /api/domains (DuckDB 72M rows) and filtered
niche/site_type/prescreen_status client-side on a random page of 100 domains —
virtually none had been classified, so Live+Beauty+Ecommerce always returned 0.

- loadDomains() now routes to /api/enriched when any enrichment filter is active
  (prescreen_status, niche, site_type, country) — all filters are server-side SQLite
- Falls back to /api/domains only when no enrichment filters are set (discovery mode)
- alpha_only and no_sld supported in both modes:
  - DuckDB: existing regex support
  - SQLite: LIKE patterns (no hyphens/digits) + dot-count (no SLD)
- Add alpha_only/no_sld params to /api/enriched endpoint and get_enriched()
- Fix stale d.classified reference in prescreenOne toast

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-06 08:53:54 +02:00
parent daccb99a0c
commit 2f0959b8e8
3 changed files with 33 additions and 10 deletions

View File

@@ -155,6 +155,8 @@ async def enriched(
site_type: str = Query(None),
keyword: str = Query(None),
tld: str = Query(None),
alpha_only: bool = Query(False),
no_sld: bool = Query(False),
page: int = Query(1, ge=1),
limit: int = Query(100, ge=1, le=1000),
):
@@ -162,6 +164,7 @@ async def enriched(
min_score=min_score, country=country,
prescreen_status=prescreen_status, niche=niche, site_type=site_type,
keyword=keyword, tld=tld,
alpha_only=alpha_only, no_sld=no_sld,
page=page, limit=limit,
)
return {"page": page, "limit": limit, "total": total, "results": rows}