Zostal im tylko zapamietany fronton. Strona glowna oddaje 291 kB i wypisuje 56 filmow, ale KAZDA inna sciezka to 404: listing /movies/ (ten, ktory czytal konektor), /movies/page/2/ linkowana przez ich wlasny szablon, /genre/* i /release-year/* z ich menu, sitemapa, a przede wszystkim same strony filmow, 0 na 6 dzialajacych. To nie blokada na nasze IP, bo przez residential proxy wychodzi identyczne 404 (te same 796 bajtow). Konektor konczyl runy jako success z zerem rekordow, wiec falszowal obraz w monitoringu. Watchdog filmowy czyta te sama liste, wiec alert tez cichnie, i slusznie, bo przestajemy to ingestowac. Playback tego, co juz mamy, dziala dalej: zrodla wskazuja na hostery (doply, luluvid, seekplayer), nie na ten serwis. Klasa zostaje w dooplay.py dla backrefu origins pandamovies:*. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
79 lines
4.5 KiB
Python
79 lines
4.5 KiB
Python
"""Connector registry helpers.
|
|
|
|
Lazy factories, importy connectorów wykonują się dopiero w `get_movie_connectors()`
|
|
żeby uniknąć circular imports (modeles/db). Każdy entry: `(name, class)` w porządku
|
|
ingestu (primary FIRST, mirrory potem, `resolve_movie` wtedy ma do czego dokleić
|
|
mirror playback sources).
|
|
|
|
## Jak dodać nowe movie site
|
|
|
|
1. Napisz subclass `DooplayConnector` w `app/connectors/dooplay.py` (jeśli site używa
|
|
dooplay/PsyPlay WP theme), wystarczy `name` + `base_url`. Jeśli inny theme,
|
|
napisz osobny connector implementujący `BaseMovieConnector.fetch_movies()`.
|
|
2. Dodaj entry do `_MOVIE_CONNECTORS` poniżej.
|
|
3. Backend job `_job_movie_ingest` w `app/scheduler/jobs.py` automatycznie weźmie
|
|
nowy connector przy następnym tick (24h domyślnie).
|
|
4. Do ad-hoc backfillu: `python -m app.scheduler.worker --once --strategy=movies
|
|
--performers=<nowa_nazwa>`.
|
|
|
|
## Czemu paradisehill first
|
|
|
|
Paradisehill jest jedynym sourcem z chapter markerami i pełnym metadata (director,
|
|
rating, country) → idealnie kanoniczny. Dooplay mirrory rzadko mają chaptery i
|
|
release_year zwykle pusty. Resolver `resolve_movie` po title-similarity matchuje
|
|
mirror → primary paradisehill, dodając tylko playback sources (mangoporn:luluvid,
|
|
:voe, …) które rozpakowują się na bezpośredni stream URL przez
|
|
`extract_stream_from_hoster`.
|
|
"""
|
|
from __future__ import annotations
|
|
|
|
|
|
def get_movie_connectors() -> list[tuple[str, type]]:
|
|
"""Zwraca listę (name, ConnectorCls) tuples w kolejności ingestu.
|
|
|
|
Lazy import, uniknięcie circular import bo connectory zaczepiają db/models.
|
|
"""
|
|
from app.connectors.dooplay import (
|
|
MangopornConnector,
|
|
StreampornVipConnector,
|
|
)
|
|
from app.connectors.freeomovie import FreeoMovieConnector
|
|
from app.connectors.paradisehill import ParadisehillConnector
|
|
from app.connectors.yourdailypornmovies import YourDailyPornMoviesConnector
|
|
|
|
# Kolejność ingestu: paradisehill FIRST (canonical primary, mirrory się do
|
|
# niego przyklejają), potem mangoporn (jedyny mirror z realnym new-content,
|
|
# 72 nowych 2026-05-28; streamporn/pandamovies zwracają stale 0 new), na końcu
|
|
# streamporn + pandamovies. Powód reorderu (2026-05-30): gdy streamporn wiesza
|
|
# się intermittentnie, mangoporn musi zdążyć przed nim, patrz per-connector
|
|
# timeout w _job_movie_ingest.
|
|
# streamporn.nl padł (0 new od 2026-05-23) → zastąpiony żywym streamporn.vip
|
|
# (StreampornVipConnector, ocena 2026-07-02). Stara klasa .nl zostaje w dooplay.py
|
|
# dla backref istniejących origins `streamporn:*`, ale nie ingestujemy jej dalej.
|
|
return [
|
|
("paradisehill", ParadisehillConnector),
|
|
("mangoporn", MangopornConnector),
|
|
("streampornvip", StreampornVipConnector),
|
|
# pandamovies WYLACZONY 2026-08-20: serwis padl, zostal im tylko zapamietany
|
|
# fronton. Strona glowna oddaje 291 kB i wypisuje 56 filmow, ale KAZDA inna
|
|
# sciezka to 404: listing /movies/ (ten, ktory czytal konektor), /movies/page/2/
|
|
# linkowana przez ich wlasny szablon, /genre/* i /release-year/* z ich menu,
|
|
# sitemapa, a przede wszystkim same strony filmow (0 na 6 dzialajacych).
|
|
# To nie blokada na nasze IP: przez residential proxy wychodzi identyczne 404
|
|
# (te same 796 bajtow). Konektor konczyl runy jako success z zerem rekordow,
|
|
# co falszowalo obraz w monitoringu. Playback tego, co juz mamy, dziala dalej,
|
|
# bo zrodla wskazuja na hostery (doply, luluvid, seekplayer), nie na ten serwis.
|
|
# Klasa zostaje w dooplay.py dla backrefu origins `pandamovies:*`.
|
|
# ("pandamovies", PandamoviesConnector),
|
|
# freeomovie.to (bestia theme, nie dooplay), mirror: świeże filmy DVD,
|
|
# title-trigram attach do canonical + playback z TABS. Ocena 2026-07-02.
|
|
("freeomovie", FreeoMovieConnector),
|
|
# yourdailypornmovies.ws (własny motyw WP, nie dooplay), ocena 2026-07-28.
|
|
# SPRAWDZONY NA DUPLIKAT: 18/40 filmów ze strony głównej było nowych, bo to inna
|
|
# pula treści (okładki DVD z adultempire, nie re-hosty z pandanetwork.club, na
|
|
# których siedzą mangoporn/pandamovies/speedporn). Katalog min. 8000, do 2003.
|
|
# Metadane: obsada, studio (kryje się pod `/director/`), tagi, rok, synopsis,
|
|
# id produktu Adult Empire. Bez długości. Playback: voe + mixdrop (oba mają
|
|
# gotowe moduły hosterów), vidara.to nieznana, leci jako zwykły embed.
|
|
("yourdailypornmovies", YourDailyPornMoviesConnector),
|
|
]
|