From 1cb9edd5bffb0d6e56e645bbc2dd838d56ff3cd7 Mon Sep 17 00:00:00 2001 From: vladp Date: Wed, 11 Feb 2026 17:53:02 +0700 Subject: [PATCH] dev change to visual_matches engine --- .../soune/nocopy/handler/ImageFoundRequestHandler.java | 6 ++++-- .../soune/nocopy/service/search/SearchImageService.java | 9 +++++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/main/java/ru/soune/nocopy/handler/ImageFoundRequestHandler.java b/src/main/java/ru/soune/nocopy/handler/ImageFoundRequestHandler.java index 574fdce..071bb8f 100644 --- a/src/main/java/ru/soune/nocopy/handler/ImageFoundRequestHandler.java +++ b/src/main/java/ru/soune/nocopy/handler/ImageFoundRequestHandler.java @@ -65,8 +65,10 @@ public class ImageFoundRequestHandler implements RequestHandler { String searchResponseYandex; String searchResponseGoogle; try { - searchResponseYandex = searchImageService.searchReverseByPublicUrl(fileEntity, "yandex_reverse_image"); - searchResponseGoogle = searchImageService.searchReverseByPublicUrl(fileEntity, "google_lens"); + searchResponseYandex = searchImageService.searchReverseByPublicUrl(fileEntity, "yandex_reverse_image", + "visual_matches"); + searchResponseGoogle = searchImageService.searchReverseByPublicUrl(fileEntity, "google_lens", + "exact_matches"); } catch (TimeoutException e) { log.warn("Search timeout for file {}, returning empty results", fileId); return new BaseResponse(request.getMsgId(), MessageCode.SUCCESS.getCode(), diff --git a/src/main/java/ru/soune/nocopy/service/search/SearchImageService.java b/src/main/java/ru/soune/nocopy/service/search/SearchImageService.java index a11c3d3..fe88b9f 100644 --- a/src/main/java/ru/soune/nocopy/service/search/SearchImageService.java +++ b/src/main/java/ru/soune/nocopy/service/search/SearchImageService.java @@ -58,7 +58,7 @@ public class SearchImageService { objectMapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true); } - public String searchReverseByPublicUrl(FileEntity fileEntity, String engine) + public String searchReverseByPublicUrl(FileEntity fileEntity, String engine, String searchType) throws IOException, TimeoutException { if (!isImageFile(fileEntity)) { @@ -78,7 +78,7 @@ public class SearchImageService { log.info("Searching reverse for image: {}", publicUrl); try { - return callReverseImageApiByUrl(publicUrl, engine); + return callReverseImageApiByUrl(publicUrl, engine, searchType); } catch (SocketTimeoutException e) { log.error("Yandex search timeout after {}", fileEntity.getId()); throw new TimeoutException("Search timeout"); @@ -90,7 +90,7 @@ public class SearchImageService { return mimeType != null && mimeType.startsWith("image"); } - private String callReverseImageApiByUrl(String imageUrl, String engine) throws IOException { + private String callReverseImageApiByUrl(String imageUrl, String engine, String searchType) throws IOException { if (searchApiKey == null || searchApiKey.isBlank()) { throw new IllegalStateException("SearchAPI key not configured"); @@ -101,7 +101,8 @@ public class SearchImageService { .addQueryParameter("engine", engine) .addQueryParameter("api_key", searchApiKey) .addQueryParameter("url", imageUrl) - .addQueryParameter("search_type", "visual_matches") +// .addQueryParameter("search_type", "visual_matches") + .addQueryParameter("search_type", searchType) .addQueryParameter("wait", "true") .build();