* Fix: Add the missing API Key on send chat calls.
* Fix: Wrongly added the apiKey in the body instead of the param
* Update TikTokLiveHttpClient.java
We do not need to null check as Eulerstream verifies anyway so we can just pass whatever the value is.
* Update TikTokLiveHttpClient.java
Revert to your method, but using Header instead of Param, since HttpClient does not allow null values!
Co-authored-by: mbayou <mathieu@novasquare.io>
Co-authored-by: kohlerpop1 <70915561+kohlerpop1@users.noreply.github.com>
* 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!
Optimize picture download memory usage and add option to convert to unsigned url
Convert response data classes to final and add toString with `@Data`
Made sending requests dynamic by allowing passing of BodyHandler to class
Added ListUser#toString
Changed TikTokLiveHttpClient.getStartingPayload and TikTokLiveHttpClient.getByteResponse to protected
Altered DownloadData to be dynamic to declare request values or append them instead!
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()
```
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()
```
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()
```