goon/app
goon-foss 5217d07222 fix(search): nazwa performera musi byc w slugu SPOJNA FRAZA
Zgloszenie 2026-08-13: strona Tiffani Time pelna scen o Tiffany Tatum,
Tiffani Madison i Victorii Tiffani.

Przyczyna: `_search_base.search` dokleja szukanego performera do KAZDEJ
sceny bezwarunkowo (`all_performers = [RawPerformer(name=query), ...]`),
wiec cala poprawnosc obsady wisi na filtrze tokenow. A filtr testowal
PODCIAG na luznych tokenach, wiec:

  "tiffany" ⊂ "lp-s-tiffany-love-first-time-gonzo"   (inna osoba)
  "time"    ⊂ "adult-time", "first-time", "multiple-times"  (pospolite slowo)

Historia tej linijki to trzy poziomy: any() -> all() -> (teraz) fraza.
`all()` naprawil "Ava Koxxx na scenach Avy Devine", ale zostawil oba
powyzsze. Teraz slug musi zawierac CALA nazwe jako ciag, z granica slowa
po bokach, z dowolnym separatorem miedzy czlonami.

Dozwolone koncowe "s": slug gubi apostrof, wiec "TiffaniTime's" zapisuje
jako "tiffanitimes". Nie luzuje bramki, bo przed tym "s" stoi cala fraza.

hqporner mial WLASNA kopie tego filtru (i wlasny zestaw dziur) - podpiety
pod ta sama funkcje, zeby sie nie rozjezdzalo.

12 przypadkow testowych z realnych danych, w tym te ktore MUSZA przejsc
(tiffani-time-*, tiffanitimes-*, mia-li-* z czlonem <3 znaki).

Do tego skrypt czyszczacy juz istniejace pomylki. Kryterium zawezone po
obejrzeniu probki: samo "brak nazwy w tytule" kasowalo MESKICH performerow
(tuby nie wypisuja ich w tytule, a przypisanie szlo z listy obsady, nie
z searcha). Dolozony warunek "inny performer sceny ma dowod I dzieli
czlon" - probka 14/14 to realne pomylki.
2026-08-13 11:17:43 +02:00
..
api feat(verticals): animacja odgrodzona od glownego feedu + filmy na ekranie studia 2026-08-13 10:31:54 +02:00
connectors fix(search): nazwa performera musi byc w slugu SPOJNA FRAZA 2026-08-13 11:17:43 +02:00
enrich style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
extractors feat(3d): konektor naughtymachinima - szoste zrodlo wertykalu 2026-08-13 09:06:24 +02:00
models feat(dedup): backfill phasha z zapisanych miniaturek 2026-08-13 10:49:12 +02:00
normalize style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
resolve style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
scheduler feat(dedup): backfill phasha z zapisanych miniaturek 2026-08-13 10:49:12 +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(dedup): backfill phasha z zapisanych miniaturek 2026-08-13 10:49:12 +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 style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
verticals.py feat(verticals): animacja odgrodzona od glownego feedu + filmy na ekranie studia 2026-08-13 10:31:54 +02:00