goon/app/api
goon-foss 41ad7f1818 feat: automatyczne sprzatanie martwych zrodel sxyprn i eporner
Oba serwisy kasuja filmy po cichu: strona odpowiada 200 z "Post Not Found" albo "Video has
been deleted". Probka 2026-09-19: 57% zywych w bazie zrodel sxyprn w wieku 10-40 dni i 22%
eporner bylo juz usunietych; w apce to puste kafelki i "the tube removed" po kliknieciu.

- eporner: ekstraktor rozpoznaje usunieta strone i rzuca HosterDead, wiec resolve oznacza
  zrodlo zamiast oddawac "blad chwilowy" (82 takie wejscia w 48 h, nic nie oznaczal).
- proxy miniatur: "Post Not Found" na sxyprn oznacza zrodlo od razu, 404 na miniaturze
  eporner uruchamia w tle sprawdzenie strony (28/30 takich miniatur to usuniete filmy).
  Indeks hash po thumbnail_url tylko dla eporner (0044), zeby znalezc zrodlo po obrazku.
- job dead-reap co 6 h: po 1500 zywych zrodel na serwis, polowa z ostatnich 30 dni.
  Oznacza tylko przy pewnym sygnale; siec i timeouty zostawia.

Sprawdzone na produkcji: 10/10 miniatur eporner i 23/23 postow sxyprn oznaczone, 17 zywych
postow nietknietych.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-22 12:00:11 +02:00
..
__init__.py Initial commit 2026-05-20 10:10:22 +02:00
admin.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
admin_html.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
blacklist.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
bug_reports.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
clips.py fix(mobile): Edge - serduszko nie rusza dzwieku ani nie przewija klipu, jeden przycisk dzwieku, stroik feedu 2026-09-22 12:00:10 +02:00
device.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
expo_updates.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
favorites.py perf(api): liczniki +N ulubionych z cache i indeksem, podobne sceny z najrzadszych tagow 2026-09-15 15:05:43 +02:00
me.py feat(clips): feed Swipe z afinicznoscia, pamiecia widzianych i telemetria (etap 3) 2026-09-14 20:29:49 +02:00
movies.py perf(api): lista filmow serializowana wsadowo (7 zapytan/film -> 8 na strone), /sources z agregatem w pamieci na 5 min 2026-09-08 10:04:01 +02:00
playback.py fix(movies): rozwiazuj przekierowanie hostera na serwerze, zanim embed trafi do WebView 2026-08-26 14:00:56 +02:00
playback_events.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
saved_searches.py perf(scenes): indeks pod sortowanie serwisu po dacie premiery + fix wyscigu zapisu wyszukiwania 2026-08-20 16:00:58 +02:00
scene_favorites.py perf(api): liczniki +N ulubionych z cache i indeksem, podobne sceny z najrzadszych tagow 2026-09-15 15:05:43 +02:00
scenes.py feat(api): glowny feed bez archiwum i z limitem jednego zrodla na strone 2026-09-22 12:00:11 +02:00
schemas.py feat(ui): badge jakosci i nazwa serwisu na kafelku sceny 2026-08-18 12:41:16 +02:00
seo.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
sources.py perf(api): lista stron odswiezana w tle, nikt nie czeka na przeliczenie 2026-09-22 12:00:10 +02:00
stream_proxy.py feat: automatyczne sprzatanie martwych zrodel sxyprn i eporner 2026-09-22 12:00:11 +02:00
taxonomies.py fix(performers): "Search more scenes" odpowiada od razu, wyszukiwanie mieli w tle 2026-08-26 14:12:25 +02:00
watch.py perf(api): historia ogladania wsadowo, wyszukiwanie w obrebie strony po rownosci originu 2026-09-15 14:06:01 +02:00