goon/scripts
goon-foss 59b7b5a651 fix(movies): poprawki po code review scorera, merge_movies i rozdzielania
Scorer tytulu (`movie_score._title_signal`), na zywym ingescie:
* sklejanie ogonkow apostrofu obejmowalo KAZDA pojedyncza litere, wiec "watch a whore s
  tale" dawalo "watcha", a przedimek "a" nigdy nie wpadal do wypelniaczy; lustra z A/I
  na poczatku tytulu przestawaly sie laczyc. Teraz tylko s/t/d.
* rowne zbiory zlozone z samych liczb ("adult movie 2019" vs "porn film 2019" -> {2019})
  dawaly 1.0; teraz sufit.
* zaostrzenie "rozne slowa = sufit" zabijalo warianty zapisu: Vol./Volume, Pt./Part,
  Gang-Bang/Gangbang, literowki, liczbe mnoga. Skroty rozwijane, zlepki porownywane po
  zdjeciu spacji, slowa wlasne obu stron parowane jeden do jednego: liczba mnoga = 0.95,
  literowka tylko przy >= 0.92 i slowach od 4 liter. Prog 0.85 na slowie przepuszczal
  "sexy"/"sex", "intense"/"interns" i "infedele"/"fedele" (niewierna vs wierna), a
  porownanie calych posortowanych ciagow "girls only 4" vs "girls on girls 4".
Sprawdzone na 28 parach, w tym wszystkich przykladach z review.

`merge_movies`: ulubione i postep odtwarzania przenoszone na `keep` przed skasowaniem
`drop`. Oba maja FK ondelete=CASCADE, wiec kazde scalenie po cichu wymazywalo userowi
dane. Dotyczy tez dedup po TPDB.

Skrypt rozdzielania:
* `_istniejacy_film` dostaje pelna liste performer_id (jak resolver), nie tylko przekroj,
  ktory zawyzal Jaccarda (3 z 5 wspolnych dawalo 1.0); kandydaci z trigramow PLUS
  dokladne trafienie w title_normalized, bo LIMIT 50 gubil "control 2" wsrod sasiadow;
  wstepny test tytulu oszczedza zapytan o obsade; flush przed blokowaniem.
* klastry rozdzielone w tym samym filmie nie moga sie do siebie dolaczyc (klastrowanie
  juz orzeklo, ze to rozne filmy).
* przed przepisaniem kotwicy sprawdzenie, czy zbior refow nie zmienil sie w trakcie
  pobierania (wyscig miedzy shardami).
* dry-run pokazuje tez dolaczanie do istniejacych; liczniki liczone przy tworzeniu.
* sprzatanie dubli po `updated_at` (created_at jest cofane i nie nadaje sie na znacznik
  przebiegu), keep = wiecej refow, potem starsze pierwsze zobaczenie; try/except per
  film; --after-id; naiwny timestamp = UTC.
