From 65b58c3668e236a52a94967f88f6c05fb69b6126 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 26 Jul 2025 14:12:22 +0300 Subject: [PATCH] feat(ocr): auto-process images only if enabled in settings --- apps/server/src/services/handlers.ts | 4 +++- apps/server/src/services/image.ts | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/server/src/services/handlers.ts b/apps/server/src/services/handlers.ts index d1bebfba1..5fa5aa0f1 100644 --- a/apps/server/src/services/handlers.ts +++ b/apps/server/src/services/handlers.ts @@ -7,6 +7,7 @@ import BAttribute from "../becca/entities/battribute.js"; import hiddenSubtreeService from "./hidden_subtree.js"; import oneTimeTimer from "./one_time_timer.js"; import ocrService from "./ocr/ocr_service.js"; +import optionService from "./options.js"; import log from "./log.js"; import type BNote from "../becca/entities/bnote.js"; import type AbstractBeccaEntity from "../becca/entities/abstract_becca_entity.js"; @@ -142,7 +143,8 @@ eventService.subscribe(eventService.ENTITY_CREATED, ({ entityName, entity }) => // Note: OCR processing for images is now handled in image.ts during image processing // OCR processing for files remains here since they don't go through image processing - if (entity.type === 'file' && ocrService.isOCREnabled()) { + // Only auto-process if both OCR is enabled and auto-processing is enabled + if (entity.type === 'file' && ocrService.isOCREnabled() && optionService.getOptionBool("ocrAutoProcessImages")) { // Check if the file MIME type is supported by any OCR processor const supportedMimeTypes = ocrService.getAllSupportedMimeTypes(); diff --git a/apps/server/src/services/image.ts b/apps/server/src/services/image.ts index 3fa2422d6..d5fe58c3f 100644 --- a/apps/server/src/services/image.ts +++ b/apps/server/src/services/image.ts @@ -26,7 +26,8 @@ async function processImage(uploadBuffer: Buffer, originalName: string, shrinkIm } // Schedule OCR processing in the background for best quality - if (noteId && ocrService.isOCREnabled() && origImageFormat) { + // Only auto-process if both OCR is enabled and auto-processing is enabled + if (noteId && ocrService.isOCREnabled() && optionService.getOptionBool("ocrAutoProcessImages") && origImageFormat) { const imageMime = getImageMimeFromExtension(origImageFormat.ext); const supportedMimeTypes = ocrService.getAllSupportedMimeTypes();