feat(launcher): add -H/--history command to browse local watch history

- New `subminer -H` flag opens an fzf/rofi menu of watched series from the immersion tracker DB
- Actions: replay last episode, play next episode (cross-season), or browse episodes
- Adds `history.ts` with DB query, series grouping, season dir listing, and next-episode logic
- Adds `bun-sqlite.d.ts` ambient types for tsc compat
- Includes full test coverage in `history.test.ts`
This commit is contained in:
2026-07-05 00:29:52 -07:00
parent 73af1451b7
commit 29e2a266e2
15 changed files with 777 additions and 1 deletions
+13
View File
@@ -42,6 +42,19 @@ test('parseArgs maps root settings window option', () => {
assert.equal(parsed.settings, true);
});
test('parseArgs maps root watch history flags', () => {
const shortParsed = parseArgs(['-H'], 'subminer', {});
const longParsed = parseArgs(['--history'], 'subminer', {});
const rofiParsed = parseArgs(['-R', '-H'], 'subminer', {});
const defaultParsed = parseArgs([], 'subminer', {});
assert.equal(shortParsed.history, true);
assert.equal(longParsed.history, true);
assert.equal(rofiParsed.history, true);
assert.equal(rofiParsed.useRofi, true);
assert.equal(defaultParsed.history, false);
});
test('parseArgs maps root update flags without conflicting with jellyfin username', () => {
const shortParsed = parseArgs(['-u'], 'subminer', {});
const longParsed = parseArgs(['--update'], 'subminer', {});