Skip to content

Commit d09c90e

Browse files
committed
Added append live username option to FileStorage and now support connection to 18+ age restricted!
1 parent 9c96c88 commit d09c90e

File tree

4 files changed

+11
-16
lines changed

4 files changed

+11
-16
lines changed

API/src/main/java/io/github/jwdeveloper/tiktok/data/settings/LiveClientSettings.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,9 @@ public class LiveClientSettings {
9191
*/
9292
private long pingInterval = 5000;
9393

94+
/** Throw an exception on 18+ Age Restriction */
95+
private boolean throwOnAgeRestriction;
96+
9497
/**
9598
* Optional: Sometimes not every messages from chat are send to TikTokLiveJava to fix this issue you can set sessionId
9699
* @see <a href="https://github.com/isaackogan/TikTok-Live-Connector#send-chat-messages">Documentation: How to obtain sessionId</a>

Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveClient.java

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,26 +23,19 @@
2323
package io.github.jwdeveloper.tiktok;
2424

2525
import com.google.protobuf.ByteString;
26-
import io.github.jwdeveloper.tiktok.data.events.TikTokDisconnectedEvent;
27-
import io.github.jwdeveloper.tiktok.data.events.TikTokErrorEvent;
28-
import io.github.jwdeveloper.tiktok.data.events.TikTokReconnectingEvent;
26+
import io.github.jwdeveloper.tiktok.data.events.*;
2927
import io.github.jwdeveloper.tiktok.data.events.common.TikTokEvent;
3028
import io.github.jwdeveloper.tiktok.data.events.control.*;
3129
import io.github.jwdeveloper.tiktok.data.events.http.TikTokRoomDataResponseEvent;
3230
import io.github.jwdeveloper.tiktok.data.events.room.TikTokRoomInfoEvent;
33-
import io.github.jwdeveloper.tiktok.data.requests.LiveConnectionData;
34-
import io.github.jwdeveloper.tiktok.data.requests.LiveData;
35-
import io.github.jwdeveloper.tiktok.data.requests.LiveUserData;
31+
import io.github.jwdeveloper.tiktok.data.requests.*;
32+
import io.github.jwdeveloper.tiktok.data.settings.LiveClientSettings;
3633
import io.github.jwdeveloper.tiktok.exceptions.*;
3734
import io.github.jwdeveloper.tiktok.http.LiveHttpClient;
38-
import io.github.jwdeveloper.tiktok.listener.ListenersManager;
39-
import io.github.jwdeveloper.tiktok.listener.TikTokListenersManager;
40-
import io.github.jwdeveloper.tiktok.live.GiftsManager;
41-
import io.github.jwdeveloper.tiktok.live.LiveClient;
42-
import io.github.jwdeveloper.tiktok.live.LiveRoomInfo;
35+
import io.github.jwdeveloper.tiktok.listener.*;
36+
import io.github.jwdeveloper.tiktok.live.*;
4337
import io.github.jwdeveloper.tiktok.messages.webcast.WebcastResponse;
4438
import io.github.jwdeveloper.tiktok.models.ConnectionState;
45-
import io.github.jwdeveloper.tiktok.data.settings.LiveClientSettings;
4639
import io.github.jwdeveloper.tiktok.websocket.SocketClient;
4740

4841
import java.util.Base64;
@@ -144,7 +137,7 @@ public void tryConnect() {
144137
var liveDataRequest = new LiveData.Request(userData.getRoomId());
145138
var liveData = httpClient.fetchLiveData(liveDataRequest);
146139

147-
if (liveData.isAgeRestricted())
140+
if (liveData.isAgeRestricted() && clientSettings.isThrowOnAgeRestriction())
148141
throw new TikTokLiveException("Livestream for " + liveRoomInfo.getHostName() + " is 18+ or age restricted!");
149142

150143
if (liveData.getLiveStatus() == LiveData.LiveStatus.HostNotFound)

Client/src/main/java/io/github/jwdeveloper/tiktok/http/mappers/LiveDataMapper.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,7 @@ public LiveData.Response map(String json) {
6565
default -> LiveData.LiveStatus.HostNotFound;
6666
};
6767
response.setLiveStatus(statusValue);
68-
} else if (data.has("prompts") && jsonObject.has("status_code") &&
69-
data.get("prompts").getAsString().isEmpty() && jsonObject.get("status_code").isJsonPrimitive()) {
68+
} else if (data.has("prompts") && jsonObject.has("status_code") && data.get("prompts").getAsString().isEmpty() && jsonObject.get("status_code").isJsonPrimitive()) {
7069
response.setAgeRestricted(jsonObject.get("status_code").getAsInt() == TikTokLiveHttpClient.TIKTOK_AGE_RESTRICTED_CODE);
7170
} else {
7271
response.setLiveStatus(LiveData.LiveStatus.HostNotFound);

extension-collector/src/main/java/io/github/jwdeveloper/tiktok/extension/collector/impl/storages/FileStorage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public void disconnect() {
3434
@Override
3535
public void insert(Document document) {
3636
if (settings.getTypeFilter().test(document.getString("dataType"), document.getString("dataTypeName")) && settings.getUserFilter().test(document.getString("tiktokUser"))) {
37-
var fileName = document.get("dataType") + "_" + document.get("dataTypeName") + (settings.isAppendUserName() ? document.getString("tiktokUser") : "") + ".json";
37+
var fileName = document.get("dataType") + "_" + document.get("dataTypeName") + (settings.isAppendUserName() ? "_"+document.getString("tiktokUser") : "") + ".json";
3838
if (settings.isUseFileLocks()) {
3939
var lock = locks.computeIfAbsent(fileName, s -> new ReentrantLock());
4040
lock.lock();

0 commit comments

Comments
 (0)