mirror of
https://github.com/jwdeveloper/TikTokLiveJava.git
synced 2026-02-27 08:49:40 -05:00
Fixed bugs:
- addListeners() was throwing exception - 404 response code was return while connecting to tiktok for some users - configure.setRoomId() method for people that want to set roomId manually - client.roomInfo().isAgeRestricted() check if live has age restriction
This commit is contained in:
@@ -89,8 +89,20 @@ public class TikTokLiveClient implements LiveClient {
|
||||
|
||||
|
||||
apiService.updateSessionId();
|
||||
var roomId = apiService.fetchRoomId(liveRoomInfo.getUserName());
|
||||
liveRoomInfo.setRoomId(roomId);
|
||||
|
||||
if(clientSettings.getRoomId() != null)
|
||||
{
|
||||
|
||||
liveRoomInfo.setRoomId(clientSettings.getRoomId());
|
||||
logger.info("Using roomID from settings: "+clientSettings.getRoomId());
|
||||
}
|
||||
else
|
||||
{
|
||||
var roomId = apiService.fetchRoomId(liveRoomInfo.getUserName());
|
||||
liveRoomInfo.setRoomId(roomId);
|
||||
}
|
||||
|
||||
|
||||
var roomData = apiService.fetchRoomInfo();
|
||||
if (roomData.getStatus() == 0 || roomData.getStatus() == 4) {
|
||||
throw new TikTokLiveOfflineHostException("LiveStream for HostID could not be found. Is the Host online?");
|
||||
|
||||
@@ -11,7 +11,10 @@ public class TikTokRoomInfo implements LiveRoomInfo
|
||||
|
||||
private String roomId;
|
||||
|
||||
private boolean ageRestricted;
|
||||
|
||||
private String userName;
|
||||
|
||||
private ConnectionState connectionState = ConnectionState.DISCONNECTED;
|
||||
|
||||
public boolean hasConnectionState(ConnectionState state)
|
||||
|
||||
@@ -6,6 +6,7 @@ import io.github.jwdeveloper.tiktok.exceptions.TikTokLiveException;
|
||||
import io.github.jwdeveloper.tiktok.exceptions.TikTokLiveOfflineHostException;
|
||||
import io.github.jwdeveloper.tiktok.exceptions.TikTokLiveRequestException;
|
||||
import io.github.jwdeveloper.tiktok.live.LiveRoomMeta;
|
||||
import io.github.jwdeveloper.tiktok.mappers.LiveRoomMetaMapper;
|
||||
import io.github.jwdeveloper.tiktok.messages.WebcastResponse;
|
||||
import io.github.jwdeveloper.tiktok.models.gifts.TikTokGiftInfo;
|
||||
|
||||
@@ -100,22 +101,10 @@ public class TikTokApiService {
|
||||
logger.info("Fetch RoomInfo");
|
||||
try {
|
||||
var response = tiktokHttpClient.getJObjectFromWebcastAPI("room/info/", clientSettings.getClientParameters());
|
||||
if (!response.has("data")) {
|
||||
return new LiveRoomMeta();
|
||||
}
|
||||
|
||||
var data = response.getAsJsonObject("data");
|
||||
if (!data.has("status")) {
|
||||
return new LiveRoomMeta();
|
||||
}
|
||||
|
||||
var status = data.get("status");
|
||||
|
||||
var info = new LiveRoomMeta();
|
||||
info.setStatus(status.getAsInt());
|
||||
|
||||
logger.info("RoomInfo status -> " + info.getStatus());
|
||||
return info;
|
||||
var mapper = new LiveRoomMetaMapper();
|
||||
var liveRoomMeta = mapper.mapFrom(response);
|
||||
logger.info("RoomInfo status -> " + liveRoomMeta.getStatus());
|
||||
return liveRoomMeta;
|
||||
} catch (Exception e) {
|
||||
throw new TikTokLiveRequestException("Failed to fetch room info from WebCast, see stacktrace for more info.", e);
|
||||
}
|
||||
|
||||
@@ -19,10 +19,9 @@ public class TikTokListenersManager implements ListenersManager {
|
||||
|
||||
public TikTokListenersManager(List<TikTokEventListener> listeners, TikTokEventObserver tikTokEventHandler) {
|
||||
this.eventObserver = tikTokEventHandler;
|
||||
this.bindingModels = listeners.stream().map(this::bindToEvents).toList();
|
||||
this.bindingModels = new ArrayList<>(listeners.stream().map(this::bindToEvents).toList());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<TikTokEventListener> getListeners() {
|
||||
return bindingModels.stream().map(ListenerBindingModel::getListener).toList();
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
package io.github.jwdeveloper.tiktok.mappers;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
import io.github.jwdeveloper.tiktok.live.LiveRoomMeta;
|
||||
|
||||
public class LiveRoomMetaMapper implements Mapper<JsonObject, LiveRoomMeta>
|
||||
{
|
||||
@Override
|
||||
public LiveRoomMeta mapFrom(JsonObject input) {
|
||||
var liveRoomMeta = new LiveRoomMeta();
|
||||
|
||||
if (!input.has("data")) {
|
||||
return liveRoomMeta;
|
||||
}
|
||||
var data = input.getAsJsonObject("data");
|
||||
if (data.has("status")) {
|
||||
var status = data.get("status");
|
||||
liveRoomMeta.setStatus(status.getAsInt());
|
||||
}
|
||||
|
||||
|
||||
if(data.has("age_restricted"))
|
||||
{
|
||||
var element = data.getAsJsonObject("age_restricted");
|
||||
var restricted= element.get("restricted").getAsBoolean();
|
||||
liveRoomMeta.setAgeRestricted(restricted);
|
||||
}
|
||||
return liveRoomMeta;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user