diff --git a/app/extractors/tubes/galaxyporn.py b/app/extractors/tubes/galaxyporn.py index ac083f7..00a3e16 100644 --- a/app/extractors/tubes/galaxyporn.py +++ b/app/extractors/tubes/galaxyporn.py @@ -25,6 +25,10 @@ _BASE = "https://galaxyporn.net" _IFRAME_RE = re.compile(r']+src="([^"]+)"', re.IGNORECASE) +#: Hostery, ktorych NIE resolwujemy serwerowo, tylko oddajemy telefonowi do WebView. +_NEEDS_WEBVIEW_RE = re.compile(r"vikingfile\.", re.IGNORECASE) + + def extract(page_url: str, *, timeout: float = 60.0) -> list[StreamSource] | None: html_text = fetch_tube_html(page_url, timeout=timeout) m = _IFRAME_RE.search(html_text) @@ -39,6 +43,25 @@ def extract(page_url: str, *, timeout: float = 60.0) -> list[StreamSource] | Non # weryfikuje wynikowy URL, a HLS galaxyporn jest hotlink-guarded (403 bez # Referera) → wrapper kasował poprawnie zdekodowany stream (sprawdzone: engine # zwracał m3u8, wrapper None dla tych samych scen). + # Od sierpnia 2026 serwis przenosi NOWE wgrania na vikingfile.com: probka + # 2026-08-21 dala 12/12 najnowszych scen na vikingfile i 12/12 najstarszych dalej + # na rodzinie seekplayera. Vikingfile chowa wideo za RENDEROWANYM Cloudflare + # Turnstile (`turnstile.render('#captcha', ...)`, bez trybu invisible), a element + #