Merge pull request #93 from jwdeveloper/develop-1.8.4

Added User instance to LiveUserDataMapper Response to access the retrieved user
This commit is contained in:
David Kohler
2024-07-27 19:18:58 -04:00
committed by GitHub
3 changed files with 20 additions and 5 deletions

View File

@@ -22,6 +22,7 @@
*/
package io.github.jwdeveloper.tiktok.data.requests;
import io.github.jwdeveloper.tiktok.data.models.users.User;
import lombok.*;
public class LiveUserData {
@@ -44,6 +45,7 @@ public class LiveUserData {
private final UserStatus userStatus;
private final String roomId;
private final long startTime;
private final User user;
public boolean isLiveOnline() {
return userStatus == LiveUserData.UserStatus.Live || userStatus == LiveUserData.UserStatus.LivePaused;

View File

@@ -47,7 +47,7 @@ public class TikTokLiveHttpOfflineClient implements LiveHttpClient {
@Override
public LiveUserData.Response fetchLiveUserData(LiveUserData.Request request) {
return new LiveUserData.Response("", LiveUserData.UserStatus.Live, "offline_room_id", 0);
return new LiveUserData.Response("", LiveUserData.UserStatus.Live, "offline_room_id", 0, null);
}
@Override

View File

@@ -23,9 +23,12 @@
package io.github.jwdeveloper.tiktok.http.mappers;
import com.google.gson.*;
import io.github.jwdeveloper.tiktok.data.models.Picture;
import io.github.jwdeveloper.tiktok.data.models.users.User;
import io.github.jwdeveloper.tiktok.data.requests.LiveUserData;
import io.github.jwdeveloper.tiktok.exceptions.TikTokLiveRequestException;
import java.util.List;
import java.util.logging.Logger;
public class LiveUserDataMapper
@@ -40,17 +43,18 @@ public class LiveUserDataMapper
throw new TikTokLiveRequestException("fetchRoomIdFromTiktokApi -> Unable to fetch roomID, contact the developer");
}
if (message.equals("user_not_found")) {
return new LiveUserData.Response(json, LiveUserData.UserStatus.NotFound, "", -1);
return new LiveUserData.Response(json, LiveUserData.UserStatus.NotFound, "", -1, null);
}
//live -> status 2
//live paused -> 3
//not live -> status 4
var element = jsonObject.get("data");
if (element.isJsonNull()) {
return new LiveUserData.Response(json, LiveUserData.UserStatus.NotFound, "", -1);
return new LiveUserData.Response(json, LiveUserData.UserStatus.NotFound, "", -1, null);
}
var data = element.getAsJsonObject();
var user = data.getAsJsonObject("user");
var stats = data.getAsJsonObject("stats");
var roomId = user.get("roomId").getAsString();
var status = user.get("status").getAsInt();
@@ -64,10 +68,19 @@ public class LiveUserDataMapper
default -> LiveUserData.UserStatus.NotFound;
};
return new LiveUserData.Response(json, statusEnum, roomId, startTime);
User foundUser = new User(
Long.parseLong(user.get("id").getAsString()),
user.get("uniqueId").getAsString(),
user.get("nickname").getAsString(),
new Picture(user.get("avatarLarger").getAsString()),
stats.get("followingCount").getAsLong(),
stats.get("followerCount").getAsLong(),
List.of());
return new LiveUserData.Response(json, statusEnum, roomId, startTime, foundUser);
} catch (JsonSyntaxException | IllegalStateException e) {
logger.warning("Malformed Json: '"+json+"' - Error Message: "+e.getMessage());
return new LiveUserData.Response(json, LiveUserData.UserStatus.NotFound, "", -1);
return new LiveUserData.Response(json, LiveUserData.UserStatus.NotFound, "", -1, null);
}
}
}