goon/app
goon-foss ef43b61a12 fix(playback): odrzucaj nie-manifest z 200 i odswiezaj zrodlo dla 8kporner i perverzija
Sprawdzenie dwoch tubow, ktore w statystyce bledow odtwarzania wygladaly zle. Oba maja
inna przyczyne niz vjav i ZADEN nie jest awaria calego tuba.

**perverzija.** Naglowkowe "44% bledow" jest mylace: 132 ze 176 bledow pochodzi z awarii
13-18 sierpnia, ktora sama minela (te dni maja zero udanych odtworzen). Ostatnie 8 dni to
~16%. Wszystkie trzy sceny, ktore realnie padly u userow, resolwuja sie dzis poprawnie i
przechodza przez /proxy/hls jako prawidlowy manifest, wiec biezacej awarii nie ma.

Zostaje jednak realna dziura: hoster potrafi oddac 200 z trescia, ktora manifestem nie
jest (strona bledu albo reklama). Przepuszczalismy to dalej jako
`application/vnd.apple.mpegurl` ze statusem 200, a odtwarzacz konczyl komunikatem "Input
does not start with the #EXTM3U header" (203 zdarzenia w 14 dni). Gorsze od samego bledu
bylo to, ze przy statusie 200 apka uznawala odpowiedz za dobra i nie probowala odswiezyc
zrodla. Teraz w takiej sytuacji leci 502.

**8kporner.** Bledy to 502 i 400 z okcdn, rozlozone rownomiernie, przy stale dzialajacym
tubie. To zwietrzaly zapisany adres, ten sam wzorzec co watchporn. Potwierdzone na
czterech scenach, ktore padly u userow: swiezy resolve kazdej z nich oddal 206 z trescia.
Jeden przypadek w tej probce byl bledem DNS po stronie klienta, nie naszym.

Stad oba origins dopisane do `BACKEND_RERESOLVE_ORIGINS`, czyli mechanizmu juz dzialajacego
dla watchporn i galaxyporn.

Sprawdzone na prodzie po wdrozeniu: prawdziwy manifest dalej przechodzi (200, 58 kB),
a odpowiedz nie bedaca manifestem dostaje 502 zamiast 200 ze smieciami.
2026-08-27 20:36:24 +02:00
..
api fix(playback): odrzucaj nie-manifest z 200 i odswiezaj zrodlo dla 8kporner i perverzija 2026-08-27 20:36:24 +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