goon/app/scheduler
goon-foss 9af5fd4eb4 fix(performers): zbedne przypisania jednotokenowe obok osoby pelnoimiennej
Ranking z poprzedniego commita ujawnil klase, ktorej zaden wczesniejszy sygnal nie
widzial: wpisy bedace SAMYM NAZWISKIEM albo samym imieniem, powstale z rozbicia peleno
nazwy przez tube-search. "Devine" obok "Shalina Devine", "Kitana" obok "Kitana A",
"Rayne" obok "Tiffany Rayne". Taki wpis lapie potem kazda scene z tym slowem,
nalezaca do zupelnie innej osoby.

Regula jest DOWODLIWIE BEZSTRATNA: kasujemy przypisanie jednotokenowe tylko wtedy, gdy
ta sama scena ma juz przypisana osobe pelnoimienna zawierajaca to slowo. Informacja o
obsadzie zostaje, znika tylko niejednoznaczny duplikat. Kontrola potwierdzila, ze zadna
scena nie zostala przez to bez obsady (0).

Prowenancja z migracji 0026 dala zabezpieczenie: z 62 783 zbednych przypisan 62 120 to
scraper (skasowane), 73 kanon (chronione), 590 nieznane (zostawione). Bez niej nie dalo
by sie tego rozdzielic.

Wynik: 62 120 przypisan zdjetych, 2156 wpisow odchudzonych (Devine 170 na 60), 1740
pustych rekordow usunietych. Regula dopieta do joba junk_performers, drugi przebieg
daje zera.

Zostaje residuum: sceny, na ktorych osoba pelnoimienna NIE byla przypisana, wiec
regula nie miala sie o co oprzec (James, Blue, Moon, Crystal, Cruz, Starr, Knight po
60-160 przypisan). Tam trzeba by DOPISAC wlasciwa osobe, a nie kasowac - to osobne,
bardziej ryzykowne zadanie.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-28 09:23:14 +02:00
..
__init__.py Initial commit 2026-05-20 10:10:22 +02:00
browse_latest.py refactor(ingest): rename scraper Source name "pornapp" -> "tube-scraper" 2026-06-07 16:54:55 +02:00
bulk_dedup.py fix(dedup): tighten cross-source candidate prefilter — kill 1800s hang (GOON-V) 2026-06-08 10:03:33 +02:00
deep_crawl.py feat(youperv): browse scraper + direct-mp4 extractor 2026-07-26 17:57:24 +02:00
hetzner_monitor.py feat(scheduler): hetzner bandwidth monitor + search-tube watchdog coverage 2026-06-18 09:18:59 +02:00
ingest_watchdog.py feat(scheduler): hetzner bandwidth monitor + search-tube watchdog coverage 2026-06-18 09:18:59 +02:00
jobs.py fix(performers): skasowanie 277 smieciowych performerow + job zapobiegajacy odrastaniu 2026-07-27 13:44:11 +02:00
junk_performers.py fix(performers): zbedne przypisania jednotokenowe obok osoby pelnoimiennej 2026-07-28 09:23:14 +02:00
performer_driven.py fix(review): player recovery deadlocks, quick-play re-fire, backfill gaps, em-dashes 2026-07-02 09:20:40 +02:00
phash_blacklist.py fix(dedup): blacklista zdegenerowanych phashy + scalenie 4647 duplikatow 2026-07-27 12:47:20 +02:00
source_stats.py fix(stars): fresh+rich source not marked offline on telemetry gap 2026-07-20 20:58:02 +02:00
taxonomy_counts.py fix(scenes): propagate playback duration to Scene + duration-consistent counts 2026-06-01 21:31:01 +02:00
thumb_dedup.py feat(scheduler): periodic thumb-asset dedup (hdporn.gg/fullmovies.xxx) 2026-06-14 14:56:45 +02:00
title_duration_dedup.py feat(scheduler): periodic title+duration dedup (missing-merge tube dupes) 2026-06-19 11:20:48 +02:00
worker.py fix(performers): skasowanie 277 smieciowych performerow + job zapobiegajacy odrastaniu 2026-07-27 13:44:11 +02:00