From 2f5cd1ea1edfc6e287e3b7fe62de6ced814f769a Mon Sep 17 00:00:00 2001 From: Lysinka Date: Sat, 28 Feb 2026 10:07:24 +0100 Subject: [PATCH 1/4] Update LiveDataMapper.java --- .../jwdeveloper/tiktok/http/mappers/LiveDataMapper.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Client/src/main/java/io/github/jwdeveloper/tiktok/http/mappers/LiveDataMapper.java b/Client/src/main/java/io/github/jwdeveloper/tiktok/http/mappers/LiveDataMapper.java index d5c9dbaa..472c3dff 100644 --- a/Client/src/main/java/io/github/jwdeveloper/tiktok/http/mappers/LiveDataMapper.java +++ b/Client/src/main/java/io/github/jwdeveloper/tiktok/http/mappers/LiveDataMapper.java @@ -50,10 +50,12 @@ public static LiveData.Response map(String json) { var jsonObject = parsedJson.getAsJsonObject(); - if (!jsonObject.has("data")) { + var rawData = jsonObject.get("data"); + if (rawData == null || rawData.isJsonNull() || !rawData.isJsonObject()) { throw new TikTokLiveRequestException("Data section not found in LiveData.Response"); } - var data = jsonObject.getAsJsonObject("data"); + var data = rawData.getAsJsonObject(); + if (data.has("status")) { @@ -148,4 +150,4 @@ public static User getUser(JsonObject jsonElement) { user.addAttribute(UserAttribute.LiveHost); return user; } -} \ No newline at end of file +} From cb958dd90b58727be052c3367bfd4de6bffbaefe Mon Sep 17 00:00:00 2001 From: Lysinka Date: Sat, 28 Feb 2026 10:14:53 +0100 Subject: [PATCH 2/4] Update GiftsDataMapper.java --- .../jwdeveloper/tiktok/http/mappers/GiftsDataMapper.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Client/src/main/java/io/github/jwdeveloper/tiktok/http/mappers/GiftsDataMapper.java b/Client/src/main/java/io/github/jwdeveloper/tiktok/http/mappers/GiftsDataMapper.java index e4d6b98f..02686716 100644 --- a/Client/src/main/java/io/github/jwdeveloper/tiktok/http/mappers/GiftsDataMapper.java +++ b/Client/src/main/java/io/github/jwdeveloper/tiktok/http/mappers/GiftsDataMapper.java @@ -54,8 +54,11 @@ private static Gift mapSingleGift(JsonElement jsonElement) { } public static GiftsData.Response mapRoom(String json) { - var parsedJson = JsonParser.parseString(json); - var jsonObject = parsedJson.getAsJsonObject(); + var parsedJson = JsonParser.parseString(json); + if (!parsedJson.isJsonObject()) { + return new GiftsData.Response("", List.of()); + } + var jsonObject = parsedJson.getAsJsonObject(); if (jsonObject.get("data") instanceof JsonObject data && data.get("gifts") instanceof JsonArray giftArray) { var gifts = new ArrayList(); @@ -85,4 +88,4 @@ private static Gift mapSingleRoomGift(JsonElement jsonElement) { picture = Picture.empty(); return new Gift(id, name, diamondCost, picture, jsonObject); } -} \ No newline at end of file +} From 4b9b37b2d939770ede9b056a9a70a282aa216291 Mon Sep 17 00:00:00 2001 From: prokac Date: Sat, 28 Feb 2026 10:37:30 +0100 Subject: [PATCH 3/4] Use aid=1988 for gift list endpoint instead of room_id Co-Authored-By: Claude Sonnet 4.6 --- .../java/io/github/jwdeveloper/tiktok/TikTokLiveHttpClient.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveHttpClient.java b/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveHttpClient.java index a85c0bc1..3c8688d5 100644 --- a/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveHttpClient.java +++ b/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveHttpClient.java @@ -83,7 +83,7 @@ public GiftsData.Response fetchRoomGiftsData(String room_id) { public GiftsData.Response getRoomGiftsData(String room_id) { var result = httpFactory.client(TIKTOK_ROOM_GIFTS_URL) - .withParam("room_id", room_id) + .withParam("aid", "1988") .build() .toJsonResponse(); From 6ec738c3eadea87533068c8995bf80185ed1a810 Mon Sep 17 00:00:00 2001 From: prokac Date: Sun, 1 Mar 2026 15:42:29 +0100 Subject: [PATCH 4/4] test --- .../jwdeveloper/tiktok/data/settings/HttpClientSettings.java | 3 +++ .../io/github/jwdeveloper/tiktok/TikTokLiveHttpClient.java | 1 + 2 files changed, 4 insertions(+) diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/data/settings/HttpClientSettings.java b/API/src/main/java/io/github/jwdeveloper/tiktok/data/settings/HttpClientSettings.java index 8af3eebd..cfcf3516 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/data/settings/HttpClientSettings.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/data/settings/HttpClientSettings.java @@ -46,6 +46,9 @@ public class HttpClientSettings { @Setter private ProxyClientSettings proxyClientSettings; + @Setter + private ProxyClientSettings giftsProxyClientSettings; + private Consumer onClientCreating; private Consumer onRequestCreating; diff --git a/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveHttpClient.java b/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveHttpClient.java index 3c8688d5..49e232d5 100644 --- a/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveHttpClient.java +++ b/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveHttpClient.java @@ -84,6 +84,7 @@ public GiftsData.Response fetchRoomGiftsData(String room_id) { public GiftsData.Response getRoomGiftsData(String room_id) { var result = httpFactory.client(TIKTOK_ROOM_GIFTS_URL) .withParam("aid", "1988") + .withParam("room_id", room_id) .build() .toJsonResponse();