diff --git a/src/main/java/ru/soune/nocopy/handler/ImageFoundRequestHandler.java b/src/main/java/ru/soune/nocopy/handler/ImageFoundRequestHandler.java index f6fdbd6..80fcb85 100644 --- a/src/main/java/ru/soune/nocopy/handler/ImageFoundRequestHandler.java +++ b/src/main/java/ru/soune/nocopy/handler/ImageFoundRequestHandler.java @@ -50,9 +50,9 @@ public class ImageFoundRequestHandler implements RequestHandler { Map.of("fileId",fileId))); }); -// String searchResponseYandex; + // String searchResponseYandex; String searchResponseGoogle; -// List allYandexImages = new ArrayList<>(); + // List allYandexImages = new ArrayList<>(); List allGoogleImages = new ArrayList<>(); List allUniqueImages; boolean hasTimeout = false; @@ -70,21 +70,24 @@ public class ImageFoundRequestHandler implements RequestHandler { log.error("Google search failed for file {}", fileId, e); } -// try { -// searchResponseYandex = searchImageService.searchReverseByPublicUrl(fileEntity, "yandex_reverse_image", -// "visual_matches"); -// log.info("searchResponseYandex OK"); -// allYandexImages = searchImageService.getAllImagesWithoutPagination( -// searchResponseYandex, "visual_matches"); -// } catch (TimeoutException e) { -// log.warn("Yandex search timeout for file {}", fileId); -// hasTimeout = true; -// } catch (IOException e) { -// log.error("Yandex search failed for file {}", fileId, e); -// } + /* + try { + searchResponseYandex = searchImageService.searchReverseByPublicUrl(fileEntity, "yandex_reverse_image", + "visual_matches"); + log.info("searchResponseYandex OK"); + allYandexImages = searchImageService.getAllImagesWithoutPagination( + searchResponseYandex, "visual_matches"); + } catch (TimeoutException e) { + log.warn("Yandex search timeout for file {}", fileId); + hasTimeout = true; + } catch (IOException e) { + log.error("Yandex search failed for file {}", fileId, e); + } + */ -// allUniqueImages = searchImageService.removeDuplicateUrls(allYandexImages, allGoogleImages); -// log.info("allUniqueImages OK: {} images", allUniqueImages.size()); + // allUniqueImages = searchImageService.removeDuplicateUrls(allYandexImages, allGoogleImages); + allUniqueImages = allGoogleImages; + log.info("allUniqueImages OK: {} images", allUniqueImages.size()); tariffInfoService.writeOffTokens(fileEntity.getUserId(), TariffConstants.TOKEN_VALUE_FOR_SEARCH); checkCounterService.incrementCheckCount(fileEntity.getUserId(), fileEntity.getMimeType()); @@ -92,17 +95,15 @@ public class ImageFoundRequestHandler implements RequestHandler { int page = imageSearchRequest.getPage() != null ? imageSearchRequest.getPage() : 1; int pageSize = 5; -// List pagedResults = searchImageService.paginateResults(allUniqueImages, page, -// pageSize * 2); - List pagedResults = searchImageService.paginateResults(allGoogleImages, page, + List pagedResults = searchImageService.paginateResults(allUniqueImages, page, pageSize * 2); YandexSearchResponse finalResponse = new YandexSearchResponse(); finalResponse.setImages(pagedResults); finalResponse.setPage(page); finalResponse.setPageSize(pageSize * 2); - finalResponse.setTotalResults(allGoogleImages.size()); - finalResponse.setTotalPages((int) Math.ceil((double) allGoogleImages.size() / (pageSize * 2))); + finalResponse.setTotalResults(allUniqueImages.size()); + finalResponse.setTotalPages((int) Math.ceil((double) allUniqueImages.size() / (pageSize * 2))); String message = hasTimeout ? "Search completed (partial)" : MessageCode.SUCCESS.getDescription(); 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 c70f14e..1c89488 100644 --- a/src/main/java/ru/soune/nocopy/service/search/SearchImageService.java +++ b/src/main/java/ru/soune/nocopy/service/search/SearchImageService.java @@ -202,10 +202,10 @@ public class SearchImageService { uniqueByUrl.putIfAbsent(normalizedUrl, image); } -// for (YandexSearchResponse.ImageResult image : yandexImages) { -// String normalizedUrl = normalizeUrl(image.getUrl()); -// uniqueByUrl.putIfAbsent(normalizedUrl, image); -// } + for (YandexSearchResponse.ImageResult image : yandexImages) { + String normalizedUrl = normalizeUrl(image.getUrl()); + uniqueByUrl.putIfAbsent(normalizedUrl, image); + } return new ArrayList<>(uniqueByUrl.values()); }