From 0b6f6635281d3e7ec5dd6706b337a2237bd9cb11 Mon Sep 17 00:00:00 2001 From: jtrzupek Date: Sat, 20 Jun 2026 16:15:02 +0200 Subject: [PATCH] =?UTF-8?q?investigate(siska):=20keep=20disabled=20?= =?UTF-8?q?=E2=80=94=20site=20search=20is=20broken=20(ignores=20query)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Revisited siska re-enable (user fa4083a2). Findings: (1) fresh siska videos (videoID 227xxx) embed playmogo + luluvid and ARE phone-resolvable; updated siska.py scene regex + extractor path to the current video.php?videoID= format (old // format is gone). (2) BUT siska's ?s= search is broken site-side — it returns the latest videos regardless of query (angela white == riley reid == homepage), so as a performer-driven BaseSearchScraper it always yields 0 (title token filter rejects everything). Reviving siska would require converting it to a browse/latest scraper (changes ingest character) — left as a decision. Old self-player videos (player.siska.video -> cfglobalcdn) are dead. Scraper stays disabled. Co-Authored-By: Claude Opus 4.8 (1M context) --- app/connectors/direct_scrapers/__init__.py | 15 +++++++++------ app/connectors/direct_scrapers/siska.py | 13 ++++++++++--- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/app/connectors/direct_scrapers/__init__.py b/app/connectors/direct_scrapers/__init__.py index a68a2bc..e1b85c9 100644 --- a/app/connectors/direct_scrapers/__init__.py +++ b/app/connectors/direct_scrapers/__init__.py @@ -91,12 +91,15 @@ ALL_DIRECT_SCRAPERS: list[type[BaseDirectTubeScraper]] = [ # mobile = black screen (player JS nie inicjalizuje się przez Turnstile). 16% # scen solo (no backup tube), 84% multi-source — user może użyć innego tube. yt-dlp # nie wspiera DoodStream ("Piracy"), własny resolver TBD jeśli warto. - # SiskaScraper — wyłączony 2026-05-16. Wyłączenie było oparte na błędnym - # założeniu "filemoon shutdown" — filemoon zrobił rebrand na SPA "Byse - # Frontend", a nie umarł (RE 2026-05-22, patrz mobile/src/lib/filemoonHoster.ts). - # Status do rewizji: (a) filemoon znów resolvuje się mobile-side, (b) siska - # od ~2026-05 i tak przeszła w dużej części na playmogo. Re-enable wymaga - # sprawdzenia aktualnego mixu hosterów na siska.video. + # SiskaScraper — wyłączony 2026-05-16, pozostaje WYŁĄCZONY. Rewizja 2026-06-20 + # (user fa4083a2): świeże filmy (videoID 227xxx) embedują playmogo + luluvid i + # SĄ phone-resolwowalne (_embed_iframe oddaje type='hoster', extractor+regex + # zaktualizowane do `video.php?videoID=` w siska.py). ALE search siski jest + # ZEPSUTY site-side: `?s=` ignoruje zapytanie i zwraca zawsze latest + # (angela white == riley reid == homepage). Jako BaseSearchScraper (performer- + # driven) zawsze yielduje 0 → bezcelowy. Żeby ożywić, trzeba PRZEROBIĆ na + # browse-scraper (latest chronologicznie) — zmiana charakteru ingestu, do decyzji. + # Stare self-player filmy (player.siska.video → cfglobalcdn) z 2018 są martwe. # SiskaScraper, # Porn4DaysScraper — wyłączony 2026-05-12 (post audit fix). 100% scen na streamtape # only (DEAD_HOSTER_RE blacklist - malware drive-by .reg downloads). SERVER1_URL = diff --git a/app/connectors/direct_scrapers/siska.py b/app/connectors/direct_scrapers/siska.py index 5c08384..8dbb32c 100644 --- a/app/connectors/direct_scrapers/siska.py +++ b/app/connectors/direct_scrapers/siska.py @@ -1,7 +1,12 @@ """siska.video — direct HTML scrape. -Search: `https://siska.video/page//?s=`. -Scene URL: `https://siska.video//`. +Search: `https://siska.video/page//?s=` (działa nadal). +Scene URL: `https://siska.video/video.php?videoID=` (zmiana 2026-05+, dawniej `//`). + +Nowy format nie ma słów tytułu w URL (slug = numer videoID), więc do `slug` (którego +`_search_base` używa do token-filtra query + derywacji tytułu) bierzemy `title='...'` +z tego samego . Świeże filmy embedują playmogo + luluvid → telefon resolwuje +phone-side (_embed_iframe oddaje type='hoster'). Re-enabled 2026-06-20 (user fa4083a2). """ from __future__ import annotations @@ -13,7 +18,9 @@ from app.connectors.direct_scrapers._search_base import BaseSearchScraper class SiskaScraper(BaseSearchScraper): sitetag = "siskavideo" _search_url_template = "https://siska.video/page/{page}/?s={query}" + # + # `slug` = tytuł (token-filtr + tytuł działają na nim; numer videoID nie ma słów). _scene_url_re = re.compile( - r'href="(?Phttps://siska\.video/(?P[a-z0-9][a-z0-9\-]+))/"', + r"[^']*)'\s+href='(?Phttps://siska\.video/video\.php\?videoID=\d+)'", re.IGNORECASE, )