|
|
|
|
@@ -12,53 +12,59 @@ import java.nio.charset.StandardCharsets;
|
|
|
|
|
import java.util.Objects;
|
|
|
|
|
public class Translator {
|
|
|
|
|
public static String globalAuthKey = "null";
|
|
|
|
|
public static void setGlobalAuthKey(String key) {
|
|
|
|
|
globalAuthKey = key;
|
|
|
|
|
}
|
|
|
|
|
private Request request;
|
|
|
|
|
protected Request request;
|
|
|
|
|
public Translator() {
|
|
|
|
|
if (globalAuthKey == null) {
|
|
|
|
|
/*
|
|
|
|
|
[DeepJ] You are currently using the Global Auth Key Translator Constructor.
|
|
|
|
|
[DeepJ] If you are trying to use global auth keys, Call the method "Translator.setGlobalAuthKey(String key)" and then re-use this contructor.
|
|
|
|
|
[DeepJ] If you want to define a different authkey every time do: "new Translator(String authKey)"
|
|
|
|
|
*/
|
|
|
|
|
System.out.println("\n[DeepJ] You are currently using the Global Auth Key Translator Constructor." +
|
|
|
|
|
"\n[DeepJ] If you are trying to use global auth keys, Call the method \"Translator.setGlobalAuthKey(String key)\" and then re-use this contructor." +
|
|
|
|
|
"\n[DeepJ] If you want to define an different authkey every time do: \"new Translator(String authKey)\"\n");
|
|
|
|
|
System.out.println("\n[DeepJ] You are currently using the Global Auth Key Translator Constructor." +"\n[DeepJ] If you are trying to use global auth keys, Call the method \"Translator.setGlobalAuthKey(String key)\" and then re-use this contructor." + "\n[DeepJ] If you want to define an different authkey every time do: \"new Translator(String authKey)\"\n");
|
|
|
|
|
} else {
|
|
|
|
|
request = new Request(globalAuthKey);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
public Translator(String authKey) {
|
|
|
|
|
if (!Objects.equals(globalAuthKey, "null")) {
|
|
|
|
|
/*
|
|
|
|
|
[DeepJ] Looks like you have defined a global auth key already! You can use if by just typing "new Traslator()"
|
|
|
|
|
instead of "new Translator(String authKey)". NOTE: This will work but just some advice :)
|
|
|
|
|
*/
|
|
|
|
|
System.out.println("[DeepJ] Looks like you have defined a global auth key already! You can use if by just typing \"new Traslator()\"" +
|
|
|
|
|
"\n instead of \"new Translator(String authKey)\". NOTE: This will work but just some advice :)");
|
|
|
|
|
System.out.println("[DeepJ] Looks like you have defined a global auth key already! You can use if by just typing \"new Traslator()\"" + "\n instead of \"new Translator(String authKey)\". NOTE: This will work but just some advice :)");
|
|
|
|
|
}
|
|
|
|
|
request = new Request(authKey);
|
|
|
|
|
}
|
|
|
|
|
public Translator(String authKey, boolean silence) {
|
|
|
|
|
if (!Objects.equals(globalAuthKey, "null") && !silence) {
|
|
|
|
|
/*
|
|
|
|
|
[DeepJ] Looks like you have defined a global auth key already! You can use if by just typing "new Traslator()"
|
|
|
|
|
instead of "new Translator(String authKey)". NOTE: This will work but just some advice :)
|
|
|
|
|
*/
|
|
|
|
|
System.out.println("[DeepJ] Looks like you have defined a global auth key already! You can use if by just typing \"new Traslator()\"" +
|
|
|
|
|
"\n instead of \"new Translator(String authKey)\". NOTE: This will work but this is just some advice :)");
|
|
|
|
|
System.out.println("[DeepJ] Looks like you have defined a global auth key already! You can use if by just typing \"new Traslator()\"" + "\n instead of \"new Translator(String authKey)\". NOTE: This will work but this is just some advice :)");
|
|
|
|
|
}
|
|
|
|
|
request = new Request(authKey);
|
|
|
|
|
}
|
|
|
|
|
public static void setGlobalAuthKey(String key) {
|
|
|
|
|
globalAuthKey = key;
|
|
|
|
|
}
|
|
|
|
|
public static Translator newTranslator(String authKey) {
|
|
|
|
|
return new Translator(authKey);
|
|
|
|
|
}
|
|
|
|
|
public static Translator newTranslator() {
|
|
|
|
|
if (globalAuthKey == null) {
|
|
|
|
|
System.out.println("\n[DeepJ] You are currently using the Global Auth Key \".of()\" Translator." +
|
|
|
|
|
"\n[DeepJ] If you are trying to use global auth keys, Call the method \"Translator.setGlobalAuthKey(String key)\" and then re-use this method." +
|
|
|
|
|
"\n[DeepJ] If you want to define an different authkey every time do: \"Translator.of(String authKey)\"\n");
|
|
|
|
|
return new Translator("null");
|
|
|
|
|
} else {
|
|
|
|
|
return new Translator();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
public void setAuthKey(String key) {
|
|
|
|
|
request.setAuthKey(key);
|
|
|
|
|
}
|
|
|
|
|
public void setAPIKey(String authKey) {
|
|
|
|
|
request = new Request(authKey);
|
|
|
|
|
}
|
|
|
|
|
public String getAPIKey() {
|
|
|
|
|
return request.authKey;
|
|
|
|
|
}
|
|
|
|
|
public void close() {
|
|
|
|
|
request = new Request("null");
|
|
|
|
|
}
|
|
|
|
|
public String translate(Language langToTranslateTo, String sourceMessage) {
|
|
|
|
|
if (request.authKey == "null") {
|
|
|
|
|
System.out.println("[DeepJ] This translator is closed! Please re-create!");
|
|
|
|
|
return "null";
|
|
|
|
|
}
|
|
|
|
|
String response = "Error processing request";
|
|
|
|
|
try {
|
|
|
|
|
response = request.queryAPI(langToTranslateTo, sourceMessage);
|
|
|
|
|
@@ -76,19 +82,19 @@ instead of "new Translator(String authKey)". NOTE: This will work but just some
|
|
|
|
|
return message;
|
|
|
|
|
}
|
|
|
|
|
protected static class Request {
|
|
|
|
|
public final String authKey;
|
|
|
|
|
public String authKey;
|
|
|
|
|
public Request(String authKey) {
|
|
|
|
|
this.authKey = authKey;
|
|
|
|
|
}
|
|
|
|
|
public void setAuthKey(String key) {
|
|
|
|
|
authKey = key;
|
|
|
|
|
}
|
|
|
|
|
public String queryAPI(Language langEnum, String message) throws IOException, InterruptedException {
|
|
|
|
|
String encodedAuthKey = URLEncoder.encode(authKey, StandardCharsets.UTF_8);
|
|
|
|
|
String encodedMessage = URLEncoder.encode(message, StandardCharsets.UTF_8);
|
|
|
|
|
HttpClient client = HttpClient.newHttpClient();
|
|
|
|
|
HttpRequest request = HttpRequest.newBuilder().GET()
|
|
|
|
|
.header("Accept","*/*")
|
|
|
|
|
.header("Content-Type", "application/x-www-form-urlencoded")
|
|
|
|
|
.uri(URI.create("https://api-free.deepl.com/v2/translate?auth_key=" + encodedAuthKey + "&target_lang=" + langEnum.getApiString() + "&text=" + encodedMessage)).build();
|
|
|
|
|
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
|
|
|
|
|
HttpRequest request = HttpRequest.newBuilder().GET().header("Accept","*/*").header("Content-Type", "application/x-www-form-urlencoded").uri(URI.create("https://api-free.deepl.com/v2/translate?auth_key="+encodedAuthKey+"&target_lang="+langEnum.getApiString()+"&text="+encodedMessage)).build();
|
|
|
|
|
HttpResponse<String> response = client.send(request,HttpResponse.BodyHandlers.ofString());
|
|
|
|
|
return response.body();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@@ -127,4 +133,4 @@ instead of "new Translator(String authKey)". NOTE: This will work but just some
|
|
|
|
|
return this.apiString;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|