Compare commits

..

No commits in common. "master" and "master" have entirely different histories.

9 changed files with 126 additions and 290 deletions

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DiscordProjectSettings">
<option name="show" value="ASK" />
<option name="description" value="" />
</component>
</project>

View File

@ -16,10 +16,5 @@
<option name="name" value="MavenRepo" />
<option name="url" value="https://repo.maven.apache.org/maven2/" />
</remote-repository>
<remote-repository>
<option name="id" value="maven" />
<option name="name" value="maven" />
<option name="url" value="https://git.nevets.tech/api/packages/5gi/maven" />
</remote-repository>
</component>
</project>

View File

@ -4,7 +4,7 @@
<component name="FrameworkDetectionExcludesConfiguration">
<file type="web" url="file://$PROJECT_DIR$" />
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="corretto-17" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="temurin-11" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

View File

@ -1,58 +1,3 @@
# DeepJ
[![Build Number](https://api.5servers.us/get/badges?uniqueid=deepj&get-type=version.badge)](https://ci.nevets.tech/view/Alec/job/DeepJ%20Improved/)
[![Build Status](https://ci.nevets.tech/view/Alec/job/DeepJ%20Improved/badge/icon)](https://ci.nevets.tech/view/Alec/job/DeepJ%20Improved/)
> Quick Setup
<details><summary>Gradle</summary>
<p>
Go to your build.gradle file and type:
```
repositories {
maven {
url "https://git.nevets.tech/api/packages/5gi/maven"
}
}
```
and
```
dependencies {
implementation group: 'com.the5gi.deepj', name: 'DeepJ', version: 'VERSION'
}
```
</p>
</details>
<details><summary>Maven</summary>
<p>
Go to your pom.xml file and type:
```
<repositories>
<repository>
<id>gitea</id>
<url>https://git.nevets.tech/api/packages/5gi/maven</url>
</repository>
</repositories>
```
and
```
<dependencies>
<dependency>
<groupId>com.the5gi.deepj</groupId>
<artifactId>DeepJ</artifactId>
<version>1.2.5</version>
</dependency>
</dependencies>
```
</p>
</details>
> Info
[To see more details, see the wiki](https://git.nevets.tech/5gi/DeepJ/wiki/Home#user-content-usage-setup).
________________________________________
DeepJ is a Java Wrapper for the DeepL Free Public API. This was originally made by Steven (Forked From) and Updated by 5gi
Java Wrapper for DeepL API

View File

@ -3,40 +3,38 @@ plugins {
id 'maven-publish'
id 'com.github.johnrengelman.shadow' version '5.2.0'
}
apply plugin: 'maven-publish'
group 'com.the5gi.deepj'
version '1.4.3'
group 'tech.nevets.deepj'
version '1.1.0'
sourceCompatibility = targetCompatibility = JavaVersion.VERSION_11
repositories {
mavenCentral()
maven {
url "https://git.nevets.tech/api/packages/5gi/maven"
}
}
dependencies {
implementation group: 'org.json', name: 'json', version: '20210307'
}
apply plugin: 'maven-publish'
publishing {
publications{
publish(MavenPublication) {
artifact("nexus/DeepJ-$version" + ".jar") {
artifact("target/DeepJ-$version" + "-all.jar") {
extension 'jar'
}
}
}
repositories {
maven {
name 'gitea'
url "https://git.nevets.tech/api/packages/5gi/maven/"
credentials.username System.getenv('fivegiUserGit')
credentials.password System.getenv('fivegiPassGit')
name 'nexus'
url "https://repo.nevets.tech/repository/maven-releases/"
credentials {
username System.getenv('nexusUser')
password System.getenv('nexusPass')
}
}
}
}
configurations.all {
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}

View File

@ -1,207 +0,0 @@
package com.the5gi.DeepJ;
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.IOException;
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
import java.util.Objects;
public class Translator {
//REQUEST INSIDE OF TRANSLATOR
protected Request request;
//GLOBAL AUTH KEY (GAK)
public static String globalAPIKey = "null";
//CONSTRUCTORS
public Translator() {
//GAK
if (globalAPIKey == null) {
System.out.println("\n[DeepJ] You are currently using the Global API Key Translator Constructor." +"\n[DeepJ] If you are trying to use global API keys, Call the method \"Translator.setGlobalAuthKey(String key)\" and then re-use this constructor." + "\n[DeepJ] If you want to define an different authkey every time do: \"new Translator(String authKey)\"\n");
} else {
request = new Request(globalAPIKey);
}
}
public Translator(boolean silent) {
//GAK (SILENCABLE)
if (globalAPIKey == null && !silent) {
System.out.println("\n[DeepJ] You are currently using the Global API Key Translator Constructor." +"\n[DeepJ] If you are trying to use global API keys, Call the method \"Translator.setGlobalAuthKey(String key)\" and then re-use this constructor." + "\n[DeepJ] If you want to define an different authkey every time do: \"new Translator(String authKey)\"\n");
} else {
request = new Request(globalAPIKey);
}
}
public Translator(String authKey) {
//NORMAL REQUEST (GAK Notice) (NO SILENCE)
if (!Objects.equals(globalAPIKey, "null")) {
System.out.println("[DeepJ] Looks like you have defined a global API key already! You can use if by just typing \"new Translator()\"" + "\n instead of \"new Translator(String authKey)\". NOTE: This will work but just some advice :)");
}
request = new Request(authKey);
}
public Translator(String apiKey, boolean silence) {
//NORMAL REQUEST (GAK SILENCEABLE)
if (!Objects.equals(globalAPIKey, "null") && !silence) {
System.out.println("[DeepJ] Looks like you have defined a global API key already! You can use if by just typing \"new Translator()\"" + "\n instead of \"new Translator(String authKey)\". NOTE: This will work but this is just some advice :)");
}
request = new Request(apiKey);
}
public static void setGlobalAPIKey(String key) {
//SET GLOBAL API KEY (STATIC)
globalAPIKey = key;
}
public static Translator newTranslator(String apiKey) {
//NORMAL REQUEST (NO GAK) (STATIC)
return new Translator(apiKey);
}
public static TranslatorBuilder newBuilder() {
return new TranslatorBuilder();
}
public static Translator newTranslator() {
//GAK (STATIC)
if (globalAPIKey == null) {
System.out.println("\n[DeepJ] You are currently using the Global API Key \".of()\" Translator." +
"\n[DeepJ] If you are trying to use global API keys, Call the method \"Translator.setGlobalAPIKey(String key)\" and then re-use this method." +
"\n[DeepJ] If you want to define an different authkey every time do: \"Translator.of(String apiKey)\"\n");
return new Translator("null");
} else {
return new Translator();
}
}
//END CONSTRUCTORS
//API KEYS
public void setAPIKey(String key) {
request.setAuthKey(key);
}
public String getAPIKey() {
return request.authKey;
}
public void close() {
request = new Request("null");
}
//END API KEYS
//TRANSLATE
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);
} catch (IOException | InterruptedException e) {
System.out.println(response);
e.printStackTrace();
}
String message = "Error Processing Request (Note: This could be due to the api updating or your api being taxed to often)";
JSONObject jsonObject = new JSONObject(response);
JSONArray jsonArray = jsonObject.getJSONArray("translations");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject1 = jsonArray.getJSONObject(i);
message = jsonObject1.getString("text");
}
return message;
}
//API REQUEST CLASS
protected static class Request {
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();
URI deepLURI = URI.create("https://api-free.deepl.com/v2/translate?auth_key="+encodedAuthKey+"&target_lang="+langEnum.getApiString()+"&text="+encodedMessage);
HttpRequest request = HttpRequest.newBuilder()
.GET()
.header("Accept","*/*")
.header("Content-Type", "application/x-www-form-urlencoded")
.uri(deepLURI)
.build();
HttpResponse<String> response = client.send(request,HttpResponse.BodyHandlers.ofString());
return response.body();
}
}
public static class TranslatorBuilder {
private boolean silent = false;
private String authKey = null;
private boolean GAK = false;
public Translator build() {
if (GAK) {
return new Translator(silent);
} else {
return new Translator(authKey, silent);
}
}
public TranslatorBuilder useGAK(boolean bool) {
this.GAK = bool;
return this;
}
public TranslatorBuilder setAuthKey(String authKey) {
this.authKey = authKey;
return this;
}
public TranslatorBuilder setSilent(boolean silent) {
this.silent = silent;
return this;
}
}
//DEEPL LANGUAGES
public enum Language {
Bulgarian("BG"),
Czech("CS"),
Danish("DA"),
German("DE"),
Greek("EL"),
EnglishUK("EN-GB"),
EnglishUS("EN-US"),
Spanish("ES"),
Estonian("ET"),
Finish("FI"),
French("FR"),
Hungarian("HU"),
Italian("IT"),
Japanese("JA"),
Lithuanian("LT"),
Latvian("LV"),
Dutch("NL"),
Polish("PL"),
PortugueseBrazil("PT-BR"),
PortuguesePortugal("PT-PT"),
Romanian("RO"),
Russian("RU"),
Slovak("SK"),
Slovenian("SL"),
Swedish("SV"),
Chinese("ZH");
//API STRING IDENTIFIER
private final String apiString;
Language(String apiString) {
this.apiString = apiString;
}
//API STRING IDENTIFIER RETURN
public String getApiString() {
return this.apiString;
}
}
}

View File

@ -0,0 +1,30 @@
package tech.nevets.deepj;
public enum Languages {
BG,
CS,
DA,
DE,
EL,
ENGB,
ENUS,
ES,
ET,
FI,
FR,
HU,
IT,
JA,
LT,
LV,
NL,
PL,
PTBR,
PTPT,
RO,
RU,
SK,
SL,
SV,
ZH
}

View File

@ -0,0 +1,46 @@
package tech.nevets.deepj;
import java.io.IOException;
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
public class Request {
public Request() {
}
public String get(String authKey, Enum<Languages> langEnum, String message) throws IOException, InterruptedException {
String encodedAuthKey = URLEncoder.encode(authKey, StandardCharsets.UTF_8);
String lang;
lang = langEnum.toString();
if (langEnum == Languages.ENUS) {
lang = "EN-US";
} else if (langEnum == Languages.ENGB) {
lang = "EN-GB";
} else if (langEnum == Languages.PTBR) {
lang = "PT-BR";
} else if (langEnum == Languages.PTPT) {
lang = "PT-PT";
}
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=" + lang + "&text=" + encodedMessage))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
String data = response.body();
return data;
}
}

View File

@ -0,0 +1,36 @@
package tech.nevets.deepj;
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.IOException;
public class Translator {
private final String authKey;
Request r = new Request();
public Translator(String authKey) {
this.authKey = authKey;
}
public String translate(Enum<Languages> lang, String sourceMessage) {
String response = "Error processing request";
try {
response = r.get(authKey, lang, sourceMessage);
} catch (IOException | InterruptedException e) {
System.out.println("Error processing request");
e.printStackTrace();
}
String message = "Error Processing Request";
JSONObject jo = new JSONObject(response);
JSONArray ja = jo.getJSONArray("translations");
for (int i = 0; i < ja.length(); i++) {
JSONObject joo = ja.getJSONObject(i);
message = joo.getString("text");
}
return message;
}
}