Scene.duration_sec was NULL for ~74% of playable scenes (tube duration lives on playback_source, never propagated to Scene), so the mobile min_duration_sec=60 filter (Scene.duration_sec >= 60; NULL fails) silently hid them — surfaced as '119 in favorites, 14 after entering the performer' (Safira Yakkuza). - resolver: _effective_duration() falls back to max live playback_source duration when the connector provides no scene-level duration (forward fix, used in create + update). - scripts/backfill_scene_duration_from_playback.py: one-off idempotent backfill (recovered 204,014 scenes). - taxonomy_counts: scene_count now counts playable AND duration_sec >= 60, matching the always-60s-filtered scene lists, so favorites/performer/studio/tag badges agree with what the scene screen actually shows (Safira: 39 == 39). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| movie_match.py | ||
| movie_resolver.py | ||
| movie_score.py | ||
| performer_resolver.py | ||
| scene_match.py | ||
| scene_merge.py | ||
| scene_resolver.py | ||
| scene_score.py | ||
| scoring.py | ||
| studio_resolver.py | ||
| studio_title_parser.py | ||
| tag_resolver.py | ||