"""pornditt.com — KVS (kt_player) direct stream extractor. Patrz app/extractors/tubes/_kvs.py.

User bug 2026-05-31 (scene 40f118e1): "Pornditt łapie reklamę zamiast video". pornditt
był na _vps_blocked_fallback (WebView), gdzie scrape łapał VAST preroll (trafostatic) zamiast
contentu. Identyczny silnik jak yespornvip: flashvars `video_url`/`video_alt_url` =
`function/0/...get_file/...` + `license_code`; VPS dociera (HTTP 200). Resolve server-side:
decode + follow 302 → portable CDN (twa.tgprn.com, time-bound, NIE IP/cookie-bound —
zweryfikowane cross-IP 2026-06-01 fresh session → 206 video/mp4). Native, multi-quality,
zero WebView/reklam.

NB: runtime `window.flashvars.video_url` pokazuje już ZDEKODOWANY plain get_file, ale raw
HTML (server-fetch) ma formę `function/0/...` + license — dekodujemy sami (_kvs.real_url).
"""
from __future__ import annotations

from app.extractors._models import StreamSource
from app.extractors.tubes import _kvs

_BASE = "https://v.pornditt.com"


def extract(page_url: str, *, timeout: float = 60.0) -> list[StreamSource] | None:
    return _kvs.resolve_kvs(page_url, base_url=_BASE, timeout=timeout)