2026-09-02 22:37:32 +02:00
..
sql Initial commit 2026-05-20 10:10:22 +02:00
_extract_apk_sig_hash.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
_patch_manifest.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
_reap_probe.py fix(reap): dodaj brakujacy modul sondy do repo 2026-08-27 15:31:03 +02:00
_tube_survey.py chore(scripts): tube SSR-richness survey probe 2026-06-03 11:23:49 +02:00
add_performer_tpdb_ref.py Initial commit 2026-05-20 10:10:22 +02:00
audit_false_merges.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
audit_teaser_only.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
auto_merge_freshporno_to_canonical.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
backfill_durations.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
backfill_freshporno_dates.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
backfill_freshporno_titles.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
backfill_inferred_tags.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
backfill_paradisehill_movies.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
backfill_paradisehill_tags.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
backfill_phash_tube.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
backfill_scene_duration_from_playback.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
backfill_scene_performer_source.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
backfill_scene_thumbnails.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
backfill_xvideos_performers.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
browse_catchup.py fix(movies): nie lacz filmow rozniacych sie numerem serii (The Doctor = 9 filmow) 2026-09-02 12:26:20 +02:00
bulk_auto_merge.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
bulk_rescrape_hqporner.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
bulk_resolve_merges.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
check_all_hosters.py Mobile 0.1.9: OTA enable, WebView cookie-dismiss fix, porndoe connector 2026-05-22 11:20:57 +02:00
check_hetzner_traffic.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
check_series_detector.py Mobile 0.1.9: OTA enable, WebView cookie-dismiss fix, porndoe connector 2026-05-22 11:20:57 +02:00
compare_performer_canon.py Initial commit 2026-05-20 10:10:22 +02:00
dead_source_survey.py feat(reap): generyczny przemial martwych zrodel z bramka, ktora tub musi zdac 2026-08-27 15:30:54 +02:00
debug_pornxp_listing.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
debug_tpdb_performer.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
dedup_favorite_performers.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
dedup_n2_canonical.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
dump_pornapp_sites.ps1 Initial commit 2026-05-20 10:10:22 +02:00
fill_tpdb_refs_batch.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
find_underfilled_performers.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
fix_composite_performers.py fix(performers): rozplac zlepki dwoch osob w jedna nieistniejaca 2026-08-14 11:00:48 +02:00
fix_mononym_attributions.py fix(performers): odzyskaj sceny przypisane do samego czlonu nazwiska 2026-08-14 10:34:14 +02:00
generate_icons.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
goon_debug_proxy.py Mobile 0.1.9: OTA enable, WebView cookie-dismiss fix, porndoe connector 2026-05-22 11:20:57 +02:00
killall_bulk_rescrape.py Initial commit 2026-05-20 10:10:22 +02:00
merge_altkey_tags.py fix(tags): collision-safe + FK-safe alnum tag merge 2026-07-21 16:24:50 +02:00
merge_dup2_tags.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
merge_dupe_thumb_asset.py feat(scheduler): periodic thumb-asset dedup (hdporn.gg/fullmovies.xxx) 2026-06-14 14:56:45 +02:00
merge_exact_title_duration.py feat(scheduler): periodic title+duration dedup (missing-merge tube dupes) 2026-06-19 11:20:48 +02:00
merge_phash_exact_dupes.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
merge_tags.py Initial commit 2026-05-20 10:10:22 +02:00
migrate_paradisehill_to_movies.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
movie_unmerge.py fix(movies): poprawki po code review scorera, merge_movies i rozdzielania 2026-09-02 22:37:32 +02:00
phash_benchmark.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
phash_dedup_scenes.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
pilot_browse_scrapers.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
pilot_porndoe_deepcrawl.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
probe_all_extract.py Initial commit 2026-05-20 10:10:22 +02:00
probe_browse_scraper.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
probe_lpv_extract.py Initial commit 2026-05-20 10:10:22 +02:00
probe_mangoporn_hosters.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
probe_perverzija.py Initial commit 2026-05-20 10:10:22 +02:00
probe_pv_extract.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
probe_scene.py Initial commit 2026-05-20 10:10:22 +02:00
prune_category_performers.py fix(performers): zdejmij przypisania kategorii udajacych ludzi 2026-08-14 11:27:00 +02:00
prune_token_overlap_attributions.py feat(cleanup): archiwum przed kasowaniem bledych przypisan performerow 2026-08-13 12:16:13 +02:00
publish_update.py feat(ota): wysylaj source mapy paczek OTA do Sentry 2026-08-26 10:23:09 +02:00
refresh_sxyprn_thumbs.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
reingest_pandamovies_hosts.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
repair_dooplay_movies.py Initial commit 2026-05-20 10:10:22 +02:00
repair_truncated_titles.py Initial commit 2026-05-20 10:10:22 +02:00
reresolve_freshporno_orphans.py Initial commit 2026-05-20 10:10:22 +02:00
restore_canonical_titles.py Initial commit 2026-05-20 10:10:22 +02:00
review_performer_attributions.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
seekplayer_reap.py chore(seekplayer): wygaszona cala rodzina dla filmow + reaper zgodny z resolverem 2026-08-27 11:53:45 +02:00
smoke_test.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
stashdb_studio_backfill.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
status_tubes.py Initial commit 2026-05-20 10:10:22 +02:00
studio_retrofix.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
superporn_sitemap_backfill.py feat(superporn): nadrobienie katalogu z sitemapy 2026-08-20 12:44:10 +02:00
sxyprn_fix_overattribution.py fix(sxyprn): koniec z przypisywaniem scen po samym imieniu 2026-08-24 13:49:31 +02:00
sxyprn_reap_dead.py perf(sxyprn): wznawiaj reaper od granicy zamiast mielic potwierdzone zywe 2026-08-27 12:08:24 +02:00
test_cross_ip.py Initial commit 2026-05-20 10:10:22 +02:00
test_porndoe_scraper.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
test_resolve_endpoint.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
theporndude_coverage_check.py Mobile 0.1.9: OTA enable, WebView cookie-dismiss fix, porndoe connector 2026-05-22 11:20:57 +02:00
theporndude_coverage_match.py Mobile 0.1.9: OTA enable, WebView cookie-dismiss fix, porndoe connector 2026-05-22 11:20:57 +02:00
theporndude_curl_triage.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
theporndude_movies_pipeline.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
theporndude_resolve_domains.py Mobile 0.1.9: OTA enable, WebView cookie-dismiss fix, porndoe connector 2026-05-22 11:20:57 +02:00
theporndude_scorecard.py Mobile 0.1.9: OTA enable, WebView cookie-dismiss fix, porndoe connector 2026-05-22 11:20:57 +02:00
title_levenshtein_benchmark.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
tpdb_backfill.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
tpdb_backfill_status.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
tpdb_studio_backfill.py style: myslniki em/en z komentarzy i docstringow (calosc repo) 2026-08-11 11:51:57 +02:00
tube_reap_dead.py feat(reap): generyczny przemial martwych zrodel z bramka, ktora tub musi zdac 2026-08-27 15:30:54 +02:00