goon/scripts
jtrzupek ee83ae5e97 scripts: add gated --fix to false-merge audit (short-clip outliers)
Opt-in remediation for the duration-inconsistent scenes found by the audit.
Scope is deliberately narrow and reversible:

- only scenes with >=3 duration-bearing sources AND max/min ratio > 3x
- anchored on scene.duration_sec (the canonical value), never the median of
  sources (a median is wrong when several bogus short clips outvote the real
  full-length source)
- marks dead ONLY sources that are >2x SHORTER than the canonical — a falsely
  merged source is almost always a short SEO clip/preview. Sources longer than
  the canonical are left alone, since an over-long outlier more often means the
  canonical duration itself is too low (so killing the long source would drop
  the real video); those stay for manual review.
- guards that at least one live source remains
- dry-run by default; --yes to apply; sets dead_at (reversible), not delete

First run marked 514 short-clip sources dead across 228 scenes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 11:30:23 +02:00
..
sql Initial commit 2026-05-20 10:10:22 +02:00
_extract_apk_sig_hash.py session work: bug-report fixes + WIP cleanup 2026-05-25 22:02:52 +02:00
_patch_manifest.py session work: bug-report fixes + WIP cleanup 2026-05-25 22:02:52 +02:00
add_performer_tpdb_ref.py Initial commit 2026-05-20 10:10:22 +02:00
audit_false_merges.py scripts: add gated --fix to false-merge audit (short-clip outliers) 2026-06-01 11:30:23 +02:00
auto_merge_freshporno_to_canonical.py session work: bug-report fixes + WIP cleanup 2026-05-25 22:02:52 +02:00
backfill_durations.py Initial commit 2026-05-20 10:10:22 +02:00
backfill_freshporno_dates.py session work: bug-report fixes + WIP cleanup 2026-05-25 22:02:52 +02:00
backfill_freshporno_titles.py session work: bug-report fixes + WIP cleanup 2026-05-25 22:02:52 +02:00
backfill_paradisehill_tags.py session work: bug-report fixes + WIP cleanup 2026-05-25 22:02:52 +02:00
backfill_phash_tube.py Initial commit 2026-05-20 10:10:22 +02:00
backfill_scene_thumbnails.py Initial commit 2026-05-20 10:10:22 +02:00
bulk_auto_merge.py Initial commit 2026-05-20 10:10:22 +02:00
bulk_rescrape_hqporner.py Initial commit 2026-05-20 10:10:22 +02:00
bulk_resolve_merges.py Initial commit 2026-05-20 10:10:22 +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 Initial commit 2026-05-20 10:10:22 +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
debug_pornxp_listing.py Initial commit 2026-05-20 10:10:22 +02:00
debug_tpdb_performer.py Initial commit 2026-05-20 10:10:22 +02:00
dedup_favorite_performers.py Initial commit 2026-05-20 10:10:22 +02:00
dump_pornapp_sites.ps1 Initial commit 2026-05-20 10:10:22 +02:00
fill_tpdb_refs_batch.py Initial commit 2026-05-20 10:10:22 +02:00
find_underfilled_performers.py Initial commit 2026-05-20 10:10:22 +02:00
generate_icons.py Initial commit 2026-05-20 10:10:22 +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_tags.py Initial commit 2026-05-20 10:10:22 +02:00
migrate_paradisehill_to_movies.py Initial commit 2026-05-20 10:10:22 +02:00
phash_benchmark.py Initial commit 2026-05-20 10:10:22 +02:00
phash_dedup_scenes.py Initial commit 2026-05-20 10:10:22 +02:00
pilot_browse_scrapers.py Initial commit 2026-05-20 10:10:22 +02:00
probe_all_extract.py Initial commit 2026-05-20 10:10:22 +02:00
probe_browse_scraper.py Initial commit 2026-05-20 10:10:22 +02:00
probe_lpv_extract.py Initial commit 2026-05-20 10:10:22 +02:00
probe_mangoporn_hosters.py Initial commit 2026-05-20 10:10:22 +02:00
probe_perverzija.py Initial commit 2026-05-20 10:10:22 +02:00
probe_pv_extract.py Initial commit 2026-05-20 10:10:22 +02:00
probe_scene.py Initial commit 2026-05-20 10:10:22 +02:00
publish_update.py fix(ota+mobile): strip expo-font from bundle, runtime back to 1.0 2026-05-31 11:41:29 +02:00
reingest_pandamovies_hosts.py Initial commit 2026-05-20 10:10:22 +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
smoke_test.py Initial commit 2026-05-20 10:10:22 +02:00
stashdb_studio_backfill.py Initial commit 2026-05-20 10:10:22 +02:00
status_tubes.py Initial commit 2026-05-20 10:10:22 +02:00
studio_retrofix.py Initial commit 2026-05-20 10:10:22 +02:00
test_cross_ip.py Initial commit 2026-05-20 10:10:22 +02:00
test_porndoe_scraper.py Mobile 0.1.9: OTA enable, WebView cookie-dismiss fix, porndoe connector 2026-05-22 11:20:57 +02:00
test_resolve_endpoint.py Initial commit 2026-05-20 10:10:22 +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 Mobile 0.1.9: OTA enable, WebView cookie-dismiss fix, porndoe connector 2026-05-22 11:20:57 +02:00
theporndude_movies_pipeline.py Mobile 0.1.9: OTA enable, WebView cookie-dismiss fix, porndoe connector 2026-05-22 11:20: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 Initial commit 2026-05-20 10:10:22 +02:00
tpdb_backfill.py Initial commit 2026-05-20 10:10:22 +02:00
tpdb_backfill_status.py Initial commit 2026-05-20 10:10:22 +02:00
tpdb_studio_backfill.py Initial commit 2026-05-20 10:10:22 +02:00