mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-02-28 06:22:45 -08:00
51 lines
1.5 KiB
TypeScript
51 lines
1.5 KiB
TypeScript
interface RuntimeAutoUpdateOptionManagerLike {
|
|
getOptionValue: (id: "anki.autoUpdateNewCards") => unknown;
|
|
}
|
|
|
|
interface RuntimeConfigLike {
|
|
auto_start_overlay?: boolean;
|
|
bind_visible_overlay_to_mpv_sub_visibility: boolean;
|
|
invisibleOverlay: {
|
|
startupVisibility: "visible" | "hidden" | "platform-default";
|
|
};
|
|
ankiConnect?: {
|
|
behavior?: {
|
|
autoUpdateNewCards?: boolean;
|
|
};
|
|
};
|
|
}
|
|
|
|
export function getInitialInvisibleOverlayVisibilityService(
|
|
config: RuntimeConfigLike,
|
|
platform: NodeJS.Platform,
|
|
): boolean {
|
|
const visibility = config.invisibleOverlay.startupVisibility;
|
|
if (visibility === "visible") return true;
|
|
if (visibility === "hidden") return false;
|
|
if (platform === "linux") return false;
|
|
return true;
|
|
}
|
|
|
|
export function shouldAutoInitializeOverlayRuntimeFromConfigService(
|
|
config: RuntimeConfigLike,
|
|
): boolean {
|
|
if (config.auto_start_overlay === true) return true;
|
|
if (config.invisibleOverlay.startupVisibility === "visible") return true;
|
|
return false;
|
|
}
|
|
|
|
export function shouldBindVisibleOverlayToMpvSubVisibilityService(
|
|
config: RuntimeConfigLike,
|
|
): boolean {
|
|
return config.bind_visible_overlay_to_mpv_sub_visibility;
|
|
}
|
|
|
|
export function isAutoUpdateEnabledRuntimeService(
|
|
config: RuntimeConfigLike,
|
|
runtimeOptionsManager: RuntimeAutoUpdateOptionManagerLike | null,
|
|
): boolean {
|
|
const value = runtimeOptionsManager?.getOptionValue("anki.autoUpdateNewCards");
|
|
if (typeof value === "boolean") return value;
|
|
return config.ankiConnect?.behavior?.autoUpdateNewCards !== false;
|
|
}
|