more gzip support

This commit is contained in:
gdlbo
2024-03-02 23:33:18 +03:00
parent 07f8542f56
commit 7dd9e5ff3a
3 changed files with 18 additions and 7 deletions
@@ -23,6 +23,7 @@ import org.json.JSONException;
import org.json.JSONObject;
import ru.vtosters.lite.utils.AndroidUtils;
import ru.vtosters.lite.utils.LifecycleUtils;
import ru.vtosters.sponsorpost.utils.GzipDecompressor;
import java.io.File;
import java.io.FileOutputStream;
@@ -168,6 +169,7 @@ public class VideoDownloader {
var req = new Request.a()
.b("https://" + getApi() + "/method/stories.getById?stories=" + storyId + "&v=5.99&access_token=" + getUserToken())
.a("Accept-Encoding", "gzip")
.a();
Network.b(CLIENT_API).a(req).a(new Callback() {
@@ -183,7 +185,7 @@ public class VideoDownloader {
progressDialog.cancel();
try {
JSONObject mainJson = new JSONObject(response.a().g());
JSONObject mainJson = new JSONObject(GzipDecompressor.decompressResponse(response));
JSONObject responseJson = mainJson.getJSONObject("response").optJSONArray("items").optJSONObject(0);
StoryEntry story = new StoryEntry(responseJson);
StoryDownloader.downloadStory(story);
@@ -211,6 +213,7 @@ public class VideoDownloader {
var req = new Request.a()
.b("https://" + getApi() + "/method/video.get?owner_id=" + ownerId + "&videos=" + videoId + "&v=5.99&access_token=" + getUserToken())
.a("Accept-Encoding", "gzip")
.a();
Network.b(CLIENT_API).a(req).a(new Callback() {
@@ -225,7 +228,7 @@ public class VideoDownloader {
progressDialog.cancel();
try {
JSONObject mainJson = new JSONObject(response.a().g());
JSONObject mainJson = new JSONObject(GzipDecompressor.decompressResponse(response));
JSONObject responseJson = mainJson.getJSONObject("response");
JSONArray itemsJson = responseJson.getJSONArray("items");
@@ -1,9 +1,11 @@
package ru.vtosters.lite.foaf;
import android.annotation.SuppressLint;
import android.app.ProgressDialog;
import android.content.Context;
import android.util.Log;
import com.vk.core.dialogs.alert.VkAlertDialog;
import com.vk.core.network.Network;
import com.vtosters.lite.R;
import okhttp3.OkHttpClient;
import okhttp3.Request;
@@ -27,6 +29,8 @@ import java.util.Optional;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import static com.vk.core.network.Network.ClientType.CLIENT_API;
public class FoafBase {
private static final Pattern FOAF_REGEX = Pattern.compile("<ya:created dc:date=\"(.+?)\"");
private static final String DELETED = "<ya:profileState>deleted</ya:profileState>";
@@ -68,9 +72,9 @@ public class FoafBase {
}
}
@SuppressLint("DefaultLocale")
private static String getLink(int i) {
String prefix = (ProxyUtils.isAnyProxyEnabled() || ProxyUtils.isVKProxyEnabled()) ? "https://" + (ProxyUtils.isVKProxyEnabled() ? VikaMobile.getApiHost() : ProxyUtils.getApi()) + "/_/vk.com/foaf.php?id=" : "https://vk.com/foaf.php?id=";
return prefix + i;
return ProxyUtils.isAnyProxyEnabled() ? String.format("https://%s/_/vk.com/foaf.php?id=%d", ProxyUtils.getApi(), i) : String.format("https://vk.com/foaf.php?id=%d", i);
}
public static void loadAndShow(Context context, int i) {
@@ -81,12 +85,13 @@ public class FoafBase {
Request request = new Request.a()
.b(getLink(i))
.a("Accept-Encoding", "gzip")
.a();
try (Response response = client.a(request).execute()) {
try (Response response = Network.b(CLIENT_API).a(request).execute()) {
LifecycleUtils.getCurrentActivity().runOnUiThread(() -> {
try {
showFoafInfo(progressDialog, context, i, response.a().g());
showFoafInfo(progressDialog, context, i, GzipDecompressor.decompressResponse(response));
} catch (IOException e) {
throw new RuntimeException(e);
}
@@ -122,6 +127,7 @@ public class FoafBase {
}
}
@SuppressLint("DefaultLocale")
private static void showFoafDialog(Context context, int i, String normalHumanDate, long daysPassed) {
String message = String.format("%s %d%s %s%s %d", context.getString(R.string.foafid), i, context.getString(R.string.foafregdate), normalHumanDate, context.getString(R.string.foafdate), daysPassed);
new VkAlertDialog.Builder(context)
@@ -13,6 +13,7 @@ import ru.vtosters.lite.di.singleton.VtOkHttpClient;
import ru.vtosters.lite.utils.AccountManagerUtils;
import ru.vtosters.lite.utils.AndroidUtils;
import ru.vtosters.lite.utils.NetworkUtils;
import ru.vtosters.sponsorpost.utils.GzipDecompressor;
import java.io.IOException;
import java.util.ArrayList;
@@ -32,6 +33,7 @@ public class UsersList {
Request request = new Request.a()
.b(Utils.getDomain() + "/api/getUsersWithServiceDescriptionsAndBanners")
.a("Accept-Encoding", "gzip")
.a();
VtOkHttpClient.getInstance().a(request).a(new Callback() {
@@ -43,7 +45,7 @@ public class UsersList {
@Override
public void a(Call call, Response response) {
try {
parseJson(new JSONObject(response.a().g()).getJSONObject("response"));
parseJson(new JSONObject(GzipDecompressor.decompressResponse(response)).getJSONObject("response"));
} catch (JSONException | IOException e) {
e.printStackTrace();
}