[translate] Update for changes in LibreTranslate API

This commit is contained in:
Johannes Frohnmeyer 2022-07-01 19:09:57 +02:00
parent d0d3734c70
commit 06bd6a1961
Signed by: Johannes
GPG Key ID: E76429612C2929F4
2 changed files with 8 additions and 26 deletions

View File

@ -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);
}

View File

@ -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;
}
}