diff --git a/app/api/movies.py b/app/api/movies.py index f3cd4be..24c07fb 100644 --- a/app/api/movies.py +++ b/app/api/movies.py @@ -179,9 +179,33 @@ _MOVIE_DEPRIORITIZED_HOSTERS = frozenset({ }) +# Rodzina DoodStream (playmogo, doply, myvidplay i klony) wymaga KLIKANEGO Cloudflare +# Turnstile: widżet pojawia sie dopiero po tapie w play i przeladowaniu, wiec +# `pass_md5` nie ma w HTML i telefon nie rozwiaze tego sam (memory 2026-08-26, INJECTED_JS +# omija te hosty). Skutek w telemetrii: ZERO zdarzen odtwarzania w 30 dniach, bo droga +# WebView niczego nie raportuje, podczas gdy mixdrop/voe/luluvid/vidara graja w ~99%. +# +# Dotad te originy mialy priorytet neutralny (500) i sortowaly sie z dzialajacymi po dacie +# dodania, a doply/playmogo bywaja dopisane jako OSTATNIE, wiec ladowaly na GORZE listy +# "Watch on". Zgloszenia "Playmogo nie dziala tutaj" (1278eb49, 2026-09-04) i seria +# "Myvidplay nie dziala" (3b75cb54, d3af0813, 11d7b17b) to dokladnie ten mechanizm: +# zgloszony film mial obok zywy mixdrop, ktory gra. +# +# Pomiar 2026-09-05: rodzina siedzi w 54 446 filmach, z czego 54 320 (99,8%) ma dzialajaca +# alternatywe. Tylko 126 filmow zalezy od niej wylacznie, dla nich zostaje jako ostatnia +# deska ratunku, wiec de-ranking nikomu nie zabiera dostepu. Lista hostow = doodstream.ts. +_MOVIE_INTERACTIVE_HOSTERS = frozenset({ + "playmogo", "myvidplay", "doply", "doodstream", "dood", "d0000d", "dooood", + "do0od", "do7go", "ds2play", "vikingfile", "vide0", +}) + + def _movie_origin_priority(origin: str) -> int: - if origin.rpartition(":")[2] in _MOVIE_DEPRIORITIZED_HOSTERS: + host = origin.rpartition(":")[2] + if host in _MOVIE_DEPRIORITIZED_HOSTERS: return 900 # za wszystkim, co nieklasyfikowane + if host in _MOVIE_INTERACTIVE_HOSTERS: + return 800 # gra, ale tylko po recznym kliku w Turnstile; za wszystkim, co gra samo try: return _MOVIE_PREFERRED_ORIGINS.index(origin) except ValueError: