Proxy services inj

This commit is contained in:
gdlbo
2022-08-17 20:09:59 +03:00
parent cc95856e47
commit b6fcf0330d
57 changed files with 704 additions and 88 deletions
@@ -2,7 +2,7 @@ package ru.vtosters.lite.dnr;
import static ru.vtosters.lite.net.Request.makeRequest;
import static ru.vtosters.lite.utils.AccountManagerUtils.getUserToken;
import static ru.vtosters.lite.utils.ProxyUtils.getApi;
import static ru.vtosters.lite.proxy.ProxyUtils.getApi;
import android.util.Log;
@@ -5,8 +5,8 @@ import static android.widget.Toast.makeText;
import static ru.vtosters.lite.utils.AndroidUtils.getGlobalContext;
import static ru.vtosters.lite.utils.AndroidUtils.getIdentifier;
import static ru.vtosters.lite.utils.AndroidUtils.getString;
import static ru.vtosters.lite.utils.ProxyUtils.isApiProxyEnabled;
import static ru.vtosters.lite.utils.ProxyUtils.getApi;
import static ru.vtosters.lite.proxy.ProxyUtils.isApiProxyEnabled;
import static ru.vtosters.lite.proxy.ProxyUtils.getApi;
import android.annotation.SuppressLint;
import android.app.ProgressDialog;
@@ -8,7 +8,7 @@ import static ru.vtosters.lite.utils.AndroidUtils.sendToast;
import static ru.vtosters.lite.utils.Preferences.dev;
import static ru.vtosters.lite.utils.Preferences.getBoolValue;
import static ru.vtosters.lite.utils.Preferences.getPrefsFromFile;
import static ru.vtosters.lite.utils.ProxyUtils.getApi;
import static ru.vtosters.lite.proxy.ProxyUtils.getApi;
import org.json.JSONArray;
import org.json.JSONException;
@@ -3,8 +3,8 @@ package ru.vtosters.lite.hooks;
import static ru.vtosters.lite.utils.AndroidUtils.dp2px;
import static ru.vtosters.lite.utils.AndroidUtils.edit;
import static ru.vtosters.lite.utils.LifecycleUtils.restartApplication;
import static ru.vtosters.lite.utils.ProxyUtils.isRandomSocksEnabled;
import static ru.vtosters.lite.utils.ProxyUtils.isZaboronaEnabled;
import static ru.vtosters.lite.proxy.ProxyUtils.isRandomProxyEnabled;
import static ru.vtosters.lite.proxy.ProxyUtils.isZaboronaEnabled;
import static ru.vtosters.lite.utils.ThemesUtils.getAccentColor;
import static ru.vtosters.lite.utils.ThemesUtils.getAlertStyle;
import static ru.vtosters.lite.utils.ThemesUtils.getTextAttr;
@@ -40,15 +40,15 @@ public class ProxyHook {
RadioButton rgDefault = new RadioButton(new ContextThemeWrapper(ctx, com.vtosters.lite.R.style.Widget_AppCompat_CompoundButton_RadioButton));
RadioButton rgZaborona = new RadioButton(new ContextThemeWrapper(ctx, com.vtosters.lite.R.style.Widget_AppCompat_CompoundButton_RadioButton));
RadioButton rgRandomSocks = new RadioButton(new ContextThemeWrapper(ctx, com.vtosters.lite.R.style.Widget_AppCompat_CompoundButton_RadioButton));
RadioButton rgRandomProxy = new RadioButton(new ContextThemeWrapper(ctx, com.vtosters.lite.R.style.Widget_AppCompat_CompoundButton_RadioButton));
rg.addView(rgDefault);
rg.addView(rgZaborona);
rg.addView(rgRandomSocks);
rg.addView(rgRandomProxy);
rgDefault.setTextSize(TypedValue.COMPLEX_UNIT_PX, dp2px(14f));
rgZaborona.setTextSize(TypedValue.COMPLEX_UNIT_PX, dp2px(14f));
rgRandomSocks.setTextSize(TypedValue.COMPLEX_UNIT_PX, dp2px(14f));
rgRandomProxy.setTextSize(TypedValue.COMPLEX_UNIT_PX, dp2px(14f));
rg.setPadding(dp2px(18f), dp2px(12f), dp2px(18f), 0);
@@ -58,12 +58,12 @@ public class ProxyHook {
rgZaborona.setText(AndroidUtils.getString("proxy_enable") + " (Zaborona)");
rgZaborona.setTextColor(getTextAttr());
rgRandomSocks.setText(AndroidUtils.getString("proxy_enable") + " (RandomSocks)");
rgRandomSocks.setTextColor(getTextAttr());
rgRandomProxy.setText(AndroidUtils.getString("proxy_enable") + " (RandomProxy)");
rgRandomProxy.setTextColor(getTextAttr());
rgZaborona.setChecked(isZaboronaEnabled());
rgDefault.setChecked(!isZaboronaEnabled());
rgRandomSocks.setChecked(isRandomSocksEnabled());
rgRandomProxy.setChecked(isRandomProxyEnabled());
AlertDialog.Builder builder = new AlertDialog.Builder(ctx, getAlertStyle());
builder.setTitle(AndroidUtils.getString("vtlproxy"));
@@ -73,8 +73,8 @@ public class ProxyHook {
if (rgZaborona.isChecked()) {
edit().putString("proxy", "zaborona").commit();
restartApplication();
} else if (rgRandomSocks.isChecked()) {
edit().putString("proxy", "randomsocks").commit();
} else if (rgRandomProxy.isChecked()) {
edit().putString("proxy", "randomproxy").commit();
restartApplication();
} else {
edit().putString("proxy", "noproxy").commit();
@@ -0,0 +1,28 @@
package ru.vtosters.lite.proxy;
import android.util.Log;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import okhttp3.OkHttpClient;
import okhttp3.Request;
public class GithubList{
private static final OkHttpClient mClient = new OkHttpClient();
public static ArrayList<String> getProxy(String url, String proxyname) throws IOException{
Request link = new Request.a()
.b(url)
.a();
var response = mClient.a(link).execute().a().g();
if (!response.contains(":")) {
Log.d(proxyname, "No proxy found");
return null;
}
return new ArrayList<>(Arrays.asList(response.split("\n")));
}
}
@@ -1,4 +1,4 @@
package ru.vtosters.lite.utils;
package ru.vtosters.lite.proxy;
import static java.lang.System.clearProperty;
import static ru.vtosters.lite.utils.AndroidUtils.edit;
@@ -14,12 +14,11 @@ import android.util.Log;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import ru.vtosters.lite.proxy.CustomHttp;
import ru.vtosters.lite.proxy.CustomHttps;
import ru.vtosters.lite.proxy.CustomSocks;
import ru.vtosters.lite.proxy.Hookzof;
import ru.vtosters.lite.proxy.http.CustomHttp;
import ru.vtosters.lite.proxy.https.CustomHttps;
import ru.vtosters.lite.proxy.socks.CustomSocks;
import ru.vtosters.lite.proxy.RandomProxy;
import ru.vtosters.lite.proxy.Zaborona;
import ru.vtosters.lite.proxy.socks.Zaborona;
public class ProxyUtils {
public static String getApi() {
@@ -36,14 +35,18 @@ public class ProxyUtils {
return getPrefsValue("proxy").equals("zaborona");
}
public static Boolean isRandomSocksEnabled() {
return getPrefsValue("proxy").equals("randomsocks");
public static Boolean isRandomProxyEnabled() {
return getPrefsValue("proxy").equals("randomproxy");
}
public static Boolean isApiProxyEnabled() {
return getPrefsValue("proxy").equals("apiproxy");
}
public static Boolean isVikaProxyEnabled() {
return getPrefsValue("proxy").equals("vika");
}
public static void forceProxyApplying() {
Log.d("Proxy", "Setting proxy...");
try {
@@ -92,7 +95,7 @@ public class ProxyUtils {
case "zaborona":
Zaborona.loadProxy();
break;
case "randomsocks":
case "randomproxy":
RandomProxy.loadProxy();
break;
case "socks":
@@ -121,6 +124,5 @@ public class ProxyUtils {
clearProperty("http.proxyPassword");
clearProperty("socksProxyHost");
clearProperty("socksPortHost");
edit().putString("proxy", "noproxy").commit();
} // Reset all proxies
}
@@ -1,18 +1,37 @@
package ru.vtosters.lite.proxy;
import static ru.vtosters.lite.utils.ProxyUtils.forceProxyApplying;
import ru.vtosters.lite.proxy.socks.Hookzof;
import ru.vtosters.lite.proxy.socks.Jetkai;
import ru.vtosters.lite.proxy.socks.Roosterkid;
import ru.vtosters.lite.proxy.socks.TheSpeedX;
public class RandomProxy{
public static void loadProxy(){
var random = new java.util.Random();
var randomInt = random.nextInt(2);
switch (randomInt){ // TODO make more services
var randomInt = random.nextInt(7);
switch (randomInt){
case 0:
Hookzof.loadProxy();
break;
case 1:
System.setProperty("socksProxyHost", "socks.zaboronahelp.pp.ua");
System.setProperty("socksProxyPort", "1488");
forceProxyApplying();
TheSpeedX.loadProxy();
break;
case 2:
Jetkai.loadProxy();
break;
case 3:
Roosterkid.loadProxy();
break;
case 4:
ru.vtosters.lite.proxy.http.Jetkai.loadProxy();
break;
case 5:
ru.vtosters.lite.proxy.http.TheSpeedX.loadProxy();
break;
case 6:
ru.vtosters.lite.proxy.https.Jetkai.loadProxy();
break;
case 7:
ru.vtosters.lite.proxy.https.Roosterkid.loadProxy();
break;
}
}
@@ -1,6 +1,7 @@
package ru.vtosters.lite.proxy;
package ru.vtosters.lite.proxy.api;
import static ru.vtosters.lite.proxy.ProxyUtils.isVikaProxyEnabled;
import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue;
import static ru.vtosters.lite.utils.ProxyUtils.isApiProxyEnabled;
import static ru.vtosters.lite.proxy.ProxyUtils.isApiProxyEnabled;
import android.util.Log;
@@ -14,6 +15,12 @@ public class ApiProxy{
var proxyoauth = getPrefsValue("proxyoauth");
var proxystatic = getPrefsValue("proxystatic");
if (isVikaProxyEnabled()) {
proxyapi = VikaMobile.getApiHost();
proxyoauth = VikaMobile.getOauthHost();
proxystatic = VikaMobile.getStaticHost();
}
if (!isApiProxyEnabled() || link.isEmpty()) {
return link;
}
@@ -0,0 +1,20 @@
package ru.vtosters.lite.proxy.api;
import static ru.vtosters.lite.utils.Preferences.getBoolValue;
public class VikaMobile{
public static String getApiHost(){
return isAlternativeHost() ? "vk-api-proxy.vikamobile.ru" : "vk-api-proxy.symbian.live";
}
public static String getOauthHost(){
return isAlternativeHost() ? "vk-oauth-proxy.vikamobile.ru" : "vk-oauth-proxy.symbian.live";
}
public static String getStaticHost(){
return isAlternativeHost() ? "vk-static-proxy.vikamobile.ru" : "vk-static-proxy.symbian.live";
}
public static Boolean isAlternativeHost(){
return getBoolValue("altervika", false);
}
}
@@ -1,6 +1,6 @@
package ru.vtosters.lite.proxy;
package ru.vtosters.lite.proxy.http;
import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue;
import static ru.vtosters.lite.utils.ProxyUtils.forceProxyApplying;
import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying;
public class CustomHttp{
public static void loadProxy(){
@@ -0,0 +1,76 @@
package ru.vtosters.lite.proxy.http;
import static ru.vtosters.lite.utils.AndroidUtils.sendToast;
import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying;
import android.util.Log;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class Jetkai{
private static final OkHttpClient mClient = new OkHttpClient();
public static void loadProxy() {
Request link = new Request.a()
.b("https://raw.githubusercontent.com/jetkai/proxy-list/main/online-proxies/txt/proxies-http.txt")
.a();
mClient.a(link).a(new Callback() {
@Override
public void a(Call call, IOException e) {
Log.d("Jetkai", "Error while getting proxy: " + e);
loadError();
}
@Override
public void a(Call call, Response response){
try {
setData(response);
} catch (NullPointerException | IOException e) {
e.printStackTrace();
}
}
});
}
static void setData(Response response) throws IOException{
String resp = response.a().g();
if (!hasProxy(resp)) {
Log.d("Jetkai", "No proxy found");
return;
}
ArrayList<String> proxyList = new ArrayList<>(Arrays.asList(resp.split("\n")));
Log.d("Jetkai", proxyList.toString());
String proxy = proxyList.get(new java.util.Random().nextInt(proxyList.size()));
if (!hasProxy(proxy)) {
Log.d("Jetkai", "No proxy port found");
return;
}
Log.d("Jetkai", "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]);
System.setProperty("http.proxyHost", proxy.split(":")[0]);
System.setProperty("http.proxyPort", proxy.split(":")[1]);
forceProxyApplying();
}
static boolean hasProxy(String list) {
return list.contains(":"); // proxy format: ip:port
}
static void loadError() {
sendToast("Error while getting proxy Jetkai");
}
}
@@ -0,0 +1,76 @@
package ru.vtosters.lite.proxy.http;
import static ru.vtosters.lite.utils.AndroidUtils.sendToast;
import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying;
import android.util.Log;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class TheSpeedX{
private static final OkHttpClient mClient = new OkHttpClient();
public static void loadProxy() {
Request link = new Request.a()
.b("https://raw.githubusercontent.com/TheSpeedX/PROXY-List/master/http.txt")
.a();
mClient.a(link).a(new Callback() {
@Override
public void a(Call call, IOException e) {
Log.d("TheSpeedX", "Error while getting proxy: " + e);
loadError();
}
@Override
public void a(Call call, Response response){
try {
setData(response);
} catch (NullPointerException | IOException e) {
e.printStackTrace();
}
}
});
}
static void setData(Response response) throws IOException{
String resp = response.a().g();
if (!hasProxy(resp)) {
Log.d("TheSpeedX", "No proxy found");
return;
}
ArrayList<String> proxyList = new ArrayList<>(Arrays.asList(resp.split("\n")));
Log.d("TheSpeedX", proxyList.toString());
String proxy = proxyList.get(new java.util.Random().nextInt(proxyList.size()));
if (!hasProxy(proxy)) {
Log.d("TheSpeedX", "No proxy port found");
return;
}
Log.d("TheSpeedX", "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]);
System.setProperty("http.proxyHost", proxy.split(":")[0]);
System.setProperty("http.proxyPort", proxy.split(":")[1]);
forceProxyApplying();
}
static boolean hasProxy(String list) {
return list.contains(":"); // proxy format: ip:port
}
static void loadError() {
sendToast("Error while getting proxy TheSpeedX");
}
}
@@ -1,6 +1,6 @@
package ru.vtosters.lite.proxy;
package ru.vtosters.lite.proxy.https;
import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue;
import static ru.vtosters.lite.utils.ProxyUtils.forceProxyApplying;
import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying;
public class CustomHttps{
public static void loadProxy(){
@@ -0,0 +1,76 @@
package ru.vtosters.lite.proxy.https;
import static ru.vtosters.lite.utils.AndroidUtils.sendToast;
import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying;
import android.util.Log;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class Jetkai{
private static final OkHttpClient mClient = new OkHttpClient();
public static void loadProxy() {
Request link = new Request.a()
.b("https://raw.githubusercontent.com/jetkai/proxy-list/main/online-proxies/txt/proxies-https.txt")
.a();
mClient.a(link).a(new Callback() {
@Override
public void a(Call call, IOException e) {
Log.d("Jetkai", "Error while getting proxy: " + e);
loadError();
}
@Override
public void a(Call call, Response response){
try {
setData(response);
} catch (NullPointerException | IOException e) {
e.printStackTrace();
}
}
});
}
static void setData(Response response) throws IOException{
String resp = response.a().g();
if (!hasProxy(resp)) {
Log.d("Jetkai", "No proxy found");
return;
}
ArrayList<String> proxyList = new ArrayList<>(Arrays.asList(resp.split("\n")));
Log.d("Jetkai", proxyList.toString());
String proxy = proxyList.get(new java.util.Random().nextInt(proxyList.size()));
if (!hasProxy(proxy)) {
Log.d("Jetkai", "No proxy port found");
return;
}
Log.d("Jetkai", "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]);
System.setProperty("https.proxyHost", proxy.split(":")[0]);
System.setProperty("https.proxyPort", proxy.split(":")[1]);
forceProxyApplying();
}
static boolean hasProxy(String list) {
return list.contains(":"); // proxy format: ip:port
}
static void loadError() {
sendToast("Error while getting proxy Jetkai");
}
}
@@ -0,0 +1,77 @@
package ru.vtosters.lite.proxy.https;
import static ru.vtosters.lite.utils.AndroidUtils.sendToast;
import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying;
import android.util.Log;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class Roosterkid{
private static final OkHttpClient mClient = new OkHttpClient();
public static void loadProxy() {
Request link = new Request.a()
.b("https://raw.githubusercontent.com/roosterkid/openproxylist/main/HTTPS_RAW.txt")
.a();
mClient.a(link).a(new Callback() {
@Override
public void a(Call call, IOException e) {
Log.d("Roosterkid", "Error while getting proxy: " + e);
loadError();
}
@Override
public void a(Call call, Response response){
try {
setData(response);
} catch (NullPointerException | IOException e) {
e.printStackTrace();
}
}
});
}
static void setData(Response response) throws IOException{
String resp = response.a().g();
if (!hasProxy(resp)) {
Log.d("Roosterkid", "No proxy found");
return;
}
ArrayList<String> proxyList = new ArrayList<>(Arrays.asList(resp.split("\n")));
Log.d("Roosterkid", proxyList.toString());
String proxy = proxyList.get(new java.util.Random().nextInt(proxyList.size()));
if (!hasProxy(proxy)) {
Log.d("Roosterkid", "No proxy port found");
return;
}
Log.d("Roosterkid", "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]);
System.setProperty("https.proxyHost", proxy.split(":")[0]);
System.setProperty("https.proxyPort", proxy.split(":")[1]);
forceProxyApplying();
}
static boolean hasProxy(String list) {
return list.contains(":"); // proxy format: ip:port
}
static void loadError() {
sendToast("Error while getting proxy Roosterkid");
}
}
@@ -1,6 +1,6 @@
package ru.vtosters.lite.proxy;
package ru.vtosters.lite.proxy.socks;
import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue;
import static ru.vtosters.lite.utils.ProxyUtils.forceProxyApplying;
import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying;
public class CustomSocks{
public static void loadProxy(){
@@ -1,6 +1,6 @@
package ru.vtosters.lite.proxy;
package ru.vtosters.lite.proxy.socks;
import static ru.vtosters.lite.utils.AndroidUtils.sendToast;
import static ru.vtosters.lite.utils.ProxyUtils.forceProxyApplying;
import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying;
import android.util.Log;
@@ -0,0 +1,76 @@
package ru.vtosters.lite.proxy.socks;
import static ru.vtosters.lite.utils.AndroidUtils.sendToast;
import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying;
import android.util.Log;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class Jetkai{
private static final OkHttpClient mClient = new OkHttpClient();
public static void loadProxy() {
Request link = new Request.a()
.b("https://raw.githubusercontent.com/jetkai/proxy-list/main/online-proxies/txt/proxies-socks5.txt")
.a();
mClient.a(link).a(new Callback() {
@Override
public void a(Call call, IOException e) {
Log.d("Jetkai", "Error while getting proxy: " + e);
loadError();
}
@Override
public void a(Call call, Response response){
try {
setData(response);
} catch (NullPointerException | IOException e) {
e.printStackTrace();
}
}
});
}
static void setData(Response response) throws IOException{
String resp = response.a().g();
if (!hasProxy(resp)) {
Log.d("Jetkai", "No proxy found");
return;
}
ArrayList<String> proxyList = new ArrayList<>(Arrays.asList(resp.split("\n")));
Log.d("Jetkai", proxyList.toString());
String proxy = proxyList.get(new java.util.Random().nextInt(proxyList.size()));
if (!hasProxy(proxy)) {
Log.d("Jetkai", "No proxy port found");
return;
}
Log.d("Jetkai", "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]);
System.setProperty("socksProxyHost", proxy.split(":")[0]);
System.setProperty("socksProxyPort", proxy.split(":")[1]);
forceProxyApplying();
}
static boolean hasProxy(String list) {
return list.contains(":"); // proxy format: ip:port
}
static void loadError() {
sendToast("Error while getting proxy Jetkai");
}
}
@@ -0,0 +1,76 @@
package ru.vtosters.lite.proxy.socks;
import static ru.vtosters.lite.utils.AndroidUtils.sendToast;
import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying;
import android.util.Log;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class Roosterkid{
private static final OkHttpClient mClient = new OkHttpClient();
public static void loadProxy() {
Request link = new Request.a()
.b("https://raw.githubusercontent.com/roosterkid/openproxylist/main/SOCKS5_RAW.txt")
.a();
mClient.a(link).a(new Callback() {
@Override
public void a(Call call, IOException e) {
Log.d("Roosterkid", "Error while getting proxy: " + e);
loadError();
}
@Override
public void a(Call call, Response response){
try {
setData(response);
} catch (NullPointerException | IOException e) {
e.printStackTrace();
}
}
});
}
static void setData(Response response) throws IOException{
String resp = response.a().g();
if (!hasProxy(resp)) {
Log.d("Roosterkid", "No proxy found");
return;
}
ArrayList<String> proxyList = new ArrayList<>(Arrays.asList(resp.split("\n")));
Log.d("Roosterkid", proxyList.toString());
String proxy = proxyList.get(new java.util.Random().nextInt(proxyList.size()));
if (!hasProxy(proxy)) {
Log.d("Roosterkid", "No proxy port found");
return;
}
Log.d("Roosterkid", "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]);
System.setProperty("socksProxyHost", proxy.split(":")[0]);
System.setProperty("socksProxyPort", proxy.split(":")[1]);
forceProxyApplying();
}
static boolean hasProxy(String list) {
return list.contains(":"); // proxy format: ip:port
}
static void loadError() {
sendToast("Error while getting proxy Roosterkid");
}
}
@@ -0,0 +1,76 @@
package ru.vtosters.lite.proxy.socks;
import static ru.vtosters.lite.utils.AndroidUtils.sendToast;
import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying;
import android.util.Log;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class TheSpeedX{
private static final OkHttpClient mClient = new OkHttpClient();
public static void loadProxy() {
Request link = new Request.a()
.b("https://raw.githubusercontent.com/TheSpeedX/PROXY-List/master/socks5.txt")
.a();
mClient.a(link).a(new Callback() {
@Override
public void a(Call call, IOException e) {
Log.d("TheSpeedX", "Error while getting proxy: " + e);
loadError();
}
@Override
public void a(Call call, Response response){
try {
setData(response);
} catch (NullPointerException | IOException e) {
e.printStackTrace();
}
}
});
}
static void setData(Response response) throws IOException{
String resp = response.a().g();
if (!hasProxy(resp)) {
Log.d("TheSpeedX", "No proxy found");
return;
}
ArrayList<String> proxyList = new ArrayList<>(Arrays.asList(resp.split("\n")));
Log.d("TheSpeedX", proxyList.toString());
String proxy = proxyList.get(new java.util.Random().nextInt(proxyList.size()));
if (!hasProxy(proxy)) {
Log.d("TheSpeedX", "No proxy port found");
return;
}
Log.d("TheSpeedX", "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]);
System.setProperty("socksProxyHost", proxy.split(":")[0]);
System.setProperty("socksProxyPort", proxy.split(":")[1]);
forceProxyApplying();
}
static boolean hasProxy(String list) {
return list.contains(":"); // proxy format: ip:port
}
static void loadError() {
sendToast("Error while getting proxy TheSpeedX");
}
}
@@ -1,5 +1,5 @@
package ru.vtosters.lite.proxy;
import static ru.vtosters.lite.utils.ProxyUtils.forceProxyApplying;
package ru.vtosters.lite.proxy.socks;
import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying;
public class Zaborona{
public static void loadProxy(){
@@ -8,7 +8,7 @@ import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue;
import static ru.vtosters.lite.utils.CacheUtils.getInstance;
import static ru.vtosters.lite.utils.DeletedMessagesHandler.reloadMessagesList;
import static ru.vtosters.lite.utils.NewsFeedFiltersUtils.setupFilters;
import static ru.vtosters.lite.utils.ProxyUtils.setProxy;
import static ru.vtosters.lite.proxy.ProxyUtils.setProxy;
import static ru.vtosters.lite.utils.SignatureChecker.validateAppSignature;
import static ru.vtosters.lite.utils.ThemesUtils.isDarkTheme;
import static ru.vtosters.lite.utils.VTVerifications.isPrometheus;
@@ -5,7 +5,7 @@ import static ru.vtosters.lite.utils.About.getBuildNumber;
import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue;
import static ru.vtosters.lite.utils.Preferences.dev;
import static ru.vtosters.lite.utils.Preferences.vksans;
import static ru.vtosters.lite.utils.ProxyUtils.isApiProxyEnabled;
import static ru.vtosters.lite.proxy.ProxyUtils.isApiProxyEnabled;
import static ru.vtosters.lite.utils.ThemesUtils.isDarkTheme;
public class SSFSUtils {