|
Some checks failed
Compile the app and run tests / sanity-check (push) Has been cancelled
new opt-in feature — default keeps everything, so nothing changes unless a channel sets it. - history got smarter: youtube rows now carry channel_id + published_at (mined from search_ctx) + a pruned_at marker. new queries: youtube_channels_with_downloads, youtube_channel_episodes, mark_download_pruned. - core/video/retention.py (pure): parse_retention + episodes_to_prune — age by UPLOAD date (published_at, filename fallback); 'count_N' keeps newest N, 'days_N' keeps last N days; undated episodes never pruned. - handler auto_video_clean_youtube_episodes: for each channel with a policy, delete the out-of-window video + its -thumb/.nfo sidecars (only the exact recorded dest_path, never walks folders), then mark the history row pruned — KEPT so the scan never re-downloads it. - 'Keep' dropdown in each channel's cog modal (Everything / Last 30 episodes / Last 3 / 6 months); playlists excluded. seeded daily automation + register/block/label/icon/sort. pure math + handler (i/o injected) + the prune-keeps-dedup DB contract all tested. |
||
|---|---|---|
| .. | ||
| video | ||
| __init__.py | ||
| auth.py | ||
| cache.py | ||
| discover.py | ||
| downloads.py | ||
| helpers.py | ||
| library.py | ||
| listenbrainz.py | ||
| playlists.py | ||
| profiles.py | ||
| request.py | ||
| retag.py | ||
| search.py | ||
| serializers.py | ||
| settings.py | ||
| system.py | ||
| watchlist.py | ||
| wishlist.py | ||