goon/app
goon-foss 365c97a1de fix(seekplayer): sprawdzaj czy adres CDN naprawde odpowiada, plus obsluga sciezki Tiktok
Zgloszenie a405b9d6 "znowu galaxyporn nie dziala". Przyczyna byla inna niz sie wydawalo:
nasz resolver dzialal, tylko oddawal adres do pliku, ktorego juz nie ma.

Co ustalone przez reverse engineering ich bundla i pomiary:

1. Adres strumienia siedzi w KILKU polach, a serwis sam podaje w `streamingConfig`,
   ktorej sciezki uzyc i w jakiej kolejnosci:
   {Cloudflare: cf, Tiktok: hlsVideoTiktok, Google: hlsVideoGoogle, "In-House": source}.
   Czytalismy WYLACZNIE `source`, wiec sceny majace tylko `hlsVideoTiktok` traktowalismy
   jak martwe. A one graja: zweryfikowany manifest 1080p, 200 i z serwerowni, i z lacza
   domowego. Doszlo skladanie adresu wg ich regul (`/hls/` -> `/hlsmod/<domain>/` + params).

2. WAZNIEJSZE: adres do usunietego pliku wyglada normalnie, a CDN oddaje na niego 502.
   Sprawdzone: wezly 94.131.217.172/175/177 rotuja i WSZYSTKIE daja 502 dla jednego pliku,
   podczas gdy TEN SAM wezel .172 serwuje inny plik poprawnie. Czyli CDN zyje, brakuje
   konkretnych plikow. Oddawalismy taki adres jako dobry, aplikacja pokazywala czarny
   ekran, a ratunek z vikingfile nigdy sie nie uruchamial, bo lista zrodel nie byla pusta.
   Teraz kazdy kandydat jest sprawdzany (`_responds`) i zwracamy tylko ten, ktory
   naprawde odpowiada manifestem.

3. galaxyporn: gdy player mowi wprost, ze pliku nie ma, a na stronie NIE MA tez linku do
   vikingfile, przepuszczamy `HosterDead` dalej zamiast zwracac None. Wczesniej takie
   sceny dawaly 503 "sprobuj ponownie" i wracaly w kolko.

Weryfikacja, ze `_responds` nie odrzuca dzialajacych: scena `#puwcko` -> http=200,
responds=True, prawdziwy #EXTM3U (przyjeta); `#bgitoa` -> 502 na wszystkich wezlach
(odrzucona). Na probce 20 scen galaxyporn 85% trafia teraz do vikingfile zamiast dostawac
martwy adres. Scena ze zgloszenia zostala oznaczona martwa przez prawdziwy endpoint
resolve (410 zamiast czarnego ekranu).

Czego NIE zrobilem: vikingfile wymaga tokenu z WIDOCZNEGO checkboxa Cloudflare
(`POST <adres strony>` z `cf-turnstile-response=<token>`). Obchodzenia tego nie buduje.
2026-08-27 08:59:28 +02:00
..
api fix(performers): "Search more scenes" odpowiada od razu, wyszukiwanie mieli w tle 2026-08-26 14:12:25 +02:00
connectors fix(sxyprn): koniec z przypisywaniem scen po samym imieniu 2026-08-24 13:49:31 +02:00
enrich style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
extractors fix(seekplayer): sprawdzaj czy adres CDN naprawde odpowiada, plus obsluga sciezki Tiktok 2026-08-27 08:59:28 +02:00
models feat(ingest): backfill brakujacej dlugosci scen 2026-08-20 12:10:22 +02:00
normalize fix(sxyprn): koniec z przypisywaniem scen po samym imieniu 2026-08-24 13:49:31 +02:00
resolve feat(tags): odrzucaj tagi marketingowe zamiast opisujacych tresc 2026-08-14 12:00:45 +02:00
scheduler fix(ingest,proxy): pusta strona to nie koniec katalogu + miniaturki blokowane po IP 2026-08-20 16:43:29 +02:00
templates feat(seo): public HTML SEO router + templates; add CLAUDE.md; ignore .nimbalyst 2026-05-31 16:29:59 +02:00
__init__.py Initial commit 2026-05-20 10:10:22 +02:00
auth.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
config.py feat(ingest): backfill brakujacej dlugosci scen 2026-08-20 12:10:22 +02:00
db.py Initial commit 2026-05-20 10:10:22 +02:00
ingest.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
main.py fix(mobile): stary APK po OTA podawal sie za nowa wersje i nie dostawal monitu 2026-08-24 14:47:04 +02:00
verticals.py fix(verticals): przenos wertykal przy przejsciu do tagu/studia/performera 2026-08-14 11:42:47 +02:00