Compare commits

...

74 Commits

Author SHA1 Message Date
5gi ☑
7af2b6e7cb I fixed some spelling mistakes. Otherwise, nothing changed. 2023-03-26 12:04:12 -04:00
5gi
07c30ccf8e I'm Bored so I made a Builder #6 2023-03-23 10:21:28 -04:00
5gi
3af5d6da63 I'm Bored so I made a Builder #5 2023-03-23 10:19:24 -04:00
5gi
c135da4115 I'm Bored so I made a Builder #4 2023-03-23 10:16:07 -04:00
5gi
af64960abf I'm Bored so I made a Builder # 3 2023-03-23 10:13:51 -04:00
5gi
f058a27be7 I'm Bored so I made a Builder #2 2023-03-23 10:11:44 -04:00
5gi
c0f3cb5e95 I'm Bored so I made a Builder 2023-03-23 10:11:04 -04:00
5gi
9781caea90 Update 'src/main/java/com/the5gi/DeepJ/Translator.java' 2022-12-08 12:44:10 -05:00
5gi
524a19dada Update 'src/main/java/com/the5gi/DeepJ/Translator.java' 2022-12-08 12:43:26 -05:00
5gi
4cceed428e Update 'build.gradle' 2022-12-08 12:42:09 -05:00
5gi
dbf2af3c64 Update 'src/main/java/com/the5gi/DeepJ/Translator.java' 2022-12-08 12:40:56 -05:00
5gi
6f754483a5 Update 'src/main/java/com/the5gi/DeepJ/Translator.java' 2022-12-07 12:37:00 -05:00
5gi
fcb20efbd8 Update 'src/main/java/com/the5gi/DeepJ/Translator.java' 2022-12-07 12:36:11 -05:00
5gi
c1438bff2a Update 'build.gradle' 2022-12-07 11:18:54 -05:00
5gi
b12e497afa Update 'src/main/java/com/the5gi/DeepJ/Translator.java' 2022-12-07 11:17:24 -05:00
5gi
d8606a0587 Update 'README.md' 2022-11-18 20:07:21 -05:00
5gi
0aa351bebd Update 'README.md' 2022-11-18 18:08:17 -05:00
5gi
0f1fab61f8 Update 'README.md' 2022-11-18 18:04:49 -05:00
5gi
deae28702d fix version jenkins mb 2022-11-18 17:01:59 -05:00
5gi
92bc6ae4c7 trying api push hold on 2022-11-18 16:50:31 -05:00
5gi
bb1aaf7cee update version 2022-11-18 12:42:17 -05:00
5gi
e1017d8311 changed "Translaotr.of()" to "Translator.newTranslator()" 2022-11-18 12:41:11 -05:00
5gi
aab9802e56 Changed version. 2022-11-17 11:02:52 -05:00
5gi
15368ab222 Added ".close()" to Translator
closes Translator and Request
2022-11-17 11:01:24 -05:00
5gi
fab65fde3a Update 'build.gradle' 2022-11-17 07:20:22 -05:00
5gi
b3b37d0ac5 AHHHHHHHHHHHHHHHHHHHHHHHHHHH 2022-11-16 11:14:39 -05:00
5gi
ac4ce2192f fixed supposed to be comments because git sdtun 2022-11-16 11:12:21 -05:00
5gi
3345009f64 stupid comments removed 2022-11-16 11:09:57 -05:00
5gi
b72a411859 removed stupid comments 2022-11-16 11:09:15 -05:00
5gi
8a599d51f7 Update 'build.gradle' 2022-11-16 10:50:33 -05:00
5gi
6e31919236 Update 'build.gradle' 2022-11-16 10:49:41 -05:00
5gi
cf6d1e7128 fixed return and .setAuthKey again 2022-11-16 10:49:17 -05:00
5gi
dba816a33e prev commit 2022-11-16 09:45:46 -05:00
5gi
a31d12bbb5 added ".of()" to translator
added ".of()" to Translator.java so you don't have to type "new" so many times
added null protection to request
added ability to set authKey to requests
2022-11-16 09:45:20 -05:00
5gi
29442d1f9a Update 'build.gradle' 2022-11-16 07:41:24 -05:00
5gi
117b59d5e7 update readme i hate jenkins auto build sometimes 2022-11-15 10:59:39 -05:00
5gi
08b7665518 Update 'README.md' 2022-11-15 10:58:17 -05:00
5gi
7d5efc7b00 testing jenkins 2022-11-15 10:29:40 -05:00
5gi
5d78663c87 added getAPIKey() to Translator.java 2022-11-15 10:19:44 -05:00
5gi
f47c69715c added getAPIKey() to Translator.java 2022-11-15 10:19:10 -05:00
5gi
732fc3882d Added ability to change authKey with a void 2022-11-15 10:16:18 -05:00
5gi
0e35a2f4c8 Update 'src/main/java/com/the5gi/DeepJ/Translator.java' 2022-11-15 10:15:34 -05:00
5gi
c00f4b1a2d Update 'README.md' 2022-11-10 11:13:56 -05:00
5gi
4c84fd5a98 update version 2022-11-09 15:11:50 -05:00
5gi
cc5a1b9df6 Update 'build.gradle' 2022-11-09 10:56:44 -05:00
5gi
787664bb38 Updated Main Class to remove unnecessary space 2022-11-09 10:55:16 -05:00
5gi
d1419d48e0 add 2022-11-09 07:00:05 -05:00
5gi
27cd9ec212 comment add 2022-11-08 19:02:59 -05:00
5gi
b96202a905 change aghain 2022-11-08 19:01:00 -05:00
5gi
96c950ccfe localchange 2022-11-08 18:59:47 -05:00
5gi
9677f95d60 a #6 2022-11-08 18:56:51 -05:00
5gi
78c8146fed a #5 2022-11-08 18:55:32 -05:00
5gi
13155c9112 a #4 2022-11-08 18:52:49 -05:00
5gi
ff8b5ea1aa a #3 2022-11-08 18:50:55 -05:00
5gi
dd495dc277 a #2 2022-11-08 18:42:40 -05:00
5gi
31268450e7 a 2022-11-08 18:37:33 -05:00
5gi
04bfc0fe22 add s.out.prtln comments 2022-11-08 11:09:02 -05:00
5gi
0b634901ff fix version 2022-11-04 17:51:30 -04:00
5gi
1b2f247a62 fixed code from last commit 2022-11-04 17:50:04 -04:00
5gi
e0f590b2bf fixed code from last commit 2022-11-04 15:31:37 -04:00
5gi
e25bff8f07 Update Text 2022-11-04 12:45:52 -04:00
5gi
5abf319465 Update 'src/main/java/tech/nevets/deepjTranslator.java' 2022-11-04 12:03:06 -04:00
5gi
b9fb097836 Update 'src/main/java/tech/nevets/deepj/Translator.java' 2022-11-04 11:19:09 -04:00
5gi
8c39329d6b Update 'README.md' 2022-11-04 10:53:32 -04:00
5gi
416332936a Update 'README.md' 2022-11-04 09:26:36 -04:00
5gi
efe7a737b2 Update 'README.md' 2022-11-04 08:34:06 -04:00
5gi
7958399f0c Fixed repetitive unreadable enum key.
Made code less if statementy
2022-11-03 19:01:38 -04:00
5gi
2c276acaf9 Merged Classes
Fixed repetitive auth key usage
2022-11-03 17:46:40 -04:00
5gi
50d01058aa Merged Classes
Fixed repetitive auth key usage
2022-11-03 17:31:18 -04:00
5gi
f5b9bc787b Update 'src/main/java/tech/nevets/deepj/Translator.java' 2022-11-02 14:05:34 -04:00
5gi
cf2e34e0d0 Delete 'src/main/java/tech/nevets/deepj/Languages.java' 2022-11-02 14:01:28 -04:00
5gi
8379a510c8 Update 'src/main/java/tech/nevets/deepj/Translator.java' 2022-11-02 12:55:50 -04:00
5gi
61724ad1bc Update 'src/main/java/tech/nevets/deepj/Translator.java' 2022-11-02 12:54:16 -04:00
5gi
ecae124cef Delete 'src/main/java/tech/nevets/deepj/Request.java' 2022-11-02 12:53:22 -04:00
9 changed files with 290 additions and 126 deletions

