Skip to content

Commit

Permalink
small changes
Browse files Browse the repository at this point in the history
  • Loading branch information
dynomake (valeriy) committed Sep 2, 2023
1 parent 2586a0e commit b81c744
Show file tree
Hide file tree
Showing 19 changed files with 111 additions and 125 deletions.
40 changes: 0 additions & 40 deletions .github/DEPEND.md

This file was deleted.

2 changes: 0 additions & 2 deletions .github/FUNDING.yml

This file was deleted.

7 changes: 3 additions & 4 deletions .github/USAGE.md
Original file line number Diff line number Diff line change
@@ -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);
```

Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -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:

Expand Down
44 changes: 41 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -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)
* [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
<repository>
<id>clojars.org</id>
<url>https://repo.clojars.org</url>
</repository>
```

Depend:

```xml

<dependency>
<groupId>io.github.dynomake</groupId>
<artifactId>outline-java-wrapper</artifactId>
<version>1.0.0</version>
</dependency>
```

### | `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`
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ plugins {
id 'maven-publish'
}

group 'works.naifu'
group 'io.github.dynomake'
version '1.0.0'

sourceCompatibility = 1.8
Expand Down
2 changes: 1 addition & 1 deletion settings.gradle
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
rootProject.name = 'shadowsocks-java-wrapper'
rootProject.name = 'outline-java-wrapper'

27 changes: 27 additions & 0 deletions src/main/java/me/dynomake/outline/OutlineWrapper.java
Original file line number Diff line number Diff line change
@@ -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();

}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package net.suuft.shadowsocks.gson;
package me.dynomake.outline.gson;

import com.google.gson.Gson;
import lombok.Getter;
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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
Expand All @@ -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) {
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package net.suuft.shadowsocks.model;
package me.dynomake.outline.model;

import lombok.AccessLevel;
import lombok.AllArgsConstructor;
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package net.suuft.shadowsocks.model;
package me.dynomake.outline.model;

import lombok.AccessLevel;
import lombok.AllArgsConstructor;
Expand All @@ -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
Expand Down
13 changes: 0 additions & 13 deletions src/main/java/net/suuft/shadowsocks/ShadowsocksFactory.java

This file was deleted.

21 changes: 0 additions & 21 deletions src/main/java/net/suuft/shadowsocks/ShadowsocksWrapper.java

This file was deleted.

14 changes: 14 additions & 0 deletions src/test/java/me/dynomake/outline/LittleTest.java
Original file line number Diff line number Diff line change
@@ -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));

}
}
15 changes: 0 additions & 15 deletions src/test/java/net/suuft/shadowsocks/LittleTest.java

This file was deleted.

0 comments on commit b81c744

Please sign in to comment.