mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-09-23 05:16:23 -07:00
fix(anki): regenerate sentence furigana from the final sentence (#268)
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
import { formatSentenceFurigana } from '../../../anki-integration/sentence-furigana';
|
||||
import { requestYomitanParseResults } from './yomitan-parser-runtime';
|
||||
|
||||
export async function generateSentenceFurigana(
|
||||
text: string,
|
||||
highlightedText: string | undefined,
|
||||
deps: Parameters<typeof requestYomitanParseResults>[1],
|
||||
logger: Parameters<typeof requestYomitanParseResults>[2],
|
||||
): Promise<string | null> {
|
||||
let timer: ReturnType<typeof setTimeout> | undefined;
|
||||
try {
|
||||
const results = await Promise.race([
|
||||
requestYomitanParseResults(text, deps, logger),
|
||||
new Promise<never>((_, reject) => {
|
||||
timer = setTimeout(
|
||||
() => reject(new Error('Sentence furigana generation timed out')),
|
||||
10_000,
|
||||
);
|
||||
}),
|
||||
]);
|
||||
return formatSentenceFurigana(text, results, highlightedText);
|
||||
} catch (error) {
|
||||
logger.warn?.('Failed to generate sentence furigana:', error);
|
||||
return null;
|
||||
} finally {
|
||||
clearTimeout(timer);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user