feat: track currently watching videos
This commit is contained in:
@@ -78,11 +78,12 @@ These are the default bindings. Overrides in `[keys]` replace an action's bindin
|
||||
| `W` | Choose combined or category watch later from any video view or preview |
|
||||
| `Alt-w` | Open the current category's watch later |
|
||||
| `f` | In watch later, cycle All → Unwatched → Watched |
|
||||
| `x` | In watch-later or saved-video lists, remove the selected video |
|
||||
| `X` (Shift-X) | In either collection list, confirm bulk removal of the current category/filter subset |
|
||||
| `x` | In watch-later, saved-video, or currently-watching lists, remove the selected video |
|
||||
| `X` (Shift-X) | In collection lists, confirm bulk removal of the current list/category/filter subset |
|
||||
| `v` | Save the selected video to saved videos (also works in previews) |
|
||||
| `V` | Choose combined or category saved videos from any video view or preview |
|
||||
| `Alt-v` | Open the current category's saved videos |
|
||||
| `C` (Shift-C) | Open the combined Currently watching list |
|
||||
| Tab / Shift-Tab | Switch between visible views |
|
||||
| `r` | Reload configuration and refresh the current view |
|
||||
| `?` | Open / close the scrollable keybinding reference |
|
||||
@@ -231,8 +232,9 @@ Files are siblings of `config.toml`:
|
||||
|
||||
- `watch-later.toml`: versioned saved-video metadata.
|
||||
- `saved-videos.toml`: independent versioned saved-video metadata.
|
||||
- `currently-watching.toml`: versioned metadata for started, unfinished videos.
|
||||
- `watch-state.toml`: versioned global watched video IDs.
|
||||
- `playback-sessions/`: private per-launch progress streams and their expected video identities.
|
||||
- `playback-sessions/`: private per-launch progress streams, expected video identities, video snapshots, and durable admission markers.
|
||||
|
||||
State writes are atomic and owner-only. Invalid state files or detected external edits are reported rather than overwritten; repair the file or restart before retrying. Each state file is limited to 8 MiB.
|
||||
|
||||
@@ -250,15 +252,25 @@ Saved titles are **green**, taking precedence over watch-later magenta when a vi
|
||||
|
||||
The collection is persisted independently in `saved-videos.toml` beside `config.toml`, using the same atomic, owner-only writes and validation as watch later. Saving repeatedly does not add duplicates. Configure saving and the collection selector with `video.saved.save` and `view.saved.browse`; direct category browsing uses `view.saved.category`. The corresponding watch-later navigation actions are `view.watch_later.browse` and `view.watch_later.category`. Selectors use the shared `selector.*` and `input.*` bindings. The live hints and `?` reference reflect overrides. Alt shortcuts require the terminal to transmit Alt/Meta; if macOS Option inserts symbols, enable Option-as-Meta or remap the actions.
|
||||
|
||||
## Currently watching
|
||||
|
||||
`C` opens one combined, offline list of started but unfinished videos. It uses the shared temporary tab and back/forward navigation; configure the shortcut with `view.watching.browse`.
|
||||
|
||||
A validated, acknowledged **positive playback position** adds the video—not merely launching Terebi or receiving position zero. Reaching the existing eligible **95% watched threshold** automatically removes it. Already-watched videos never enter. Unknown-duration or ineligible playback can appear but stays unfinished unless a later eligible report marks it watched or you remove it.
|
||||
|
||||
Entries and their title/creator/publication metadata survive restarts. Reports written while Tubular is closed are recovered on the next launch. Older sessions without video snapshots can populate the list when matching watch-later/saved metadata exists; otherwise they continue updating watched status without inventing missing metadata.
|
||||
|
||||
Use `x` for individual removal or `X` for bulk confirmation. Removal neither marks the video watched nor changes watch later/saved videos. Continued reports from existing sessions cannot re-add a removed entry, including after restart; deliberately starting a new session can re-add it if still unfinished.
|
||||
|
||||
## Collection removal
|
||||
|
||||
Removal controls apply **only in watch-later and saved-video views**, including previews opened from those lists. Search, Feed, ordinary channel/category views, and their previews do not expose removal actions or hints. Text fields and selectors retain their normal controls.
|
||||
Removal controls apply **only in watch-later, saved-video, and currently-watching views**, including previews opened from those lists. Search, Feed, ordinary channel/category views, and their previews do not expose removal actions or hints. Text fields and selectors retain their normal controls.
|
||||
|
||||
`x` immediately removes only the selected video from the active collection. `X` snapshots the current list and opens bulk confirmation: watch later uses the current category and All/Unwatched/Watched filter; saved videos uses the current category's entire saved list. An empty list does not open confirmation.
|
||||
`x` immediately removes only the selected video from the active collection. `X` snapshots the current list and opens bulk confirmation: watch later uses the current category and All/Unwatched/Watched filter; saved videos uses the current category's entire saved list; Currently watching uses its entire combined list. An empty list does not open confirmation.
|
||||
|
||||
The prompt names the collection, category, count, and applicable filter. **`y` confirms; `n` or Esc cancels.** Enter never confirms. Only the snapshotted IDs are removed, even if membership or watched status changes while confirmation is open.
|
||||
The prompt names the collection, category, count, and applicable filter. **`y` or Enter confirms; `n` or Esc cancels.** Only the snapshotted IDs are removed, even if membership or watched status changes while confirmation is open.
|
||||
|
||||
Removal changes only the active collection. Matching category views update, while the other collection and global watched status remain untouched.
|
||||
Removal changes only the active collection. Matching views update, while other collections and global watched status remain untouched.
|
||||
|
||||
The old collection-specific removal settings are no longer accepted. Replace them with:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user