Some checks failed
CI / Frontend Lint & Type Check (push) Has been cancelled
CI / Frontend Build (push) Has been cancelled
CI / Backend Lint (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
Deploy / Build & Push Images (push) Has been cancelled
Deploy / Deploy to Server (push) Has been cancelled
Deploy / Notify (push) Has been cancelled
Adds HUNT (Sniper/Trend/Forge), CFO dashboard (burn rate + kill list), and a plugin-based Analyze side panel with caching and SSRF hardening.
24 lines
780 B
Python
24 lines
780 B
Python
from __future__ import annotations
|
|
|
|
from app.schemas.analyze import AnalyzeItem
|
|
from app.services.analyze.base import AnalyzerContribution, AnalyzeContext
|
|
from app.services.analyze.tld_matrix import run_tld_matrix
|
|
|
|
|
|
class TldMatrixAnalyzer:
|
|
key = "tld_matrix"
|
|
ttl_seconds = 60 * 30 # 30m (availability can change)
|
|
|
|
async def analyze(self, ctx: AnalyzeContext) -> list[AnalyzerContribution]:
|
|
rows = await run_tld_matrix(ctx.domain)
|
|
item = AnalyzeItem(
|
|
key="tld_matrix",
|
|
label="TLD Matrix",
|
|
value=[row.__dict__ for row in rows],
|
|
status="info",
|
|
source="dns",
|
|
details={"tlds": [r.tld for r in rows]},
|
|
)
|
|
return [AnalyzerContribution(quadrant="market", items=[item])]
|
|
|