[translate] Update for changes in LibreTranslate API
This commit is contained in:
parent
d0d3734c70
commit
06bd6a1961
@ -4,18 +4,12 @@ import com.google.common.reflect.TypeToken;
|
||||
import io.gitlab.jfronny.libjf.HttpUtils;
|
||||
import io.gitlab.jfronny.libjf.translate.api.TranslateException;
|
||||
import io.gitlab.jfronny.libjf.translate.api.TranslateService;
|
||||
import io.gitlab.jfronny.libjf.translate.impl.libretranslate.model.LibreTranslateDetectResult;
|
||||
import io.gitlab.jfronny.libjf.translate.impl.libretranslate.model.LibreTranslateLanguage;
|
||||
import io.gitlab.jfronny.libjf.translate.impl.libretranslate.model.LibreTranslateRequest;
|
||||
import io.gitlab.jfronny.libjf.translate.impl.libretranslate.model.LibreTranslateResult;
|
||||
import io.gitlab.jfronny.libjf.translate.impl.libretranslate.model.*;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.Type;
|
||||
import java.net.URISyntaxException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
|
||||
public class LibreTranslateService implements TranslateService<LibreTranslateLanguage> {
|
||||
private static final Type languageListType = new TypeToken<List<LibreTranslateLanguage.ApiResult>>(){}.getType();
|
||||
@ -65,13 +59,13 @@ public class LibreTranslateService implements TranslateService<LibreTranslateLan
|
||||
if (textToTranslate == null) throw new TranslateException("textToTranslate must not be null");
|
||||
if (translateFrom == null) translateFrom = autoDetect;
|
||||
if (translateTo == null) throw new TranslateException("translateTo must not be null");
|
||||
LibreTranslateRequest.Translate request = new LibreTranslateRequest.Translate();
|
||||
request.q = textToTranslate;
|
||||
request.source = translateFrom.getIdentifier();
|
||||
request.target = translateTo.getIdentifier();
|
||||
LibreTranslateResult result = null;
|
||||
try {
|
||||
result = HttpUtils.post(host + "/translate").bodyJson(request).sendJson(LibreTranslateResult.class);
|
||||
result = HttpUtils.post(host + "/translate").bodyForm(Map.of(
|
||||
"q", textToTranslate,
|
||||
"source", translateFrom.getIdentifier(),
|
||||
"target", translateTo.getIdentifier()
|
||||
)).sendJson(LibreTranslateResult.class);
|
||||
} catch (IOException | URISyntaxException e) {
|
||||
throw new TranslateException("Could not translate text", e);
|
||||
}
|
||||
@ -80,11 +74,9 @@ public class LibreTranslateService implements TranslateService<LibreTranslateLan
|
||||
|
||||
@Override
|
||||
public LibreTranslateLanguage detect(String text) throws TranslateException {
|
||||
LibreTranslateRequest request = new LibreTranslateRequest();
|
||||
request.q = text;
|
||||
List<LibreTranslateDetectResult> result;
|
||||
try {
|
||||
result = HttpUtils.post(host + "/detect").bodyJson(request).sendJson(translateDetectResultListType);
|
||||
result = HttpUtils.post(host + "/detect").bodyForm(Map.of("q", text)).sendJson(translateDetectResultListType);
|
||||
} catch (IOException | URISyntaxException e) {
|
||||
throw new TranslateException("Could not detect language", e);
|
||||
}
|
||||
|
@ -1,10 +0,0 @@
|
||||
package io.gitlab.jfronny.libjf.translate.impl.libretranslate.model;
|
||||
|
||||
public class LibreTranslateRequest {
|
||||
public String q;
|
||||
|
||||
public static class Translate extends LibreTranslateRequest {
|
||||
public String source;
|
||||
public String target;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user