mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-04-26 16:19:26 -07:00
Restore multi-copy digit capture and add AniList selection (#56)
This commit is contained in:
29
src/main/character-dictionary-selection.ts
Normal file
29
src/main/character-dictionary-selection.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
import type { CharacterDictionaryManualSelectionResult } from './character-dictionary-runtime/types';
|
||||
|
||||
export type CharacterDictionarySelectionRequest = {
|
||||
targetPath?: string;
|
||||
mediaId: number;
|
||||
};
|
||||
|
||||
export type CharacterDictionarySelectionDeps = {
|
||||
setManualSelection: (
|
||||
request: CharacterDictionarySelectionRequest,
|
||||
) => Promise<CharacterDictionaryManualSelectionResult>;
|
||||
resetAnilistMediaGuessState: () => void;
|
||||
runSyncNow: () => Promise<void>;
|
||||
warn: (message: string, error?: unknown) => void;
|
||||
};
|
||||
|
||||
export async function applyCharacterDictionarySelection(
|
||||
request: CharacterDictionarySelectionRequest,
|
||||
deps: CharacterDictionarySelectionDeps,
|
||||
): Promise<CharacterDictionaryManualSelectionResult> {
|
||||
const result = await deps.setManualSelection(request);
|
||||
deps.resetAnilistMediaGuessState();
|
||||
try {
|
||||
await deps.runSyncNow();
|
||||
} catch (error) {
|
||||
deps.warn('Character dictionary auto-sync failed after manual selection', error);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
Reference in New Issue
Block a user