diff --git a/app/src/main/java/ru/vtosters/lite/dnr/DNRInjector.java b/app/src/main/java/ru/vtosters/lite/dnr/DNRInjector.java index e4c66d541..1253c2933 100644 --- a/app/src/main/java/ru/vtosters/lite/dnr/DNRInjector.java +++ b/app/src/main/java/ru/vtosters/lite/dnr/DNRInjector.java @@ -12,6 +12,7 @@ import static ru.vtosters.lite.dnr.DNRModule.hookDNT; import static ru.vtosters.lite.dnr.DNRModule.isDnrEnabledFor; import static ru.vtosters.lite.dnr.DNRModule.isDntEnabledFor; import static ru.vtosters.lite.encryption.EncryptProvider.decryptMessage; +import static ru.vtosters.lite.proxy.ProxyUtils.getApi; import static ru.vtosters.lite.utils.AccountManagerUtils.getUserToken; import static ru.vtosters.lite.utils.AndroidUtils.getIdentifier; import static ru.vtosters.lite.utils.AndroidUtils.sendToast; @@ -281,7 +282,7 @@ public class DNRInjector { Thread thread = new Thread(() -> { try { var request = new Request.a() - .b("https://api.vk.ru/method/" + (needToBePinned ? "messages.pinConversation" : "messages.unpinConversation") + "?peer_id=" + dialogid + "&access_token=" + getUserToken() + "&v=5.119") + .b("https://" + getApi() + "/method/" + (needToBePinned ? "messages.pinConversation" : "messages.unpinConversation") + "?peer_id=" + dialogid + "&access_token=" + getUserToken() + "&v=5.119") .a(Headers.a("User-Agent", Network.l.c().a(), "Content-Type", "application/x-www-form-urlencoded; charset=utf-8")) .a(); diff --git a/app/src/main/java/ru/vtosters/lite/downloaders/VideoDownloader.java b/app/src/main/java/ru/vtosters/lite/downloaders/VideoDownloader.java index c2c1a0ba6..d5a001773 100644 --- a/app/src/main/java/ru/vtosters/lite/downloaders/VideoDownloader.java +++ b/app/src/main/java/ru/vtosters/lite/downloaders/VideoDownloader.java @@ -1,6 +1,7 @@ package ru.vtosters.lite.downloaders; import static ru.vtosters.lite.net.Request.makeRequest; +import static ru.vtosters.lite.proxy.ProxyUtils.getApi; import static ru.vtosters.lite.utils.AccountManagerUtils.getUserToken; import static ru.vtosters.lite.utils.AndroidUtils.getGlobalContext; import static ru.vtosters.lite.utils.AndroidUtils.getIdentifier; @@ -127,12 +128,12 @@ public class VideoDownloader { } public static void parseVideoLink(String url, Context ctx) { - if (url.contains("vk.ru/story")) { + if (url.contains("vk.ru/story") || url.contains("vk.com/story")) { ToastUtils.a(AndroidUtils.getString("video_dl_stories_not_supported")); return; } - if (!url.contains("vk.ru/video")) { + if (!url.contains("vk.ru/video") || !url.contains("vk.com/video")) { ToastUtils.a(AndroidUtils.getString("video_dl_wrong_link")); return; } @@ -144,7 +145,7 @@ public class VideoDownloader { progressDialog.setMessage(AndroidUtils.getString("video_dl_progress")); progressDialog.show(); - makeRequest("https://" + "api.vk.ru" + "/method/video.get?owner_id=" + ownerId + "&videos=" + videoId + "&v=5.99&access_token=" + getUserToken(), + makeRequest("https://" + getApi() + "/method/video.get?owner_id=" + ownerId + "&videos=" + videoId + "&v=5.99&access_token=" + getUserToken(), response -> { progressDialog.cancel(); diff --git a/app/src/main/java/ru/vtosters/lite/hooks/JsonInjectors.java b/app/src/main/java/ru/vtosters/lite/hooks/JsonInjectors.java index abd0c7596..61af576d2 100644 --- a/app/src/main/java/ru/vtosters/lite/hooks/JsonInjectors.java +++ b/app/src/main/java/ru/vtosters/lite/hooks/JsonInjectors.java @@ -4,6 +4,8 @@ import static ru.vtosters.lite.foaf.FoafBase.getLastSeen; import static ru.vtosters.lite.foaf.FoafBase.getBypassedOnlineInfo; import static ru.vtosters.lite.hooks.OnlineFormatterHook.onlineHookProfiles; import static ru.vtosters.lite.hooks.DateHook.getLocale; +import static ru.vtosters.lite.proxy.ProxyUtils.getApi; +import static ru.vtosters.lite.proxy.ProxyUtils.getStatic; import static ru.vtosters.lite.utils.AndroidUtils.getDefaultPrefs; import static ru.vtosters.lite.utils.Base64Utils.decode; import static ru.vtosters.lite.utils.NewsFeedFiltersUtils.checkCaption; @@ -118,7 +120,7 @@ public class JsonInjectors { public static JSONObject vktesters(int id) throws JSONException { var title = AndroidUtils.getString("tester_profile"); var text_color = "2D81E0"; - var link = "https://static.vk.ru/bugs?lang=" + LangUtils.a() + "#/reporter" + id; + var link = "https://" + getStatic() + "/bugs?lang=" + LangUtils.a() + "#/reporter" + id; var json = new JSONObject(); var icons = new JSONArray(); @@ -629,7 +631,7 @@ public class JsonInjectors { if (section == null) return null; var request = new Request.a() - .b("https://api.vk.ru/method/catalog.getAudio" + .b("https://" + getApi() + "/method/catalog.getAudio" + "?v=5.119" + "&https=1" + "&need_blocks=1" @@ -653,7 +655,7 @@ public class JsonInjectors { public static JSONObject fetchCatalogPodcast() { var request = new Request.a() - .b("https://api.vk.ru/method/catalog.getPodcasts" + .b("https://" + getApi() + "/method/catalog.getPodcasts" + "?v=5.119" + "&https=1" + "&need_blocks=1" diff --git a/app/src/main/java/ru/vtosters/lite/music/MP3Downloader.java b/app/src/main/java/ru/vtosters/lite/music/MP3Downloader.java index 2d208c531..9eb84fbc7 100644 --- a/app/src/main/java/ru/vtosters/lite/music/MP3Downloader.java +++ b/app/src/main/java/ru/vtosters/lite/music/MP3Downloader.java @@ -1,5 +1,6 @@ package ru.vtosters.lite.music; +import static ru.vtosters.lite.proxy.ProxyUtils.getApi; import static ru.vtosters.lite.utils.Preferences.getMusicDir; import android.app.DownloadManager; @@ -28,7 +29,7 @@ import ru.vtosters.lite.utils.AndroidUtils; public class MP3Downloader { - private static final String URL_FORMAT = "https://api.vk.ru/method/audio.getById?v=5.131&access_token=%s&audios=%s©right=https://vtosters.app/"; + private static final String URL_FORMAT = "https://" + getApi() + "/method/audio.getById?v=5.131&access_token=%s&audios=%s©right=https://vtosters.app/"; private static final OkHttpClient client = new OkHttpClient(); public static void execute(MusicTrack track) { diff --git a/app/src/main/java/ru/vtosters/lite/proxy/ProxyUtils.java b/app/src/main/java/ru/vtosters/lite/proxy/ProxyUtils.java index bc435d545..663d93998 100644 --- a/app/src/main/java/ru/vtosters/lite/proxy/ProxyUtils.java +++ b/app/src/main/java/ru/vtosters/lite/proxy/ProxyUtils.java @@ -30,6 +30,26 @@ public class ProxyUtils{ return "api.vk.ru"; } + public static String getOauth(){ + var oauth = getPrefsValue("proxyoauth"); + + if (isApiProxyEnabled() & !oauth.isEmpty()) { + return oauth; + } + + return "oauth.vk.ru"; + } + + public static String getStatic(){ + var oauth = getPrefsValue("proxystatic"); + + if (isApiProxyEnabled() & !oauth.isEmpty()) { + return oauth; + } + + return "static.vk.ru"; + } + public static Boolean isZaboronaEnabled(){ return getPrefsValue("proxy").equals("zaborona"); } diff --git a/app/src/main/java/ru/vtosters/lite/ui/activities/VKAdminTokenActivity.java b/app/src/main/java/ru/vtosters/lite/ui/activities/VKAdminTokenActivity.java index 15fb9e2b1..75dd18c34 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/activities/VKAdminTokenActivity.java +++ b/app/src/main/java/ru/vtosters/lite/ui/activities/VKAdminTokenActivity.java @@ -1,5 +1,7 @@ package ru.vtosters.lite.ui.activities; +import static ru.vtosters.lite.proxy.ProxyUtils.getOauth; + import android.app.Activity; import android.content.Intent; import android.net.Uri; @@ -20,7 +22,7 @@ import ru.vtosters.lite.utils.LayoutUtils; public class VKAdminTokenActivity extends AppCompatActivity { - private static final String URL = "https://oauth.vk.ru/authorize?client_id=6121396&scope=1073737727&redirect_uri=https://oauth.vk.ru/blank.html&display=page&response_type=token&revoke=1"; + private static final String URL = "https://" + getOauth() +"/authorize?client_id=6121396&scope=1073737727&redirect_uri=https://oauth.vk.ru/blank.html&display=page&response_type=token&revoke=1"; @Override protected void onCreate(@Nullable Bundle bundle) { @@ -37,7 +39,7 @@ public class VKAdminTokenActivity extends AppCompatActivity { @Override public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { var url = request.getUrl().toString(); - if (url.startsWith("https://oauth.vk.ru/auth_redirect?")) { + if (url.startsWith("https://" + getOauth() + "/auth_redirect?")) { var redirectUri = Uri.parse(URLDecoder.decode(url)); var authorizeUrl = redirectUri.getQueryParameter("authorize_url"); var accessToken = authorizeUrl.substring(authorizeUrl.indexOf("=") + 1, authorizeUrl.indexOf("&")); diff --git a/app/src/main/java/ru/vtosters/lite/ui/dialogs/VKIDProtection.java b/app/src/main/java/ru/vtosters/lite/ui/dialogs/VKIDProtection.java index 6540b3df7..67072ceb8 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/dialogs/VKIDProtection.java +++ b/app/src/main/java/ru/vtosters/lite/ui/dialogs/VKIDProtection.java @@ -1,5 +1,7 @@ package ru.vtosters.lite.ui.dialogs; +import static ru.vtosters.lite.proxy.ProxyUtils.getApi; +import static ru.vtosters.lite.proxy.ProxyUtils.isApiProxyEnabled; import static ru.vtosters.lite.utils.AndroidUtils.edit; import static ru.vtosters.lite.utils.AndroidUtils.getString; import static ru.vtosters.lite.utils.Preferences.getBoolValue; @@ -23,7 +25,7 @@ public class VKIDProtection { // android.content.DialogInterface.OnClickListener builder.setNeutralButton(getString("vkiddisable"), (dialogInterface, i) -> { edit().putBoolean("showAlertVkId", false).apply(); - VKUIwrapper.setLink("https://id.vk.ru/account"); + VKUIwrapper.setLink((isApiProxyEnabled() ? "https://id.vk.ru/account" : "https://" + getApi() + "/_/id.vk.ru/account")); Intent a2 = new Navigator(VKUIwrapper.class).b(activity); a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); activity.startActivity(a2); diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/MediaFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/MediaFragment.java index 8e8b32fdf..d00485573 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/MediaFragment.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/MediaFragment.java @@ -1,6 +1,7 @@ package ru.vtosters.lite.ui.fragments; import static ru.vtosters.lite.music.Scrobbler.isLoggedIn; +import static ru.vtosters.lite.proxy.ProxyUtils.getApi; import static ru.vtosters.lite.utils.AccountManagerUtils.getUserToken; import static ru.vtosters.lite.utils.AndroidUtils.dp2px; import static ru.vtosters.lite.utils.AndroidUtils.edit; @@ -244,7 +245,7 @@ public class MediaFragment extends MaterialPreferenceToolbarFragment { Thread thread = new Thread(() -> { try { var request = new Request.a() - .b("https://api.vk.ru/method/" + "video.clearViewingHistoryRecords" + "?https=1" + "&access_token=" + getUserToken() + "&v=5.187") + .b("https://" + getApi() + "/method/" + "video.clearViewingHistoryRecords" + "?https=1" + "&access_token=" + getUserToken() + "&v=5.187") .a(Headers.a("User-Agent", Network.l.c().a(), "Content-Type", "application/x-www-form-urlencoded; charset=utf-8")) .a();