diff --git a/Examples/src/main/java/io/github/jwdeveloper/tiktok/CollectorExample.java b/Examples/src/main/java/io/github/jwdeveloper/tiktok/CollectorExample.java index 39e8520..e75930e 100644 --- a/Examples/src/main/java/io/github/jwdeveloper/tiktok/CollectorExample.java +++ b/Examples/src/main/java/io/github/jwdeveloper/tiktok/CollectorExample.java @@ -49,7 +49,7 @@ public class CollectorExample { collector.connectDatabase(); var users = List.of("tehila_723", "dino123597", "domaxyzx", "dash4214", "obserwacje_live"); - var sessionTag = "Dupa"; + var sessionTag = "Tag1"; for (var user : users) { TikTokLive.newClient(user) .configure(liveClientSettings -> diff --git a/README.md b/README.md index a0d7ac7..3772dd9 100644 --- a/README.md +++ b/README.md @@ -29,8 +29,7 @@ A Java library inspired by [TikTokLive](https://github.com/isaackogan/TikTokLive The library includes a wrapper that connects to the WebCast service using just the username (`uniqueId`). This allows you to connect to your own live chat as well as the live chat of other streamers. No credentials are required. Events such as [Members Joining](#member), [Gifts](#gift), [Subscriptions](#subscribe), [Viewers](#roomuser), [Follows](#social), [Shares](#social), [Questions](#questionnew), [Likes](#like) and [Battles](#linkmicbattle) can be tracked. -# Contributors -[Library documentation for contributors](https://github.com/jwdeveloper/TikTokLiveJava/wiki) +
@@ -50,6 +49,7 @@ Do you prefer other programming languages?
#### Overview
- [Getting started](#getting-started)
- [Events](#events)
+- [Extensions](#extensions)
- [Listeners](#listeners)
- [Contributing](#contributing)
@@ -166,37 +166,79 @@ TikTokLive.newClient("bangbetmenygy")
+## Events
+
+
+
**Control**:
-- [onConnected](#onconnected-tiktokconnectedevent)
-- [onDisconnected](#ondisconnected-tiktokdisconnectedevent)
- [onReconnecting](#onreconnecting-tiktokreconnectingevent)
- [onError](#onerror-tiktokerrorevent)
+- [onConnected](#onconnected-tiktokconnectedevent)
+- [onDisconnected](#ondisconnected-tiktokdisconnectedevent)
**Message**:
- [onEvent](#onevent-tiktokevent)
-- [onSubscribe](#onsubscribe-tiktoksubscribeevent)
-- [onQuestion](#onquestion-tiktokquestionevent)
-- [onFollow](#onfollow-tiktokfollowevent)
-- [onLike](#onlike-tiktoklikeevent)
-- [onLiveEnded](#onliveended-tiktokliveendedevent)
-- [onRoomInfo](#onroominfo-tiktokroominfoevent)
-- [onShare](#onshare-tiktokshareevent)
-- [onGiftCombo](#ongiftcombo-tiktokgiftcomboevent)
-- [onEmote](#onemote-tiktokemoteevent)
-- [onGift](#ongift-tiktokgiftevent)
+- [onEvent](#onevent-tiktokevent)
- [onComment](#oncomment-tiktokcommentevent)
-- [onLivePaused](#onlivepaused-tiktoklivepausedevent)
+- [onRoomInfo](#onroominfo-tiktokroominfoevent)
+- [onGift](#ongift-tiktokgiftevent)
+- [onSubscribe](#onsubscribe-tiktoksubscribeevent)
+- [onFollow](#onfollow-tiktokfollowevent)
+- [onGiftCombo](#ongiftcombo-tiktokgiftcomboevent)
+- [onLiveEnded](#onliveended-tiktokliveendedevent)
+- [onQuestion](#onquestion-tiktokquestionevent)
+- [onShare](#onshare-tiktokshareevent)
- [onLiveUnpaused](#onliveunpaused-tiktokliveunpausedevent)
+- [onEmote](#onemote-tiktokemoteevent)
- [onJoin](#onjoin-tiktokjoinevent)
+- [onLike](#onlike-tiktoklikeevent)
+- [onLivePaused](#onlivepaused-tiktoklivepausedevent)
**Debug**:
-- [onWebsocketUnhandledMessage](#onwebsocketunhandledmessage-tiktokwebsocketunhandledmessageevent)
- [onWebsocketResponse](#onwebsocketresponse-tiktokwebsocketresponseevent)
+- [onWebsocketUnhandledMessage](#onwebsocketunhandledmessage-tiktokwebsocketunhandledmessageevent)
+- [onHttpResponse](#onhttpresponse-tiktokhttpresponseevent)
- [onWebsocketMessage](#onwebsocketmessage-tiktokwebsocketmessageevent)
# Examples
+Example when user sends gift with combo
->Combo: 1 -> comboState = GiftSendType.Begin
-Combo: 4 -> comboState = GiftSendType.Active
-Combo: 8 -> comboState = GiftSendType.Active
-Combo: 12 -> comboState = GiftSendType.Finished
- -Remember if comboState is Finished both TikTokGiftComboEvent and TikTokGiftEvent event gets triggered - - -```java -TikTokLive.newClient("host-name") -.onGiftCombo((liveClient, event) -> -{ - -}) -.buildAndConnect(); -``` - - - -Example when user sends gift with combo
+>Combo: 1 -> comboState = GiftSendType.Begin
+Combo: 4 -> comboState = GiftSendType.Active
+Combo: 8 -> comboState = GiftSendType.Active
+Combo: 12 -> comboState = GiftSendType.Finsihed
+
+ Remember if comboState is Finsihed both TikTokGiftComboEvent and TikTokGiftEvent event gets triggered
+
+
+```java
+TikTokLive.newClient("host-name")
+.onGiftCombo((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
+
+
+## onLiveEnded [TikTokLiveEndedEvent](https://github.com/jwdeveloper/TikTokLiveJava/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/TikTokLiveEndedEvent.java)
+
+
+Triggered when the live stream gets terminated by the host. Will also trigger the TikTokDisconnectedEvent event.
+
+
+```java
+TikTokLive.newClient("host-name")
+.onLiveEnded((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
+
+
+## onQuestion [TikTokQuestionEvent](https://github.com/jwdeveloper/TikTokLiveJava/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/TikTokQuestionEvent.java)
+
+
+Triggered every time someone asks a new question via the question feature.
+
+
+```java
+TikTokLive.newClient("host-name")
+.onQuestion((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
+
+
+## onShare [TikTokShareEvent](https://github.com/jwdeveloper/TikTokLiveJava/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/social/TikTokShareEvent.java)
+
+
+Triggers when a user shares the stream. Based on social event.
+
+
+```java
+TikTokLive.newClient("host-name")
+.onShare((liveClient, event) ->
{
})
@@ -544,6 +516,25 @@ TikTokLive.newClient("host-name")
+
+
+## onEmote [TikTokEmoteEvent](https://github.com/jwdeveloper/TikTokLiveJava/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/TikTokEmoteEvent.java)
+
+
+Triggered every time a subscriber sends an emote (sticker).
+
+
+```java
+TikTokLive.newClient("host-name")
+.onEmote((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
## onJoin [TikTokJoinEvent](https://github.com/jwdeveloper/TikTokLiveJava/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/social/TikTokJoinEvent.java)
@@ -561,6 +552,59 @@ TikTokLive.newClient("host-name")
+
+
+## onLike [TikTokLikeEvent](https://github.com/jwdeveloper/TikTokLiveJava/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/social/TikTokLikeEvent.java)
+
+
+Triggered when a viewer sends likes to the streamer. For streams with many viewers, this event is not always triggered by TikTok.
+
+
+```java
+TikTokLive.newClient("host-name")
+.onLike((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
+
+
+## onLivePaused [TikTokLivePausedEvent](https://github.com/jwdeveloper/TikTokLiveJava/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/TikTokLivePausedEvent.java)
+
+
+
+```java
+TikTokLive.newClient("host-name")
+.onLivePaused((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
+
+
+## onWebsocketResponse [TikTokWebsocketResponseEvent](https://github.com/jwdeveloper/TikTokLiveJava/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/websocket/TikTokWebsocketResponseEvent.java)
+
+
+
+```java
+TikTokLive.newClient("host-name")
+.onWebsocketResponse((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
## onWebsocketUnhandledMessage [TikTokWebsocketUnhandledMessageEvent](https://github.com/jwdeveloper/TikTokLiveJava/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/websocket/TikTokWebsocketUnhandledMessageEvent.java)
@@ -582,17 +626,17 @@ TikTokLive.newClient("host-name")
-## onWebsocketResponse [TikTokWebsocketResponseEvent](https://github.com/jwdeveloper/TikTokLiveJava/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/websocket/TikTokWebsocketResponseEvent.java)
+## onHttpResponse [TikTokHttpResponseEvent](https://github.com/jwdeveloper/TikTokLiveJava/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/http/TikTokHttpResponseEvent.java)
```java
TikTokLive.newClient("host-name")
- .onWebsocketResponse((liveClient, event) ->
- {
+.onHttpResponse((liveClient, event) ->
+{
- })
- .buildAndConnect();
+})
+.buildAndConnect();
```
@@ -602,24 +646,37 @@ TikTokLive.newClient("host-name")
## onWebsocketMessage [TikTokWebsocketMessageEvent](https://github.com/jwdeveloper/TikTokLiveJava/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/websocket/TikTokWebsocketMessageEvent.java)
-Triggered every time a protobuf encoded webcast message arrives. You can deserialize the binary object depending on the use case.
+Triggered every time TikTok sends data. Data incoming as protobuf message.
+You can deserialize the binary object depending on the use case.
```java
TikTokLive.newClient("host-name")
- .onWebsocketMessage((liveClient, event) ->
- {
+.onWebsocketMessage((liveClient, event) ->
+{
- })
- .buildAndConnect();
+})
+.buildAndConnect();
```
+
+
+## Extensions
+
+List of extensions (addons) to TiktokLiveJava
+that will save your time
+
+- (Video Recorder)[]
+- (Live data collector to database)[]
+
+
+
## Listeners
```java
@@ -694,4 +751,7 @@ public static class CustomListener implements TikTokEventListener {
## Contributing
+
+[Library documentation for contributors](https://github.com/jwdeveloper/TikTokLiveJava/wiki)
+
Your improvements are welcome! Feel free to open an issue or pull request.
diff --git a/Tools-ReadmeGenerator/src/main/resources/output.md b/Tools-ReadmeGenerator/src/main/resources/output.md
index 22b9542..64b3c22 100644
--- a/Tools-ReadmeGenerator/src/main/resources/output.md
+++ b/Tools-ReadmeGenerator/src/main/resources/output.md
@@ -126,7 +126,6 @@ TikTokLive.newClient("bangbetmenygy")
{
settings.setHostName("bangbetmenygy"); // This method is useful in case you want change hostname later
settings.setClientLanguage("en"); // Language
- settings.setTimeout(Duration.ofSeconds(2)); // Connection timeout
settings.setLogLevel(Level.ALL); // Log level
settings.setPrintToConsole(true); // Printing all logs to console even if log level is Level.OFF
settings.setRetryOnConnectionFailure(true); // Reconnecting if TikTok user is offline
@@ -152,35 +151,73 @@ TikTokLive.newClient("bangbetmenygy")
**Control**:
-- [onConnected](#onconnected-tiktokconnectedevent)
-- [onDisconnected](#ondisconnected-tiktokdisconnectedevent)
- [onReconnecting](#onreconnecting-tiktokreconnectingevent)
- [onError](#onerror-tiktokerrorevent)
+- [onConnected](#onconnected-tiktokconnectedevent)
+- [onDisconnected](#ondisconnected-tiktokdisconnectedevent)
**Message**:
- [onEvent](#onevent-tiktokevent)
-- [onSubscribe](#onsubscribe-tiktoksubscribeevent)
-- [onQuestion](#onquestion-tiktokquestionevent)
-- [onFollow](#onfollow-tiktokfollowevent)
-- [onLike](#onlike-tiktoklikeevent)
-- [onLiveEnded](#onliveended-tiktokliveendedevent)
-- [onRoomInfo](#onroominfo-tiktokroominfoevent)
-- [onShare](#onshare-tiktokshareevent)
-- [onGiftCombo](#ongiftcombo-tiktokgiftcomboevent)
-- [onEmote](#onemote-tiktokemoteevent)
-- [onGift](#ongift-tiktokgiftevent)
+- [onEvent](#onevent-tiktokevent)
- [onComment](#oncomment-tiktokcommentevent)
-- [onLivePaused](#onlivepaused-tiktoklivepausedevent)
+- [onRoomInfo](#onroominfo-tiktokroominfoevent)
+- [onGift](#ongift-tiktokgiftevent)
+- [onSubscribe](#onsubscribe-tiktoksubscribeevent)
+- [onFollow](#onfollow-tiktokfollowevent)
+- [onGiftCombo](#ongiftcombo-tiktokgiftcomboevent)
+- [onLiveEnded](#onliveended-tiktokliveendedevent)
+- [onQuestion](#onquestion-tiktokquestionevent)
+- [onShare](#onshare-tiktokshareevent)
- [onLiveUnpaused](#onliveunpaused-tiktokliveunpausedevent)
+- [onEmote](#onemote-tiktokemoteevent)
- [onJoin](#onjoin-tiktokjoinevent)
+- [onLike](#onlike-tiktoklikeevent)
+- [onLivePaused](#onlivepaused-tiktoklivepausedevent)
**Debug**:
-- [onWebsocketUnhandledMessage](#onwebsocketunhandledmessage-tiktokwebsocketunhandledmessageevent)
- [onWebsocketResponse](#onwebsocketresponse-tiktokwebsocketresponseevent)
+- [onWebsocketUnhandledMessage](#onwebsocketunhandledmessage-tiktokwebsocketunhandledmessageevent)
+- [onHttpResponse](#onhttpresponse-tiktokhttpresponseevent)
- [onWebsocketMessage](#onwebsocketmessage-tiktokwebsocketmessageevent)
# Examples
+
+
+## onReconnecting [TikTokReconnectingEvent](https://github.com/jwdeveloper/TikTokLiveJava/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/TikTokReconnectingEvent.java)
+
+
+
+```java
+TikTokLive.newClient("host-name")
+.onReconnecting((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
+
+
+## onError [TikTokErrorEvent](https://github.com/jwdeveloper/TikTokLiveJava/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/TikTokErrorEvent.java)
+
+
+ General error event. You should handle this.
+
+
+```java
+TikTokLive.newClient("host-name")
+.onError((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
## onConnected [TikTokConnectedEvent](https://github.com/jwdeveloper/TikTokLiveJava/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/TikTokConnectedEvent.java)
@@ -222,32 +259,15 @@ TikTokLive.newClient("host-name")
-## onReconnecting [TikTokReconnectingEvent](https://github.com/jwdeveloper/TikTokLiveJava/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/TikTokReconnectingEvent.java)
+## onEvent [TikTokEvent](https://github.com/jwdeveloper/TikTokLiveJava/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/common/TikTokEvent.java)
-
-```java
-TikTokLive.newClient("host-name")
-.onReconnecting((liveClient, event) ->
-{
-
-})
-.buildAndConnect();
-```
-
-
-
-
-
-## onError [TikTokErrorEvent](https://github.com/jwdeveloper/TikTokLiveJava/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/TikTokErrorEvent.java)
-
-
- General error event. You should handle this.
+ Base class for all events
```java
TikTokLive.newClient("host-name")
-.onError((liveClient, event) ->
+.onEvent((liveClient, event) ->
{
})
@@ -277,15 +297,15 @@ TikTokLive.newClient("host-name")
-## onSubscribe [TikTokSubscribeEvent](https://github.com/jwdeveloper/TikTokLiveJava/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/TikTokSubscribeEvent.java)
+## onComment [TikTokCommentEvent](https://github.com/jwdeveloper/TikTokLiveJava/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/TikTokCommentEvent.java)
- Triggers when a user creates a subscription.
+ Triggered every time a new chat comment arrives.
```java
TikTokLive.newClient("host-name")
-.onSubscribe((liveClient, event) ->
+.onComment((liveClient, event) ->
{
})
@@ -296,15 +316,55 @@ TikTokLive.newClient("host-name")
-## onQuestion [TikTokQuestionEvent](https://github.com/jwdeveloper/TikTokLiveJava/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/TikTokQuestionEvent.java)
+## onRoomInfo [TikTokRoomInfoEvent](https://github.com/jwdeveloper/TikTokLiveJava/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/room/TikTokRoomInfoEvent.java)
-Triggered every time someone asks a new question via the question feature.
+Triggered when LiveRoomInfo got updated such as likes, viewers, ranking ....
```java
TikTokLive.newClient("host-name")
-.onQuestion((liveClient, event) ->
+.onRoomInfo((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
+
+
+## onGift [TikTokGiftEvent](https://github.com/jwdeveloper/TikTokLiveJava/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/gift/TikTokGiftEvent.java)
+
+
+ Triggered when user sends gifts that has
+ no combo (most of expensive gifts)
+ or if combo has finished
+
+
+```java
+TikTokLive.newClient("host-name")
+.onGift((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
+
+
+## onSubscribe [TikTokSubscribeEvent](https://github.com/jwdeveloper/TikTokLiveJava/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/TikTokSubscribeEvent.java)
+
+
+ Triggers when a user creates a subscription.
+
+
+```java
+TikTokLive.newClient("host-name")
+.onSubscribe((liveClient, event) ->
{
})
@@ -334,15 +394,25 @@ TikTokLive.newClient("host-name")
-## onLike [TikTokLikeEvent](https://github.com/jwdeveloper/TikTokLiveJava/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/social/TikTokLikeEvent.java)
+## onGiftCombo [TikTokGiftComboEvent](https://github.com/jwdeveloper/TikTokLiveJava/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/gift/TikTokGiftComboEvent.java)
- Triggered when a viewer sends likes to the streamer. For streams with many viewers, this event is not always triggered by TikTok.
+ Triggered every time gift is sent
+
+ @see GiftSendType it has 3 states
+
+
Example when user sends gift with combo
+>Combo: 1 -> comboState = GiftSendType.Begin
+Combo: 4 -> comboState = GiftSendType.Active
+Combo: 8 -> comboState = GiftSendType.Active
+Combo: 12 -> comboState = GiftSendType.Finsihed
+
+ Remember if comboState is Finsihed both TikTokGiftComboEvent and TikTokGiftEvent event gets triggered
```java
TikTokLive.newClient("host-name")
-.onLike((liveClient, event) ->
+.onGiftCombo((liveClient, event) ->
{
})
@@ -372,13 +442,15 @@ TikTokLive.newClient("host-name")
-## onRoomInfo [TikTokRoomInfoEvent](https://github.com/jwdeveloper/TikTokLiveJava/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/room/TikTokRoomInfoEvent.java)
+## onQuestion [TikTokQuestionEvent](https://github.com/jwdeveloper/TikTokLiveJava/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/TikTokQuestionEvent.java)
+Triggered every time someone asks a new question via the question feature.
+
```java
TikTokLive.newClient("host-name")
-.onRoomInfo((liveClient, event) ->
+.onQuestion((liveClient, event) ->
{
})
@@ -408,25 +480,13 @@ TikTokLive.newClient("host-name")
-## onGiftCombo [TikTokGiftComboEvent](https://github.com/jwdeveloper/TikTokLiveJava/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/gift/TikTokGiftComboEvent.java)
+## onLiveUnpaused [TikTokLiveUnpausedEvent](https://github.com/jwdeveloper/TikTokLiveJava/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/TikTokLiveUnpausedEvent.java)
- Triggered every time gift is sent
-
- @see GiftSendType it has 3 states
-
-
Example when user sends gift with combo
->Combo: 1 -> comboState = GiftSendType.Begin
-Combo: 4 -> comboState = GiftSendType.Active
-Combo: 8 -> comboState = GiftSendType.Active
-Combo: 12 -> comboState = GiftSendType.Finsihed
- - Remember if comboState is Finsihed both TikTokGiftComboEvent and TikTokGiftEvent event gets triggered - ```java TikTokLive.newClient("host-name") -.onGiftCombo((liveClient, event) -> +.onLiveUnpaused((liveClient, event) -> { }) @@ -456,17 +516,13 @@ TikTokLive.newClient("host-name")