Compare commits
6
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
93edbf2d3d | ||
|
|
f39463f782 | ||
|
|
27b07719d9 | ||
|
|
c6cff1a585 | ||
|
|
5932d6f9dc | ||
|
|
15bb5fa469 |
@@ -0,0 +1,16 @@
|
|||||||
|
package ru.vtosters.hooks;
|
||||||
|
|
||||||
|
import com.vtosters.lite.api.execute.GetWallInfo;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Since June 12, 2024, there are troubles with API method "execute.getUserInfo" in the old versions of VK Client (<6.16),
|
||||||
|
* to fix that issue we need to upgrade "execute.getUserInfo" for new API versions
|
||||||
|
* and implement the new API method "newsfeed.getPostTopics" (TODO)*/
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
public class PostTopicsHook {
|
||||||
|
public static void hook(final GetWallInfo.a model) throws Exception {
|
||||||
|
model.f = new ArrayList<>();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -220,10 +220,14 @@ public class CatalogJsonInjector {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void removeUnsupportedLayouts(JSONArray blocks) throws JSONException {
|
private static void removeUnsupportedLayouts(JSONArray blocks) {
|
||||||
for (int i = blocks.length() - 1; i >= 0; i--) {
|
for (int i = blocks.length() - 1; i >= 0; i--) {
|
||||||
JSONObject block = blocks.optJSONObject(i);
|
JSONObject block = blocks.optJSONObject(i);
|
||||||
|
if (block == null) continue;
|
||||||
|
|
||||||
JSONObject layout = block.optJSONObject("layout");
|
JSONObject layout = block.optJSONObject("layout");
|
||||||
|
if (layout == null) continue;
|
||||||
|
|
||||||
String data_type = block.optString("data_type");
|
String data_type = block.optString("data_type");
|
||||||
|
|
||||||
if (Objects.equals(data_type, "music_recommended_playlists") || Objects.equals(data_type, "radiostations")) {
|
if (Objects.equals(data_type, "music_recommended_playlists") || Objects.equals(data_type, "radiostations")) {
|
||||||
@@ -233,8 +237,6 @@ public class CatalogJsonInjector {
|
|||||||
continue; // Skip to the next iteration after removing
|
continue; // Skip to the next iteration after removing
|
||||||
}
|
}
|
||||||
|
|
||||||
if (layout == null) continue; // Skip to the next iteration if layout is null
|
|
||||||
|
|
||||||
String name = layout.optString("name");
|
String name = layout.optString("name");
|
||||||
if (!name.equals("header_extended")) {
|
if (!name.equals("header_extended")) {
|
||||||
continue; // Skip to the next iteration if not header_extended
|
continue; // Skip to the next iteration if not header_extended
|
||||||
@@ -243,11 +245,14 @@ public class CatalogJsonInjector {
|
|||||||
if (layout.has("top_title")) {
|
if (layout.has("top_title")) {
|
||||||
blocks.remove(i);
|
blocks.remove(i);
|
||||||
}
|
}
|
||||||
layout.put("name", "header");
|
try {
|
||||||
|
layout.put("name", "header");
|
||||||
|
} catch (JSONException e) {
|
||||||
|
e.fillInStackTrace();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static void setDefaultAudioPage(JSONArray jsonArray, JSONObject catalog) throws JSONException {
|
private static void setDefaultAudioPage(JSONArray jsonArray, JSONObject catalog) throws JSONException {
|
||||||
for (int i = 0; i < jsonArray.length(); i++) {
|
for (int i = 0; i < jsonArray.length(); i++) {
|
||||||
var item = jsonArray.optJSONObject(i);
|
var item = jsonArray.optJSONObject(i);
|
||||||
|
|||||||
Executable → Regular
Executable → Regular
@@ -474,7 +474,7 @@
|
|||||||
invoke-virtual {p1, v1, v0}, Ljava/net/HttpURLConnection;->setRequestProperty(Ljava/lang/String;Ljava/lang/String;)V
|
invoke-virtual {p1, v1, v0}, Ljava/net/HttpURLConnection;->setRequestProperty(Ljava/lang/String;Ljava/lang/String;)V
|
||||||
|
|
||||||
.line 15
|
.line 15
|
||||||
const-string v0, "C8EAB7342DA62B4A229E1BFDEB27B029DD6788A1"
|
const-string v0, "48761EEF50EE53AFC4CC9C5F10E6BDE7F8F5B82F"
|
||||||
|
|
||||||
const-string v1, "X-Android-Cert"
|
const-string v1, "X-Android-Cert"
|
||||||
|
|
||||||
|
|||||||
@@ -194,6 +194,8 @@
|
|||||||
|
|
||||||
move-result v0
|
move-result v0
|
||||||
|
|
||||||
|
const v0, 0x0
|
||||||
|
|
||||||
if-eqz v0, :cond_2
|
if-eqz v0, :cond_2
|
||||||
|
|
||||||
const/4 v0, 0x1
|
const/4 v0, 0x1
|
||||||
|
|||||||
@@ -285,7 +285,8 @@
|
|||||||
|
|
||||||
const-string p1, "func_v"
|
const-string p1, "func_v"
|
||||||
|
|
||||||
const/16 v0, 0x15
|
#upgrade func_v to 0x16 to fix issue related with outdated gettings of post topics
|
||||||
|
const/16 v0, 0x16
|
||||||
|
|
||||||
.line 9
|
.line 9
|
||||||
invoke-virtual {p0, p1, v0}, Lcom/vk/api/base/ApiRequest;->b(Ljava/lang/String;I)Lcom/vk/api/base/ApiRequest;
|
invoke-virtual {p0, p1, v0}, Lcom/vk/api/base/ApiRequest;->b(Ljava/lang/String;I)Lcom/vk/api/base/ApiRequest;
|
||||||
@@ -385,6 +386,7 @@
|
|||||||
.end annotation
|
.end annotation
|
||||||
.end param
|
.end param
|
||||||
|
|
||||||
|
|
||||||
const/4 v0, 0x0
|
const/4 v0, 0x0
|
||||||
|
|
||||||
:try_start_0
|
:try_start_0
|
||||||
@@ -503,18 +505,22 @@
|
|||||||
|
|
||||||
iput-object v1, v3, Lcom/vtosters/lite/api/execute/GetWallInfo$a;->e:Lcom/vk/auth/api/AccountPhoneVerify;
|
iput-object v1, v3, Lcom/vtosters/lite/api/execute/GetWallInfo$a;->e:Lcom/vk/auth/api/AccountPhoneVerify;
|
||||||
|
|
||||||
const-string v1, "post_topics"
|
invoke-static {v3}, Lru/vtosters/hooks/PostTopicsHook;->hook(Lcom/vtosters/lite/api/execute/GetWallInfo$a;)V
|
||||||
|
|
||||||
.line 17
|
# const-string v1, "post_topics"
|
||||||
invoke-virtual {p1, v1}, Lorg/json/JSONObject;->optJSONArray(Ljava/lang/String;)Lorg/json/JSONArray;
|
|
||||||
|
|
||||||
move-result-object v1
|
# .line 17
|
||||||
|
# invoke-virtual {p1, v1}, Lorg/json/JSONObject;->optJSONArray(Ljava/lang/String;)Lorg/json/JSONArray;
|
||||||
|
|
||||||
invoke-static {v1}, Lcom/vk/dto/newsfeed/PostTopic;->a(Lorg/json/JSONArray;)Ljava/util/List;
|
# move-result-object v1
|
||||||
|
|
||||||
|
# invoke-static {v1}, Lcom/vk/dto/newsfeed/PostTopic;->a(Lorg/json/JSONArray;)Ljava/util/List;
|
||||||
|
|
||||||
|
# move-result-object v1
|
||||||
|
|
||||||
|
# iput-object v1, v3, Lcom/vtosters/lite/api/execute/GetWallInfo$a;->f:Ljava/util/List;
|
||||||
|
|
||||||
move-result-object v1
|
|
||||||
|
|
||||||
iput-object v1, v3, Lcom/vtosters/lite/api/execute/GetWallInfo$a;->f:Ljava/util/List;
|
|
||||||
|
|
||||||
const-string v1, "special_events"
|
const-string v1, "special_events"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user