fix(ingest): padniete pobrania szczegolow to nie pusta strona, pandamovies na .org
crawl_page oddaje None, gdy padly wszystkie pobrania szczegolow (dlawienie serwisu), zamiast [] liczonego jako pusta strona; naughtymachinima przez to skonczyl na stronie 21 z ~1800. pandamovies.pw przekierowuje na .org, a konektor odrzucal linki spoza swojej domeny (0 filmow od 20.08). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
b19d041f09
commit
0536b1b61c
2 changed files with 17 additions and 1 deletions
|
|
@ -95,12 +95,22 @@ class BaseBrowseScraper(BaseDirectTubeScraper, abc.ABC):
|
||||||
|
|
||||||
log.info("%s browse page %d: %d scene URLs", self.sitetag, page, len(urls))
|
log.info("%s browse page %d: %d scene URLs", self.sitetag, page, len(urls))
|
||||||
out: list[RawScene] = []
|
out: list[RawScene] = []
|
||||||
|
# Pobrania szczegolow, ktore padly (wyjatek albo HTTP >= 400). Gdy padly WSZYSTKIE,
|
||||||
|
# to dlawienie serwisu, a nie pusta strona: zwracamy None (sprobuj pozniej), inaczej
|
||||||
|
# deep-crawl liczy to do pustych stron pod rzad i oznacza koniec katalogu.
|
||||||
|
# naughtymachinima: exhausted na stronie 21 z ~1800 (2026-08-21, wykryte 10-15).
|
||||||
|
failed = 0
|
||||||
for scene_url in urls:
|
for scene_url in urls:
|
||||||
try:
|
try:
|
||||||
res = browser_get(scene_url, timeout=self._timeout, proxy=self._proxy)
|
res = browser_get(scene_url, timeout=self._timeout, proxy=self._proxy)
|
||||||
detail_html = res.text if hasattr(res, "text") else res
|
detail_html = res.text if hasattr(res, "text") else res
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log.info("%s detail fetch failed %s: %s", self.sitetag, scene_url, e)
|
log.info("%s detail fetch failed %s: %s", self.sitetag, scene_url, e)
|
||||||
|
failed += 1
|
||||||
|
continue
|
||||||
|
if getattr(res, "status_code", 200) >= 400:
|
||||||
|
log.info("%s detail HTTP %s %s", self.sitetag, res.status_code, scene_url)
|
||||||
|
failed += 1
|
||||||
continue
|
continue
|
||||||
try:
|
try:
|
||||||
raw = self._parse_detail(scene_url, detail_html)
|
raw = self._parse_detail(scene_url, detail_html)
|
||||||
|
|
@ -109,6 +119,9 @@ class BaseBrowseScraper(BaseDirectTubeScraper, abc.ABC):
|
||||||
continue
|
continue
|
||||||
if raw is not None:
|
if raw is not None:
|
||||||
out.append(raw)
|
out.append(raw)
|
||||||
|
if not out and failed == len(urls):
|
||||||
|
log.warning("%s browse page %d: wszystkie %d pobrania padly", self.sitetag, page, failed)
|
||||||
|
return None
|
||||||
return out
|
return out
|
||||||
|
|
||||||
def latest_scenes(self, *, max_pages: int = 5) -> Iterator[RawScene]:
|
def latest_scenes(self, *, max_pages: int = 5) -> Iterator[RawScene]:
|
||||||
|
|
|
||||||
|
|
@ -625,7 +625,10 @@ class StreampornVipConnector(DooplayConnector):
|
||||||
|
|
||||||
class PandamoviesConnector(DooplayConnector):
|
class PandamoviesConnector(DooplayConnector):
|
||||||
name = "pandamovies"
|
name = "pandamovies"
|
||||||
base_url = "https://pandamovies.pw"
|
# 2026-08 pandamovies.pw -> 302 pandamovies.org; konektor odrzuca linki spoza swojej
|
||||||
|
# domeny, wiec od 20.08 ingest dawal 0 filmow. Id filmu to slug, przeprowadzka nie robi
|
||||||
|
# duplikatow (to samo co streamporn.vip -> .li).
|
||||||
|
base_url = "https://pandamovies.org"
|
||||||
|
|
||||||
|
|
||||||
class MangopornConnector(DooplayConnector):
|
class MangopornConnector(DooplayConnector):
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue