mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-07-29 07:21:33 -07:00
feat(launcher): add post-playback history menu with previous episode
- After a history episode ends or mpv closes, show a menu to play the previous/next episode, rewatch, browse, or quit, looping back to the same series - Add findPreviousEpisode to step backward within and across season directories - Add quit option to the initial history series-action menu - Dedupe signal-handler registration in playback-command so repeated history sessions don't stack SIGINT/SIGTERM handlers - Update README and docs-site for the new history flow
This commit is contained in:
@@ -5,7 +5,7 @@ import fs from 'node:fs';
|
||||
import os from 'node:os';
|
||||
import path from 'node:path';
|
||||
import type { LauncherCommandContext } from './context.js';
|
||||
import { runPlaybackCommandWithDeps } from './playback-command.js';
|
||||
import { registerCleanup, runPlaybackCommandWithDeps } from './playback-command.js';
|
||||
import { state } from '../mpv.js';
|
||||
|
||||
function createContext(): LauncherCommandContext {
|
||||
@@ -103,6 +103,20 @@ function createContext(): LauncherCommandContext {
|
||||
};
|
||||
}
|
||||
|
||||
test('playback cleanup signal handlers are registered once across repeated sessions', () => {
|
||||
assert.equal(typeof registerCleanup, 'function', 'cleanup registration is not exported');
|
||||
const context = createContext();
|
||||
const registeredSignals: NodeJS.Signals[] = [];
|
||||
context.processAdapter.onSignal = (signal) => {
|
||||
registeredSignals.push(signal);
|
||||
};
|
||||
|
||||
registerCleanup(context);
|
||||
registerCleanup(context);
|
||||
|
||||
assert.deepEqual(registeredSignals, ['SIGINT', 'SIGTERM']);
|
||||
});
|
||||
|
||||
test('youtube playback launches overlay with app-owned youtube flow args', async () => {
|
||||
const calls: string[] = [];
|
||||
const context = createContext();
|
||||
|
||||
Reference in New Issue
Block a user