This commit is contained in:
@@ -65,8 +65,10 @@ public class ImageFoundRequestHandler implements RequestHandler {
|
|||||||
String searchResponseYandex;
|
String searchResponseYandex;
|
||||||
String searchResponseGoogle;
|
String searchResponseGoogle;
|
||||||
try {
|
try {
|
||||||
searchResponseYandex = searchImageService.searchReverseByPublicUrl(fileEntity, "yandex_reverse_image");
|
searchResponseYandex = searchImageService.searchReverseByPublicUrl(fileEntity, "yandex_reverse_image",
|
||||||
searchResponseGoogle = searchImageService.searchReverseByPublicUrl(fileEntity, "google_lens");
|
"visual_matches");
|
||||||
|
searchResponseGoogle = searchImageService.searchReverseByPublicUrl(fileEntity, "google_lens",
|
||||||
|
"exact_matches");
|
||||||
} catch (TimeoutException e) {
|
} catch (TimeoutException e) {
|
||||||
log.warn("Search timeout for file {}, returning empty results", fileId);
|
log.warn("Search timeout for file {}, returning empty results", fileId);
|
||||||
return new BaseResponse(request.getMsgId(), MessageCode.SUCCESS.getCode(),
|
return new BaseResponse(request.getMsgId(), MessageCode.SUCCESS.getCode(),
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ public class SearchImageService {
|
|||||||
objectMapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);
|
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 {
|
throws IOException, TimeoutException {
|
||||||
|
|
||||||
if (!isImageFile(fileEntity)) {
|
if (!isImageFile(fileEntity)) {
|
||||||
@@ -78,7 +78,7 @@ public class SearchImageService {
|
|||||||
log.info("Searching reverse for image: {}", publicUrl);
|
log.info("Searching reverse for image: {}", publicUrl);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
return callReverseImageApiByUrl(publicUrl, engine);
|
return callReverseImageApiByUrl(publicUrl, engine, searchType);
|
||||||
} catch (SocketTimeoutException e) {
|
} catch (SocketTimeoutException e) {
|
||||||
log.error("Yandex search timeout after {}", fileEntity.getId());
|
log.error("Yandex search timeout after {}", fileEntity.getId());
|
||||||
throw new TimeoutException("Search timeout");
|
throw new TimeoutException("Search timeout");
|
||||||
@@ -90,7 +90,7 @@ public class SearchImageService {
|
|||||||
return mimeType != null && mimeType.startsWith("image");
|
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()) {
|
if (searchApiKey == null || searchApiKey.isBlank()) {
|
||||||
throw new IllegalStateException("SearchAPI key not configured");
|
throw new IllegalStateException("SearchAPI key not configured");
|
||||||
@@ -101,7 +101,8 @@ public class SearchImageService {
|
|||||||
.addQueryParameter("engine", engine)
|
.addQueryParameter("engine", engine)
|
||||||
.addQueryParameter("api_key", searchApiKey)
|
.addQueryParameter("api_key", searchApiKey)
|
||||||
.addQueryParameter("url", imageUrl)
|
.addQueryParameter("url", imageUrl)
|
||||||
.addQueryParameter("search_type", "visual_matches")
|
// .addQueryParameter("search_type", "visual_matches")
|
||||||
|
.addQueryParameter("search_type", searchType)
|
||||||
.addQueryParameter("wait", "true")
|
.addQueryParameter("wait", "true")
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user