From 47366064caaecabb180b41781928c14d9648d21c Mon Sep 17 00:00:00 2001 From: icarus Date: Mon, 20 Oct 2025 01:44:23 +0800 Subject: [PATCH] refactor(ocr): move ocr config to shared and add utility function Migrate ocr configuration from renderer to shared config and introduce getDefaultOcrProvider utility function to centralize default provider logic --- src/renderer/src/config/ocr.ts | 9 +-------- src/renderer/src/store/migrate.ts | 4 ++-- src/renderer/src/store/ocr.ts | 4 ++-- src/renderer/src/utils/ocr.ts | 10 ++++++++++ 4 files changed, 15 insertions(+), 12 deletions(-) create mode 100644 src/renderer/src/utils/ocr.ts diff --git a/src/renderer/src/config/ocr.ts b/src/renderer/src/config/ocr.ts index 692cb273b8..e1612ef41f 100644 --- a/src/renderer/src/config/ocr.ts +++ b/src/renderer/src/config/ocr.ts @@ -1,8 +1 @@ -import type { BuiltinOcrProvider, OcrProviderCapability } from '@renderer/types' -import { systemOcr, tesseract } from '@shared/config/ocr' - -import { isMac, isWin } from './constant' - -export const DEFAULT_OCR_PROVIDER = { - image: isWin || isMac ? systemOcr : tesseract -} as const satisfies Record +// All config are migrated to @shared/config/ocr diff --git a/src/renderer/src/store/migrate.ts b/src/renderer/src/store/migrate.ts index afbf9782f4..d79367b557 100644 --- a/src/renderer/src/store/migrate.ts +++ b/src/renderer/src/store/migrate.ts @@ -11,7 +11,6 @@ import { isNotSupportedTextDelta, SYSTEM_MODELS } from '@renderer/config/models' -import { DEFAULT_OCR_PROVIDER } from '@renderer/config/ocr' import { isSupportArrayContentProvider, isSupportDeveloperRoleProvider, @@ -33,6 +32,7 @@ import type { } from '@renderer/types' import { isBuiltinOcrProvider, isSystemProvider, SystemProviderIds } from '@renderer/types' import { getDefaultGroupName, getLeadingEmoji, runAsyncFunction, uuid } from '@renderer/utils' +import { getDefaultOcrProvider } from '@renderer/utils/ocr' import { defaultByPassRules } from '@shared/config/constant' import { BUILTIN_OCR_PROVIDERS } from '@shared/config/ocr' import { BUILTIN_OCR_PROVIDER_CONFIG_MAP, BUILTIN_OCR_PROVIDERS_MAP } from '@shared/config/ocr' @@ -2238,7 +2238,7 @@ const migrateConfig = { // @ts-expect-error old migration state.ocr = { providers: BUILTIN_OCR_PROVIDERS, - imageProviderId: DEFAULT_OCR_PROVIDER.image.id + imageProviderId: getDefaultOcrProvider('image').id } state.translate.translateInput = '' return state diff --git a/src/renderer/src/store/ocr.ts b/src/renderer/src/store/ocr.ts index 3fd8939984..f9e78c79b9 100644 --- a/src/renderer/src/store/ocr.ts +++ b/src/renderer/src/store/ocr.ts @@ -1,7 +1,7 @@ import type { PayloadAction } from '@reduxjs/toolkit' import { createSlice } from '@reduxjs/toolkit' -import { DEFAULT_OCR_PROVIDER } from '@renderer/config/ocr' import type { BuiltinOcrProviderId, OcrProvider, OcrProviderConfig } from '@renderer/types' +import { getDefaultOcrProvider } from '@renderer/utils/ocr' import { BUILTIN_OCR_PROVIDERS } from '@shared/config/ocr' import { BUILTIN_OCR_PROVIDER_CONFIG_MAP } from '@shared/config/ocr' @@ -19,7 +19,7 @@ const initialState: OcrState = { paddleocr: BUILTIN_OCR_PROVIDER_CONFIG_MAP.paddleocr, ovocr: BUILTIN_OCR_PROVIDER_CONFIG_MAP.ovocr }, - imageProviderId: DEFAULT_OCR_PROVIDER.image.id + imageProviderId: getDefaultOcrProvider('image').id } const ocrSlice = createSlice({ diff --git a/src/renderer/src/utils/ocr.ts b/src/renderer/src/utils/ocr.ts new file mode 100644 index 0000000000..d510437671 --- /dev/null +++ b/src/renderer/src/utils/ocr.ts @@ -0,0 +1,10 @@ +import { isMac, isWin } from '@renderer/config/constant' +import type { OcrProviderCapability } from '@renderer/types' +import { systemOcr, tesseract } from '@shared/config/ocr' + +export const getDefaultOcrProvider = (cap: OcrProviderCapability) => { + switch (cap) { + case 'image': + return isWin || isMac ? systemOcr : tesseract + } +}