feat: open texthooker from cli and tray

This commit is contained in:
2026-05-02 19:37:44 -07:00
parent 13e2b5f8c8
commit 3a67e23bc3
30 changed files with 210 additions and 8 deletions
+3
View File
@@ -124,9 +124,12 @@ test('youtube playback does not use generic overlay-runtime bootstrap classifica
test('standalone texthooker classification excludes integrated start flow', () => {
const standalone = parseArgs(['--texthooker']);
const standaloneOpenBrowser = parseArgs(['--texthooker', '--open-browser']);
const integrated = parseArgs(['--start', '--texthooker']);
assert.equal(isStandaloneTexthookerCommand(standalone), true);
assert.equal(standaloneOpenBrowser.texthookerOpenBrowser, true);
assert.equal(isStandaloneTexthookerCommand(standaloneOpenBrowser), true);
assert.equal(isStandaloneTexthookerCommand(integrated), false);
});
+3
View File
@@ -71,6 +71,7 @@ export interface CliArgs {
jellyfinRemoteAnnounce: boolean;
jellyfinPreviewAuth: boolean;
texthooker: boolean;
texthookerOpenBrowser: boolean;
help: boolean;
autoStartOverlay: boolean;
generateConfig: boolean;
@@ -164,6 +165,7 @@ export function parseArgs(argv: string[]): CliArgs {
jellyfinRemoteAnnounce: false,
jellyfinPreviewAuth: false,
texthooker: false,
texthookerOpenBrowser: false,
help: false,
autoStartOverlay: false,
generateConfig: false,
@@ -327,6 +329,7 @@ export function parseArgs(argv: string[]): CliArgs {
else if (arg === '--jellyfin-remote-announce') args.jellyfinRemoteAnnounce = true;
else if (arg === '--jellyfin-preview-auth') args.jellyfinPreviewAuth = true;
else if (arg === '--texthooker') args.texthooker = true;
else if (arg === '--open-browser') args.texthookerOpenBrowser = true;
else if (arg === '--auto-start-overlay') args.autoStartOverlay = true;
else if (arg === '--generate-config') args.generateConfig = true;
else if (arg === '--backup-overwrite') args.backupOverwrite = true;
+1
View File
@@ -19,6 +19,7 @@ test('printHelp includes configured texthooker port', () => {
assert.match(output, /default: 7777/);
assert.match(output, /--launch-mpv.*Launch mpv with SubMiner defaults and exit/);
assert.match(output, /--stats\s+Open the stats dashboard in your browser/);
assert.match(output, /--open-browser\s+Open texthooker in your default browser/);
assert.doesNotMatch(output, /--refresh-known-words/);
assert.match(output, /--setup\s+Open first-run setup window/);
assert.match(output, /--anilist-status/);
+1
View File
@@ -16,6 +16,7 @@ ${B}Session${R}
--stop Stop the running instance
--stats Open the stats dashboard in your browser
--texthooker Start texthooker server only ${D}(no overlay)${R}
--open-browser Open texthooker in your default browser
${B}Overlay${R}
--toggle-visible-overlay Toggle subtitle overlay