from dataclasses import dataclass, field
from typing import Dict, List
@dataclass
class TorrentStream:
# Identification
title: str = ""
type: str = "" # e.g., "torrent" or "debrid" or "direct"
debridType: str = ""
indexer: str = ""
subindexer: str = ""
addonKey: str = ""
addonName: str = ""
addonSourceName: str = ""
addonInstanceLabel: str = ""
guid: str = ""
infoHash: str = ""
# Stats
size: int = 0 # in bytes
seeders: int = 0
peers: int = 0
# Language info
languages: List[str] = field(default_factory=list)
fullLanguages: str = ""
# Source info
provider: str = ""
publishDate: str = "" # ISO format preferred
# Quality and URLs
quality: str = "N/A"
url: str = ""
# Stremio behaviorHints.proxyHeaders.request -- headers the source requires
# on playback (Referer/User-Agent for hotlink-protected CDNs).
proxyHeaders: Dict[str, str] = field(default_factory=dict)
# Flags
isPack: bool = False
isCached: bool = False
addedToDebrid: bool = False
# Codec & HDR
codec: str = ""
hdr: str = ""