Test application

This commit is contained in:
JW
2023-08-16 19:28:42 +02:00
parent f1b143fa06
commit b1c7828a2a
15 changed files with 134 additions and 155 deletions

View File

@@ -5,14 +5,14 @@ import io.github.jwdeveloper.tiktok.handlers.TikTokEventHandler;
import io.github.jwdeveloper.tiktok.http.TikTokApiService;
import io.github.jwdeveloper.tiktok.live.ConnectionState;
import io.github.jwdeveloper.tiktok.live.LiveClient;
import io.github.jwdeveloper.tiktok.live.LiveMeta;
import io.github.jwdeveloper.tiktok.live.TikTokLiveMeta;
import io.github.jwdeveloper.tiktok.live.LiveRoomInfo;
import io.github.jwdeveloper.tiktok.live.TikTokRoomInfo;
import io.github.jwdeveloper.tiktok.websocket.TikTokWebsocketClient;
import java.util.logging.Logger;
public class TikTokLiveClient implements LiveClient {
private final TikTokLiveMeta meta;
private final TikTokRoomInfo meta;
private final TikTokGiftManager giftManager;
private final TikTokApiService apiClient;
private final TikTokWebsocketClient webSocketClient;
@@ -21,7 +21,7 @@ public class TikTokLiveClient implements LiveClient {
private final Logger logger;
public TikTokLiveClient(TikTokLiveMeta tikTokLiveMeta,
public TikTokLiveClient(TikTokRoomInfo tikTokLiveMeta,
TikTokApiService tikTokApiService,
TikTokWebsocketClient webSocketClient,
TikTokGiftManager tikTokGiftManager,
@@ -38,28 +38,25 @@ public class TikTokLiveClient implements LiveClient {
public void run() {
tryConnect();
}
public void stop() {
if (!meta.hasConnectionState(ConnectionState.CONNECTED)) {
return;
}
disconnect();
setState(ConnectionState.DISCONNECTED);
}
public void tryConnect() {
public void connect() {
try {
connect();
tryConnect();
} catch (Exception e) {
e.printStackTrace();
setState(ConnectionState.DISCONNECTED);
}
}
public void connect() {
public void disconnect() {
if (!meta.hasConnectionState(ConnectionState.CONNECTED)) {
return;
}
webSocketClient.stop();
setState(ConnectionState.DISCONNECTED);
}
public void tryConnect() {
if (meta.hasConnectionState(ConnectionState.CONNECTED))
throw new RuntimeException("Already connected");
if (meta.hasConnectionState(ConnectionState.CONNECTING))
@@ -82,13 +79,10 @@ public class TikTokLiveClient implements LiveClient {
setState(ConnectionState.CONNECTED);
}
public void disconnect()
{
webSocketClient.stop();
}
public LiveMeta getMeta() {
public LiveRoomInfo getRoomInfo() {
return meta;
}

View File

@@ -10,9 +10,8 @@ import io.github.jwdeveloper.tiktok.http.TikTokCookieJar;
import io.github.jwdeveloper.tiktok.http.TikTokHttpApiClient;
import io.github.jwdeveloper.tiktok.http.TikTokHttpRequestFactory;
import io.github.jwdeveloper.tiktok.live.LiveClient;
import io.github.jwdeveloper.tiktok.live.TikTokLiveMeta;
import io.github.jwdeveloper.tiktok.live.TikTokRoomInfo;
import io.github.jwdeveloper.tiktok.websocket.TikTokWebsocketClient;
import io.github.jwdeveloper.tiktok.handlers.WebResponseHandlerBase;
import java.time.Duration;
import java.util.Map;
@@ -23,8 +22,8 @@ public class TikTokLiveClientBuilder implements TikTokEventBuilder<TikTokLiveCli
private String userName;
private final ClientSettings clientSettings;
private Map<String, Object> clientParameters;
private Logger logger;
private TikTokEventHandler tikTokEventHandler;
private final Logger logger;
private final TikTokEventHandler tikTokEventHandler;
public TikTokLiveClientBuilder(String userName) {
this.tikTokEventHandler = new TikTokEventHandler();
@@ -92,7 +91,7 @@ public class TikTokLiveClientBuilder implements TikTokEventBuilder<TikTokLiveCli
validate();
var meta = new TikTokLiveMeta();
var meta = new TikTokRoomInfo();
meta.setUserName(userName);
@@ -115,7 +114,7 @@ public class TikTokLiveClientBuilder implements TikTokEventBuilder<TikTokLiveCli
public LiveClient buildAndRun() {
var client = build();
client.run();
client.connect();
return client;
}

View File

@@ -2,7 +2,7 @@ package io.github.jwdeveloper.tiktok.http;
import com.google.gson.Gson;
import io.github.jwdeveloper.tiktok.exceptions.TikTokLiveException;
import io.github.jwdeveloper.tiktok.live.LiveRoomInfo;
import io.github.jwdeveloper.tiktok.live.LiveRoomMeta;
import io.github.jwdeveloper.tiktok.models.gifts.TikTokGift;
import io.github.jwdeveloper.tiktok.messages.WebcastResponse;
@@ -57,22 +57,22 @@ public class TikTokApiService {
}
public LiveRoomInfo fetchRoomInfo() {
public LiveRoomMeta fetchRoomInfo() {
logger.info("Fetch RoomInfo");
try {
var response = apiClient.GetJObjectFromWebcastAPI("room/info/", clientParams);
if (!response.has("data")) {
return new LiveRoomInfo();
return new LiveRoomMeta();
}
var data = response.getAsJsonObject("data");
if (!data.has("status")) {
return new LiveRoomInfo();
return new LiveRoomMeta();
}
var status = data.get("status");
var info = new LiveRoomInfo();
var info = new LiveRoomMeta();
info.setStatus(status.getAsInt());
logger.info("RoomInfo status -> "+info.getStatus());