From 21d51ca691f55064153410bd3d755eb457460a37 Mon Sep 17 00:00:00 2001 From: goon-foss Date: Sun, 2 Aug 2026 18:01:19 +0200 Subject: [PATCH] chore(hqfap): zdjete zrodlo - Cloudflare JS-challenge nie do przejscia Druga i ostateczna deaktywacja (pierwsza 2026-06-25, wtedy stub-pliki). Strona wdrozyla Cloudflare z JS-challenge na /watch/. Sprawdzone TRZY drogi, wszystkie 403: VPS (Hetzner), residential IP z pelnym kompletem naglowkow przegladarki, oraz Bright Data ISP proxy. Czyli blokada NIE jest po IP - wymaga wykonania JS. Przelaczenie na WebView (commit 140764b) tez nie wystarczylo: challenge pokazuje sie userowi zamiast przechodzic samoczynnie (zgloszenia 92e9133e / 60576a84 / 244131ba). Telemetria: ZERO prob odtworzenia od 27.07, czyli realnie martwe od tygodnia. Utrzymanie wymagaloby headless-przegladarki na VPS - nieproporcjonalne do zysku, decyzja uzytkownika: usunac. Wyrejestrowany scraper (browse) i extractor; 61238 playback_sources oznaczone dead_at. Uwaga: hqporner to INNE zrodlo o mylnie podobnej nazwie - nietkniete, dziala. --- app/connectors/direct_scrapers/__init__.py | 8 +++++++- app/extractors/__init__.py | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/connectors/direct_scrapers/__init__.py b/app/connectors/direct_scrapers/__init__.py index e2c376d..ac5b58b 100644 --- a/app/connectors/direct_scrapers/__init__.py +++ b/app/connectors/direct_scrapers/__init__.py @@ -283,7 +283,13 @@ ALL_BROWSE_SCRAPERS: list[type[BaseBrowseScraper]] = [ # HQFapScraper — PlayTube CMS (re-uploader pornhd.pet). Usunięty 2026-06-25 gdy CAŁA # biblioteka CDN serwowała `/upload/videos/video_down.mp4` stub; PRZYWRÓCONY 2026-07-07 # bo strona wróciła na CDN vstor.top z realnymi plikami (portable cross-IP), user request. - HQFapScraper, + # HQFapScraper — ZDJĘTY 2026-08-02 (druga i ostateczna deaktywacja). Strona wdrożyła + # Cloudflare z JS-challenge na /watch/: 403 z VPS, z residential IP przy pełnych + # nagłówkach przeglądarki ORAZ przez Bright Data ISP proxy — czyli blokada nie jest + # po IP, tylko wymaga wykonania JS. WebView też nie przechodzi automatycznie (user + # widzi challenge: zgłoszenia 60576a84 / 244131ba / 92e9133e). Telemetria: ZERO prób + # odtworzenia od 27.07. Utrzymanie wymagałoby headless-przeglądarki na VPS — + # nieproporcjonalne, decyzja: usunąć (jak 4k69 i pierwsze usunięcie hqfap 2026-06-25). # HQPornerBrowseScraper — dołączony 2026-07-26. hqporner był TYLKO w # ALL_DIRECT_SCRAPERS (search po performerze), więc świeże sceny wchodziły wyłącznie # przy trafieniu na znanego performera → 0 nowych scen w 7 dni (user-report). Browse diff --git a/app/extractors/__init__.py b/app/extractors/__init__.py index cfcdb86..2ae0f4c 100644 --- a/app/extractors/__init__.py +++ b/app/extractors/__init__.py @@ -223,7 +223,7 @@ _REGISTRY: dict[str, Callable[[str], list[StreamSource] | None]] = { # stronę"; telemetria to PRZEMILCZAŁA — zero eventów od 27.07, bo błąd jest przed # playerem). WebView (Chrome engine + JS + cookie) challenge przechodzi, więc # przełączamy na tryb WebView; INJECTED_JS i tak wyłuska mp4 i wróci na native player. - "hqfapcom": _vps_blocked_fallback.extract, + # "hqfapcom" — ZDJĘTY 2026-08-02, patrz komentarz w direct_scrapers/__init__.py. # javflix (JAV, WordPress) — przyciski serwerów to `` # (streamtape/voe/doodstream/emturbovid). Generyczny _embed_iframe łapie je anchor-hoster # patternem → type='hoster', telefon resolwuje (voe backend, dood/filemoon phone-side).