Movie/show-level ignore list (episodes can't be individually ignored): - video_ignored table (kind, tmdb_id, title/year/poster snapshot) + SCHEMA_VERSION 18->19. - add_ignored / remove_ignored / list_ignored / ignored_keys DB methods. - _stamp_owned (the choke point all discover results pass through) drops ignored titles, so every surface hides them uniformly + always-fresh (tiny indexed query). Person-gap rails (which bypass _stamp_owned) filtered in the gaps endpoint. - GET/POST /discover/ignore (list / add / remove). |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| music_database.py | ||
| personalized_schema.py | ||
| video_database.py | ||
| video_schema.sql | ||