File size: 913 Bytes
28779c1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
from dataclasses import dataclass, field
from typing import List, Literal, Optional


@dataclass
class ProfileSnapshot:
    bmc_url: str
    name: Optional[str]
    slug: Optional[str]
    bio: Optional[str]
    external_links: List[str]
    has_nsfw: Optional[bool]
    payment_method: Optional[str]
    limitations: List[str] = field(default_factory=list)


@dataclass
class ResolvedLink:
    original_url: str
    final_url: Optional[str]
    final_domain: Optional[str]
    status_code: Optional[int]

    redirect_chain: List[str]
    title: Optional[str]
    error: Optional[str]


@dataclass
class EvidenceItem:
    type_: str
    category: str
    confidence: Literal["high", "medium", "low"]
    snippet: str
    source: str
    points: int


@dataclass
class RiskAssessment:
    risk_score: int
    risk_level: str
    recommended_action: str
    evidence: List[EvidenceItem]
    limitations: List[str]