diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/data/settings/LiveClientSettings.java b/API/src/main/java/io/github/jwdeveloper/tiktok/data/settings/LiveClientSettings.java index 0f141a9..03a3a69 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/data/settings/LiveClientSettings.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/data/settings/LiveClientSettings.java @@ -91,6 +91,9 @@ public class LiveClientSettings { */ private long pingInterval = 5000; + /** Throw an exception on 18+ Age Restriction */ + private boolean throwOnAgeRestriction; + /** * Optional: Sometimes not every messages from chat are send to TikTokLiveJava to fix this issue you can set sessionId * @see Documentation: How to obtain sessionId diff --git a/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveClient.java b/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveClient.java index 6cde52f..cfbb449 100644 --- a/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveClient.java +++ b/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveClient.java @@ -23,26 +23,19 @@ package io.github.jwdeveloper.tiktok; import com.google.protobuf.ByteString; -import io.github.jwdeveloper.tiktok.data.events.TikTokDisconnectedEvent; -import io.github.jwdeveloper.tiktok.data.events.TikTokErrorEvent; -import io.github.jwdeveloper.tiktok.data.events.TikTokReconnectingEvent; +import io.github.jwdeveloper.tiktok.data.events.*; import io.github.jwdeveloper.tiktok.data.events.common.TikTokEvent; import io.github.jwdeveloper.tiktok.data.events.control.*; import io.github.jwdeveloper.tiktok.data.events.http.TikTokRoomDataResponseEvent; import io.github.jwdeveloper.tiktok.data.events.room.TikTokRoomInfoEvent; -import io.github.jwdeveloper.tiktok.data.requests.LiveConnectionData; -import io.github.jwdeveloper.tiktok.data.requests.LiveData; -import io.github.jwdeveloper.tiktok.data.requests.LiveUserData; +import io.github.jwdeveloper.tiktok.data.requests.*; +import io.github.jwdeveloper.tiktok.data.settings.LiveClientSettings; import io.github.jwdeveloper.tiktok.exceptions.*; import io.github.jwdeveloper.tiktok.http.LiveHttpClient; -import io.github.jwdeveloper.tiktok.listener.ListenersManager; -import io.github.jwdeveloper.tiktok.listener.TikTokListenersManager; -import io.github.jwdeveloper.tiktok.live.GiftsManager; -import io.github.jwdeveloper.tiktok.live.LiveClient; -import io.github.jwdeveloper.tiktok.live.LiveRoomInfo; +import io.github.jwdeveloper.tiktok.listener.*; +import io.github.jwdeveloper.tiktok.live.*; import io.github.jwdeveloper.tiktok.messages.webcast.WebcastResponse; import io.github.jwdeveloper.tiktok.models.ConnectionState; -import io.github.jwdeveloper.tiktok.data.settings.LiveClientSettings; import io.github.jwdeveloper.tiktok.websocket.SocketClient; import java.util.Base64; @@ -144,7 +137,7 @@ public class TikTokLiveClient implements LiveClient { var liveDataRequest = new LiveData.Request(userData.getRoomId()); var liveData = httpClient.fetchLiveData(liveDataRequest); - if (liveData.isAgeRestricted()) + if (liveData.isAgeRestricted() && clientSettings.isThrowOnAgeRestriction()) throw new TikTokLiveException("Livestream for " + liveRoomInfo.getHostName() + " is 18+ or age restricted!"); if (liveData.getLiveStatus() == LiveData.LiveStatus.HostNotFound) 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 4eb05ac..02bae22 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 @@ -65,8 +65,7 @@ public class LiveDataMapper { default -> LiveData.LiveStatus.HostNotFound; }; response.setLiveStatus(statusValue); - } else if (data.has("prompts") && jsonObject.has("status_code") && - data.get("prompts").getAsString().isEmpty() && jsonObject.get("status_code").isJsonPrimitive()) { + } else if (data.has("prompts") && jsonObject.has("status_code") && data.get("prompts").getAsString().isEmpty() && jsonObject.get("status_code").isJsonPrimitive()) { response.setAgeRestricted(jsonObject.get("status_code").getAsInt() == TikTokLiveHttpClient.TIKTOK_AGE_RESTRICTED_CODE); } else { response.setLiveStatus(LiveData.LiveStatus.HostNotFound); diff --git a/extension-collector/src/main/java/io/github/jwdeveloper/tiktok/extension/collector/impl/storages/FileStorage.java b/extension-collector/src/main/java/io/github/jwdeveloper/tiktok/extension/collector/impl/storages/FileStorage.java index 05625ec..e7e2f8a 100644 --- a/extension-collector/src/main/java/io/github/jwdeveloper/tiktok/extension/collector/impl/storages/FileStorage.java +++ b/extension-collector/src/main/java/io/github/jwdeveloper/tiktok/extension/collector/impl/storages/FileStorage.java @@ -34,7 +34,7 @@ public class FileStorage implements Storage { @Override public void insert(Document document) { if (settings.getTypeFilter().test(document.getString("dataType"), document.getString("dataTypeName")) && settings.getUserFilter().test(document.getString("tiktokUser"))) { - var fileName = document.get("dataType") + "_" + document.get("dataTypeName") + (settings.isAppendUserName() ? document.getString("tiktokUser") : "") + ".json"; + var fileName = document.get("dataType") + "_" + document.get("dataTypeName") + (settings.isAppendUserName() ? "_"+document.getString("tiktokUser") : "") + ".json"; if (settings.isUseFileLocks()) { var lock = locks.computeIfAbsent(fileName, s -> new ReentrantLock()); lock.lock();