goon/app/resolve
jtrzupek e23e2d1f17 fix(merge): move playback_sources on scene merge + exact-title+duration dedup
merge_scenes never reassigned playback_sources → ON DELETE CASCADE dropped them
with the absorbed scene. Cross-source (canonical) merges rarely had tube playback
so it hid, but tube-dup merges silently LOST playback links. Add _move_playback_sources
(global unique (origin,page_url) guarantees no collision on reassign).

+ merge_exact_title_duration.py: catches missing-merge dupes bulk_dedup misses
(same performer + identical normalized title + identical duration_sec, no phash).
Bad Bella had 25 such pairs (bug-report ef92809d "duplikat, te same miniatury").

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-08 10:56:50 +02:00
..
__init__.py Initial commit 2026-05-20 10:10:22 +02:00
movie_match.py Initial commit 2026-05-20 10:10:22 +02:00
movie_resolver.py Initial commit 2026-05-20 10:10:22 +02:00
movie_score.py Initial commit 2026-05-20 10:10:22 +02:00
performer_resolver.py Initial commit 2026-05-20 10:10:22 +02:00
scene_match.py feat(ingest): SQL phash match, tag inference + backfill, clip-store skip, browse tubes, watchdog 2026-06-01 15:07:35 +02:00
scene_merge.py fix(merge): move playback_sources on scene merge + exact-title+duration dedup 2026-06-08 10:56:50 +02:00
scene_resolver.py fix(scenes): propagate playback duration to Scene + duration-consistent counts 2026-06-01 21:31:01 +02:00
scene_score.py Mobile 0.1.9: OTA enable, WebView cookie-dismiss fix, porndoe connector 2026-05-22 11:20:57 +02:00
scoring.py Mobile 0.1.9: OTA enable, WebView cookie-dismiss fix, porndoe connector 2026-05-22 11:20:57 +02:00
studio_resolver.py Initial commit 2026-05-20 10:10:22 +02:00
studio_title_parser.py Initial commit 2026-05-20 10:10:22 +02:00
tag_resolver.py fix(tags): merge <base>2 numbered-duplicate tags + prevent regeneration 2026-06-06 23:18:44 +02:00