* Quick string alteration for proper state!
* Remove -1 close code and convert to standard public static value with reference!
* Convert to and use LiveClientStopType enum for disconnecting websocket from magic numbers!
* Add capability to use Eulerstream Enterprise server and websocket!
* Add support for TikTokLinkMicBattleItemCard for battle/match power-ups
* Switch to an efficient pool of daemon threads instead of thread per websocket and sleeping!
* Implement Eulerstream send chat API endpoint!
* Add static to fields for single instance to manage all heartbeat threads. Far more efficient than 1 thread each sleeping!
* Add global comment to known its a true global singleton!
Added ListUser#toString
Changed TikTokLiveHttpClient.getStartingPayload and TikTokLiveHttpClient.getByteResponse to protected
Altered DownloadData to be dynamic to declare request values or append them instead!
- rename TikTokMapper to LiveMapper
- rename TikTokLiveMapperHelper to LiveMapperHelper
Create interface:
LiveEventsHandler for TikTokLiveEventHandler
LiveMessagesHandler for TikTokLiveMessageHandler
Updated LiveUserData.Request to throw an IllegalArgumentException when a null or blank username is provided
Updated HttpClientSettings to use setProxyClientSettings instead of direct access
Fixed ProxyRotation bug starting at index 1 instead of 0 and made methods default to synchronized in case concurrency is used in implementors code
Changed HttpClient#toUrl to toUri
Added @Getter to HttpClientFactory for liveClientSettings
Added consumer to TikTokLive#requests so that way proxies can be used when calling the fetch methods
Changed LiveUserData.Response#startTime to clarify the variable name
Updated descriptions in LiveClientSettings
Added new LiveHttpClient#fetchRoomGiftsData(String room_id) to fetch gifts for this specific room/livestream and altered GiftsDataMapper to reflect the new fetchRoomGiftsData and other TikTokLive client and http client classes
Changes:
Http-client settings in configure method
```
TikTokLive.newClient("X")
.configure(liveClientSettings ->
{
var httpSetting = liveClientSettings.getHttpSettings();
httpSetting.setTimeout(Duration.ofSeconds(12));
});
```
`TikTokLive.requests()` Easy and quick way of making
http request to tiktok
```
var giftsResponse =TikTokLive.request.fetchGiftsData();
```
Removed:
TikTokLive.isLiveOnline(String hostName);
TikTokLive.isHostNameValidAsync(String hostName);
instead you can use
```
TikTokLive.requests().fetchLiveUserData("Mike").getUserStatus()
```
New Events
- onLiveUnpaused()
- onRoomInfo() triggered when LiveRoomInfo got updated
Removed:
- clientSettings.setHandleExistingEvents
- onRoom Replaced with onRoomInfo event
- onRoomUserInfo Replaced with onRoomInfo event
Gifts:
- onGift event was not triggered for the more expensive gifts
- onGiftCombo with more expensive gifts was stuck in the GiftSendType.Begin state
Fixed:
- setPrintToConsole(false) was not disabling logs
- 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
LiveRoomInfo
+ new method getConnectionState() getting current state of connection
+ ListenersManager
getBindingModels() renamed to getListeners()
+ Introducing documentation, each public interface got small documentation
+ New property in config .setSessionId()
+ New event: onReconnecting()
Bugs:
CommentEvent was throwing mapping exception
`TikTokEventListener` new method of listening events
see it at TestApplication/ListenerExample.java
Bugs:
- Fixed bug: Websocket was sending ping after it was closed