Files
SubMiner/src/main/runtime/character-dictionary-auto-sync-completion.ts
T

35 lines
1.2 KiB
TypeScript

export function handleCharacterDictionaryAutoSyncComplete(
completion: {
mediaId: number;
mediaTitle: string;
changed: boolean;
},
deps: {
hasParserWindow: () => boolean;
clearParserCaches: () => void;
/**
* Drops cached reads of the generated dictionary (character images, and the
* name candidates the scanner uses to skip lookups). Runs before the
* refreshes below so they re-tokenize against the new dictionary content.
*/
invalidateCharacterDictionaryLookups?: () => void;
invalidateTokenizationCache: () => void;
refreshSubtitlePrefetch: () => void;
refreshCurrentSubtitle: () => void;
logInfo: (message: string) => void;
},
): void {
if (completion.changed) {
deps.invalidateCharacterDictionaryLookups?.();
if (deps.hasParserWindow()) {
deps.clearParserCaches();
}
deps.invalidateTokenizationCache();
deps.refreshSubtitlePrefetch();
deps.refreshCurrentSubtitle();
}
deps.logInfo(
`[dictionary:auto-sync] refreshed current subtitle after sync (AniList ${completion.mediaId}, changed=${completion.changed ? 'yes' : 'no'}, title=${completion.mediaTitle})`,
);
}