|
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-automations.js | ||
| video-calendar.js | ||
| video-dashboard.js | ||
| video-detail.js | ||
| video-discover.js | ||
| video-download-history.js | ||
| video-download-view.js | ||
| video-downloads-page.js | ||
| video-enrichment-manager.js | ||
| video-enrichment.js | ||
| video-get-modal.js | ||
| video-import.js | ||
| video-library.js | ||
| video-person.js | ||
| video-scan.js | ||
| video-search.js | ||
| video-server-scan.js | ||
| video-settings.js | ||
| video-side.css | ||
| video-side.js | ||
| video-watchlist-btn.js | ||
| video-watchlist.js | ||
| video-wishlist.js | ||
| video-worker-orbs.js | ||
| video-youtube.js | ||