mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-07-07 13:08:54 -07:00
Fix macOS overlay foreground handling and character-dictionary cache reuse (#68)
This commit is contained in:
@@ -61,6 +61,37 @@ export function createSetAnilistMediaGuessRuntimeStateHandler(deps: {
|
||||
};
|
||||
}
|
||||
|
||||
export function createRecordAnilistMediaDurationHandler(deps: {
|
||||
getCurrentMediaKey: () => string | null;
|
||||
getState: () => AnilistMediaGuessRuntimeState;
|
||||
setState: (state: AnilistMediaGuessRuntimeState) => void;
|
||||
}) {
|
||||
return (durationSec: number): void => {
|
||||
if (!Number.isFinite(durationSec) || durationSec <= 0) {
|
||||
return;
|
||||
}
|
||||
const mediaKey = deps.getCurrentMediaKey();
|
||||
if (!mediaKey) {
|
||||
return;
|
||||
}
|
||||
const state = deps.getState();
|
||||
if (state.mediaKey === mediaKey) {
|
||||
deps.setState({
|
||||
...state,
|
||||
mediaDurationSec: durationSec,
|
||||
});
|
||||
return;
|
||||
}
|
||||
deps.setState({
|
||||
mediaKey,
|
||||
mediaDurationSec: durationSec,
|
||||
mediaGuess: null,
|
||||
mediaGuessPromise: null,
|
||||
lastDurationProbeAtMs: 0,
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
export function createResetAnilistMediaGuessStateHandler(deps: {
|
||||
setMediaGuess: (value: AnilistMediaGuessRuntimeState['mediaGuess']) => void;
|
||||
setMediaGuessPromise: (value: AnilistMediaGuessRuntimeState['mediaGuessPromise']) => void;
|
||||
|
||||
Reference in New Issue
Block a user