7
.idea/discord.xml Normal file
View File

@ -0,0 +1,7 @@
<?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,5 +16,10 @@
<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" default="true" project-jdk-name="temurin-11" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="corretto-17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

View File

@ -1,3 +1,58 @@
# 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>
Java Wrapper for DeepL API
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

View File

@ -3,38 +3,40 @@ plugins {
id 'maven-publish'
id 'com.github.johnrengelman.shadow' version '5.2.0'
}
group 'tech.nevets.deepj'
version '1.1.0'
apply plugin: 'maven-publish'
group 'com.the5gi.deepj'
version '1.4.3'
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("target/DeepJ-$version" + "-all.jar") {
artifact("nexus/DeepJ-$version" + ".jar") {
extension 'jar'
}
}
}
repositories {
maven {
name 'nexus'
url "https://repo.nevets.tech/repository/maven-releases/"
credentials {
username System.getenv('nexusUser')
password System.getenv('nexusPass')
}
name 'gitea'
url "https://git.nevets.tech/api/packages/5gi/maven/"
credentials.username System.getenv('fivegiUserGit')
credentials.password System.getenv('fivegiPassGit')
}
}
}
configurations.all {
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}

View File

@ -0,0 +1,207 @@
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

@ -1,30 +0,0 @@
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

@ -1,46 +0,0 @@
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

@ -1,36 +0,0 @@
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;
}
}