From b81c744a80592225af7437dee1b95acba8052d7c Mon Sep 17 00:00:00 2001 From: "dynomake (valeriy)" Date: Sat, 2 Sep 2023 19:57:01 +0300 Subject: [PATCH] small changes --- .github/DEPEND.md | 40 ----------------- .github/FUNDING.yml | 2 - .github/USAGE.md | 7 ++- LICENSE | 2 +- README.md | 44 +++++++++++++++++-- build.gradle | 2 +- settings.gradle | 2 +- .../me/dynomake/outline/OutlineWrapper.java | 27 ++++++++++++ .../dynomake/outline}/gson/GsonUtil.java | 2 +- .../implementation/RealOutlineWrapper.java} | 25 +++++------ .../implementation/model/Response.java | 4 +- .../dynomake/outline}/model/LimitModel.java | 4 +- .../dynomake/outline}/model/OutlineKey.java | 4 +- .../outline}/model/OutlineKeyList.java | 4 +- .../outline}/model/OutlineServer.java | 4 +- .../suuft/shadowsocks/ShadowsocksFactory.java | 13 ------ .../suuft/shadowsocks/ShadowsocksWrapper.java | 21 --------- .../java/me/dynomake/outline/LittleTest.java | 14 ++++++ .../net/suuft/shadowsocks/LittleTest.java | 15 ------- 19 files changed, 111 insertions(+), 125 deletions(-) delete mode 100644 .github/DEPEND.md delete mode 100644 .github/FUNDING.yml create mode 100644 src/main/java/me/dynomake/outline/OutlineWrapper.java rename src/main/java/{net/suuft/shadowsocks => me/dynomake/outline}/gson/GsonUtil.java (91%) rename src/main/java/{net/suuft/shadowsocks/implementation/RealShadowsocksWrapper.java => me/dynomake/outline/implementation/RealOutlineWrapper.java} (81%) rename src/main/java/{net/suuft/shadowsocks => me/dynomake/outline}/implementation/model/Response.java (72%) rename src/main/java/{net/suuft/shadowsocks => me/dynomake/outline}/model/LimitModel.java (72%) rename src/main/java/{net/suuft/shadowsocks => me/dynomake/outline}/model/OutlineKey.java (79%) rename src/main/java/{net/suuft/shadowsocks => me/dynomake/outline}/model/OutlineKeyList.java (75%) rename src/main/java/{net/suuft/shadowsocks => me/dynomake/outline}/model/OutlineServer.java (83%) delete mode 100644 src/main/java/net/suuft/shadowsocks/ShadowsocksFactory.java delete mode 100644 src/main/java/net/suuft/shadowsocks/ShadowsocksWrapper.java create mode 100644 src/test/java/me/dynomake/outline/LittleTest.java delete mode 100644 src/test/java/net/suuft/shadowsocks/LittleTest.java diff --git a/.github/DEPEND.md b/.github/DEPEND.md deleted file mode 100644 index 7849bdb..0000000 --- a/.github/DEPEND.md +++ /dev/null @@ -1,40 +0,0 @@ -## | `Shadowsocks (Outline VPN) api wrapper` -Here is how to add this sdk depending on your project. -### | `Gradle`: -If you use Gradle with Groovy, then here is an example of adding dependencies: -```groovy -repositories { - // other repositories - maven { - name = "clojars.org" - url = uri("https://repo.clojars.org") - } -} - -dependencies { - // other depend - implementation 'works.naifu:shadowsocks-java-wrapper:1.0.0' -} -``` - -### | `Maven`: - -Repository: - -```xml - - clojars.org - https://repo.clojars.org - -``` - -Depend: - -```xml - - - works.naifu - shadowsocks-java-wrapper - 1.0.0 - -``` \ No newline at end of file diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index 3e4ebce..0000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1,2 +0,0 @@ -github: suuft -custom: https://www.buymeacoffee.com/suuft diff --git a/.github/USAGE.md b/.github/USAGE.md index d4f2b7e..4efd749 100644 --- a/.github/USAGE.md +++ b/.github/USAGE.md @@ -1,16 +1,15 @@ ## | `Shadowsocks (Outline VPN) api wrapper` -*You can found full example-code in:* [LINK](https://github.com/suuft/shadowsocks-java-wrapper/blob/master/src/test/java/net/suuft/shadowsocks) +*You can found full example-code in:* [LINK](https://github.com/dynomake/outline-java-wrapper/blob/master/src/test/java/me/dynomake/outline) First initialize the instance of ShadowSocks Wrapper: ```java -ShadowsocksWrapper shadowsocks = ShadowsocksFactory - .createWrapper(API_URL); +OutlineWrapper outlineWrapper = OutlineWrapper.create(API_URL); ``` Cool! Now you can work with the outline api, for example, create a key, and output a link to the console: ```java -int newKeyId = shadowsocks.generateKey().id; +int newKeyId = outlineWrapper.generateKey().id; System.out.println("new key: " + newKeyId); ``` diff --git a/LICENSE b/LICENSE index 502682d..aa80b4a 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright 2023 suuft (aka: Juhani Layne, Valeriy Shushpanov) +Copyright 2023 Valeriy Shushpanov (dynomake) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: diff --git a/README.md b/README.md index 3e448ad..ea1f0d9 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,43 @@ ## | `Shadowsocks (Outline VPN) api wrapper` Library for working with ShadowSocks remote servers (Outline VPN API) in Java. -### | `Links`: -* [Add as Depend](https://github.com/suuft/shadowsocks-java-wrapper/blob/master/.github/DEPEND.md) -* [Usage Example](https://github.com/suuft/shadowsocks-java-wrapper/blob/master/.github/USAGE.md) \ No newline at end of file +* [Usage Example](https://github.com/dynomake/outline-java-wrapper/blob/master/.github/USAGE.md) + +## | `Add to project:`: +Here is how to add this library depending on your project. +### | `Gradle`: +Repository: +```groovy +maven { + name = "clojars.org" + url = uri("https://repo.clojars.org") +} +``` +Depend: +```groovy +implementation 'io.github.dynomake:outline-java-wrapper:1.0.0' +``` + +### | `Maven`: + +Repository: + +```xml + + clojars.org + https://repo.clojars.org + +``` + +Depend: + +```xml + + + io.github.dynomake + outline-java-wrapper + 1.0.0 + +``` + +### | `Donations`: +If you want to support my pet-projects and open-source projects, you always can send me crypro to my USDC wallet address on POLYGON network: `0xAE8840E02C52F4a289af083465d78C2329E6ca7B` \ No newline at end of file diff --git a/build.gradle b/build.gradle index c87f506..62e93f6 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ plugins { id 'maven-publish' } -group 'works.naifu' +group 'io.github.dynomake' version '1.0.0' sourceCompatibility = 1.8 diff --git a/settings.gradle b/settings.gradle index 52ee910..5390794 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,2 +1,2 @@ -rootProject.name = 'shadowsocks-java-wrapper' +rootProject.name = 'outline-java-wrapper' diff --git a/src/main/java/me/dynomake/outline/OutlineWrapper.java b/src/main/java/me/dynomake/outline/OutlineWrapper.java new file mode 100644 index 0000000..0a032d0 --- /dev/null +++ b/src/main/java/me/dynomake/outline/OutlineWrapper.java @@ -0,0 +1,27 @@ +package me.dynomake.outline; + +import lombok.NonNull; +import me.dynomake.outline.implementation.RealOutlineWrapper; +import me.dynomake.outline.model.OutlineKey; +import me.dynomake.outline.model.OutlineKeyList; +import me.dynomake.outline.model.OutlineServer; + +/** + * Shadowsocks Java Wrapper written by dynomake developer. + * Distributed by MIT License. + */ +public interface OutlineWrapper { + + static OutlineWrapper create(@NonNull String apiAddress) { + return new RealOutlineWrapper(apiAddress); + } + + OutlineKeyList getKeys(); + + OutlineKey generateKey(); + + boolean removeKey(int keyIdentifier); + + OutlineServer getServerInformation(); + +} diff --git a/src/main/java/net/suuft/shadowsocks/gson/GsonUtil.java b/src/main/java/me/dynomake/outline/gson/GsonUtil.java similarity index 91% rename from src/main/java/net/suuft/shadowsocks/gson/GsonUtil.java rename to src/main/java/me/dynomake/outline/gson/GsonUtil.java index 9d5581b..fa7645e 100644 --- a/src/main/java/net/suuft/shadowsocks/gson/GsonUtil.java +++ b/src/main/java/me/dynomake/outline/gson/GsonUtil.java @@ -1,4 +1,4 @@ -package net.suuft.shadowsocks.gson; +package me.dynomake.outline.gson; import com.google.gson.Gson; import lombok.Getter; diff --git a/src/main/java/net/suuft/shadowsocks/implementation/RealShadowsocksWrapper.java b/src/main/java/me/dynomake/outline/implementation/RealOutlineWrapper.java similarity index 81% rename from src/main/java/net/suuft/shadowsocks/implementation/RealShadowsocksWrapper.java rename to src/main/java/me/dynomake/outline/implementation/RealOutlineWrapper.java index e60f46f..95c4fc8 100644 --- a/src/main/java/net/suuft/shadowsocks/implementation/RealShadowsocksWrapper.java +++ b/src/main/java/me/dynomake/outline/implementation/RealOutlineWrapper.java @@ -1,12 +1,13 @@ -package net.suuft.shadowsocks.implementation; +package me.dynomake.outline.implementation; import lombok.AllArgsConstructor; import lombok.NonNull; -import net.suuft.shadowsocks.ShadowsocksWrapper; -import net.suuft.shadowsocks.implementation.model.Response; -import net.suuft.shadowsocks.model.OutlineKey; -import net.suuft.shadowsocks.model.OutlineKeyList; -import net.suuft.shadowsocks.model.OutlineServer; +import me.dynomake.outline.OutlineWrapper; +import me.dynomake.outline.gson.GsonUtil; +import me.dynomake.outline.model.OutlineKey; +import me.dynomake.outline.model.OutlineKeyList; +import me.dynomake.outline.model.OutlineServer; +import me.dynomake.outline.implementation.model.Response; import javax.net.ssl.*; import java.io.InputStream; @@ -18,25 +19,23 @@ import java.security.cert.X509Certificate; import java.util.Scanner; -import static net.suuft.shadowsocks.gson.GsonUtil.unparseJson; - /** - * Shadowsocks Java Wrapper written by suuft developer. + * Shadowsocks Java Wrapper written by dynomake developer. * Distributed by MIT License. */ @AllArgsConstructor -public class RealShadowsocksWrapper implements ShadowsocksWrapper { +public class RealOutlineWrapper implements OutlineWrapper { private String apiAddress; @Override public OutlineKeyList getKeys() { - return unparseJson(getResponse("/access-keys", "GET", null).responseString, OutlineKeyList.class); + return GsonUtil.unparseJson(getResponse("/access-keys", "GET", null).responseString, OutlineKeyList.class); } @Override public OutlineKey generateKey() { - return unparseJson(getResponse("/access-keys", "POST", null).responseString, OutlineKey.class); + return GsonUtil.unparseJson(getResponse("/access-keys", "POST", null).responseString, OutlineKey.class); } @Override @@ -47,7 +46,7 @@ public boolean removeKey(int keyIdentifier) { @Override public OutlineServer getServerInformation() { - return unparseJson(getResponse("/server", "GET", null).responseString, OutlineServer.class); + return GsonUtil.unparseJson(getResponse("/server", "GET", null).responseString, OutlineServer.class); } private Response getResponse(@NonNull String requestAddress, @NonNull String method, String writableJson) { diff --git a/src/main/java/net/suuft/shadowsocks/implementation/model/Response.java b/src/main/java/me/dynomake/outline/implementation/model/Response.java similarity index 72% rename from src/main/java/net/suuft/shadowsocks/implementation/model/Response.java rename to src/main/java/me/dynomake/outline/implementation/model/Response.java index 98c8b35..9a66882 100644 --- a/src/main/java/net/suuft/shadowsocks/implementation/model/Response.java +++ b/src/main/java/me/dynomake/outline/implementation/model/Response.java @@ -1,11 +1,11 @@ -package net.suuft.shadowsocks.implementation.model; +package me.dynomake.outline.implementation.model; import lombok.AccessLevel; import lombok.AllArgsConstructor; import lombok.experimental.FieldDefaults; /** - * Shadowsocks Java Wrapper written by suuft developer. + * Shadowsocks Java Wrapper written by dynomake developer. * Distributed by MIT License. */ @AllArgsConstructor diff --git a/src/main/java/net/suuft/shadowsocks/model/LimitModel.java b/src/main/java/me/dynomake/outline/model/LimitModel.java similarity index 72% rename from src/main/java/net/suuft/shadowsocks/model/LimitModel.java rename to src/main/java/me/dynomake/outline/model/LimitModel.java index 835d554..0534296 100644 --- a/src/main/java/net/suuft/shadowsocks/model/LimitModel.java +++ b/src/main/java/me/dynomake/outline/model/LimitModel.java @@ -1,11 +1,11 @@ -package net.suuft.shadowsocks.model; +package me.dynomake.outline.model; import lombok.AccessLevel; import lombok.AllArgsConstructor; import lombok.experimental.FieldDefaults; /** - * Shadowsocks Java Wrapper written by suuft developer. + * Shadowsocks Java Wrapper written by dynomake developer. * Distributed by MIT License. */ @AllArgsConstructor diff --git a/src/main/java/net/suuft/shadowsocks/model/OutlineKey.java b/src/main/java/me/dynomake/outline/model/OutlineKey.java similarity index 79% rename from src/main/java/net/suuft/shadowsocks/model/OutlineKey.java rename to src/main/java/me/dynomake/outline/model/OutlineKey.java index da6b42d..2d79ef5 100644 --- a/src/main/java/net/suuft/shadowsocks/model/OutlineKey.java +++ b/src/main/java/me/dynomake/outline/model/OutlineKey.java @@ -1,11 +1,11 @@ -package net.suuft.shadowsocks.model; +package me.dynomake.outline.model; import lombok.AccessLevel; import lombok.AllArgsConstructor; import lombok.experimental.FieldDefaults; /** - * Shadowsocks Java Wrapper written by suuft developer. + * Shadowsocks Java Wrapper written by dynomake developer. * Distributed by MIT License. */ @AllArgsConstructor diff --git a/src/main/java/net/suuft/shadowsocks/model/OutlineKeyList.java b/src/main/java/me/dynomake/outline/model/OutlineKeyList.java similarity index 75% rename from src/main/java/net/suuft/shadowsocks/model/OutlineKeyList.java rename to src/main/java/me/dynomake/outline/model/OutlineKeyList.java index e405c88..dc449d6 100644 --- a/src/main/java/net/suuft/shadowsocks/model/OutlineKeyList.java +++ b/src/main/java/me/dynomake/outline/model/OutlineKeyList.java @@ -1,4 +1,4 @@ -package net.suuft.shadowsocks.model; +package me.dynomake.outline.model; import lombok.AccessLevel; import lombok.AllArgsConstructor; @@ -7,7 +7,7 @@ import java.util.List; /** - * Shadowsocks Java Wrapper written by suuft developer. + * Shadowsocks Java Wrapper written by dynomake developer. * Distributed by MIT License. */ @AllArgsConstructor diff --git a/src/main/java/net/suuft/shadowsocks/model/OutlineServer.java b/src/main/java/me/dynomake/outline/model/OutlineServer.java similarity index 83% rename from src/main/java/net/suuft/shadowsocks/model/OutlineServer.java rename to src/main/java/me/dynomake/outline/model/OutlineServer.java index 1fcf7d6..7b0f8c4 100644 --- a/src/main/java/net/suuft/shadowsocks/model/OutlineServer.java +++ b/src/main/java/me/dynomake/outline/model/OutlineServer.java @@ -1,4 +1,4 @@ -package net.suuft.shadowsocks.model; +package me.dynomake.outline.model; import lombok.AccessLevel; import lombok.AllArgsConstructor; @@ -7,7 +7,7 @@ import java.util.UUID; /** - * Shadowsocks Java Wrapper written by suuft developer. + * Shadowsocks Java Wrapper written by dynomake developer. * Distributed by MIT License. */ @AllArgsConstructor diff --git a/src/main/java/net/suuft/shadowsocks/ShadowsocksFactory.java b/src/main/java/net/suuft/shadowsocks/ShadowsocksFactory.java deleted file mode 100644 index a24d314..0000000 --- a/src/main/java/net/suuft/shadowsocks/ShadowsocksFactory.java +++ /dev/null @@ -1,13 +0,0 @@ -package net.suuft.shadowsocks; - -import lombok.NonNull; -import lombok.experimental.UtilityClass; -import net.suuft.shadowsocks.implementation.RealShadowsocksWrapper; - -@UtilityClass -public class ShadowsocksFactory { - - public ShadowsocksWrapper createWrapper(@NonNull String apiAddress) { - return new RealShadowsocksWrapper(apiAddress); - } -} diff --git a/src/main/java/net/suuft/shadowsocks/ShadowsocksWrapper.java b/src/main/java/net/suuft/shadowsocks/ShadowsocksWrapper.java deleted file mode 100644 index a7ff91d..0000000 --- a/src/main/java/net/suuft/shadowsocks/ShadowsocksWrapper.java +++ /dev/null @@ -1,21 +0,0 @@ -package net.suuft.shadowsocks; - -import net.suuft.shadowsocks.model.OutlineKey; -import net.suuft.shadowsocks.model.OutlineKeyList; -import net.suuft.shadowsocks.model.OutlineServer; - -/** - * Shadowsocks Java Wrapper written by suuft developer. - * Distributed by MIT License. - */ -public interface ShadowsocksWrapper { - - OutlineKeyList getKeys(); - - OutlineKey generateKey(); - - boolean removeKey(int keyIdentifier); - - OutlineServer getServerInformation(); - -} diff --git a/src/test/java/me/dynomake/outline/LittleTest.java b/src/test/java/me/dynomake/outline/LittleTest.java new file mode 100644 index 0000000..89fb91c --- /dev/null +++ b/src/test/java/me/dynomake/outline/LittleTest.java @@ -0,0 +1,14 @@ +package me.dynomake.outline; + +public class LittleTest { + public static void main(String[] args) { + OutlineWrapper outlineWrapper = OutlineWrapper.create("https://127.0.0.1:50912/api"); + + System.out.println("server: " + outlineWrapper.getServerInformation().name); + System.out.println("in server keys: " + outlineWrapper.getKeys().accessKeys.size()); + int newKeyId = outlineWrapper.generateKey().id; + System.out.println("new key: " + newKeyId); + System.out.println("new key delete result: " + outlineWrapper.removeKey(newKeyId)); + + } +} diff --git a/src/test/java/net/suuft/shadowsocks/LittleTest.java b/src/test/java/net/suuft/shadowsocks/LittleTest.java deleted file mode 100644 index d99d60b..0000000 --- a/src/test/java/net/suuft/shadowsocks/LittleTest.java +++ /dev/null @@ -1,15 +0,0 @@ -package net.suuft.shadowsocks; - -public class LittleTest { - public static void main(String[] args) { - ShadowsocksWrapper shadowsocks = ShadowsocksFactory - .createWrapper("https://127.0.0.1:50912/api"); - - System.out.println("server: " + shadowsocks.getServerInformation().name); - System.out.println("in server keys: " + shadowsocks.getKeys().accessKeys.size()); - int newKeyId = shadowsocks.generateKey().id; - System.out.println("new key: " + newKeyId); - System.out.println("new key delete result: " + shadowsocks.removeKey(newKeyId)); - - } -}