From d625b740bef658253a3c425332b900273daffe04 Mon Sep 17 00:00:00 2001 From: matt1432 Date: Wed, 24 Apr 2024 14:50:25 -0400 Subject: [PATCH] fix(node-sub): move back sub in case of sync failure --- .../modules/subtitles/node-syncsub/main.ts | 22 ++++++++----------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/devices/nos/modules/subtitles/node-syncsub/main.ts b/devices/nos/modules/subtitles/node-syncsub/main.ts index 6858981..0a53375 100755 --- a/devices/nos/modules/subtitles/node-syncsub/main.ts +++ b/devices/nos/modules/subtitles/node-syncsub/main.ts @@ -75,16 +75,16 @@ async function backupSubs(files: string[]) { } } -function runSubSync( +async function runSubSync( cmd: string[], - onError = (error?: string) => { - console.error(error); - }, + input: string, + output: string, ) { - const { error } = spawn('subsync', cmd, SPAWN_OPTS); + spawn('subsync', cmd, SPAWN_OPTS); - if (error) { - onError(error.message); + if (!(await readDir(DIR)).includes(output)) { + await mv(input, output); + console.log('Subtitle was moved back'); } spawn('chmod', ['-R', '775', `'${escapePath(DIR)}'`], SPAWN_OPTS); @@ -132,9 +132,7 @@ async function main() { if (files.includes(FILE_NAME)) { await mv(OUT_FILE, IN_FILE); - runSubSync(cmd, async() => { - await mv(IN_FILE, OUT_FILE); - }); + runSubSync(cmd, IN_FILE, OUT_FILE); } else { let subs = data.streams.filter((s) => { @@ -184,9 +182,7 @@ async function main() { spawn('rm', [`'${escapePath(VIDEO)}.bak'`], SPAWN_OPTS); // Sync extracted subtitle - runSubSync(cmd, async() => { - await mv(IN_FILE, OUT_FILE); - }); + runSubSync(cmd, IN_FILE, OUT_FILE); } } });