mirror of
https://github.com/jwdeveloper/TikTokLiveJava.git
synced 2026-02-27 16:59:39 -05:00
Compare commits
7 Commits
0.0.9-Rele
...
0.0.11-Rel
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
321b7c0eda | ||
|
|
26c7db8f99 | ||
|
|
5f7ead2f05 | ||
|
|
dffae3a521 | ||
|
|
6254443755 | ||
|
|
c001eacbce | ||
|
|
1bbb704d14 |
@@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>TikTokLiveJava</artifactId>
|
<artifactId>TikTokLiveJava</artifactId>
|
||||||
<groupId>io.github.jwdeveloper.tiktok</groupId>
|
<groupId>io.github.jwdeveloper.tiktok</groupId>
|
||||||
<version>0.0.8-Release</version>
|
<version>0.0.10-Release</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<artifactId>API</artifactId>
|
<artifactId>API</artifactId>
|
||||||
|
|||||||
@@ -29,11 +29,6 @@ public class ClientSettings {
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
||||||
private String clientLanguage;
|
private String clientLanguage;
|
||||||
/// <summary>
|
|
||||||
/// Size for Buffer for Socket-Connection
|
|
||||||
/// </summary>
|
|
||||||
|
|
||||||
private int socketBufferSize;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Whether to Retry if Connection Fails
|
/// Whether to Retry if Connection Fails
|
||||||
@@ -69,8 +64,16 @@ public class ClientSettings {
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private boolean checkForUnparsedData;
|
private boolean checkForUnparsedData;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Tiktok user name
|
||||||
|
/// </summary>
|
||||||
private String hostName;
|
private String hostName;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Parameters used in requests to tiktok api
|
||||||
|
/// </summary>
|
||||||
private Map<String, Object> clientParameters;
|
private Map<String, Object> clientParameters;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -45,7 +45,6 @@ public class Constants {
|
|||||||
clientSettings.setHandleExistingMessagesOnConnect(true);
|
clientSettings.setHandleExistingMessagesOnConnect(true);
|
||||||
clientSettings.setDownloadGiftInfo(true);
|
clientSettings.setDownloadGiftInfo(true);
|
||||||
clientSettings.setRetryOnConnectionFailure(true);
|
clientSettings.setRetryOnConnectionFailure(true);
|
||||||
clientSettings.setSocketBufferSize(500_000);
|
|
||||||
clientSettings.setPrintToConsole(true);
|
clientSettings.setPrintToConsole(true);
|
||||||
clientSettings.setLogLevel(Level.ALL);
|
clientSettings.setLogLevel(Level.ALL);
|
||||||
clientSettings.setCheckForUnparsedData(false);
|
clientSettings.setCheckForUnparsedData(false);
|
||||||
|
|||||||
@@ -6,12 +6,10 @@ import lombok.Getter;
|
|||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public class TikTokIMDeleteEvent extends TikTokEvent {
|
public class TikTokIMDeleteEvent extends TikTokEvent {
|
||||||
private final String data1;
|
private final byte[] data;
|
||||||
private final String data2;
|
|
||||||
|
|
||||||
public TikTokIMDeleteEvent(WebcastImDeleteMessage msg) {
|
public TikTokIMDeleteEvent(WebcastImDeleteMessage msg) {
|
||||||
super(msg.getHeader());;
|
super(msg.getHeader());
|
||||||
data1 = msg.getData1();
|
data = msg.getData().toByteArray();
|
||||||
data2 = msg.getData2();
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -749,8 +749,7 @@ message WebcastHourlyRankMessage {
|
|||||||
// Message related to Chat-moderation?
|
// Message related to Chat-moderation?
|
||||||
message WebcastImDeleteMessage {
|
message WebcastImDeleteMessage {
|
||||||
MessageHeader header = 1;
|
MessageHeader header = 1;
|
||||||
string data1 = 2;
|
bytes data = 3;
|
||||||
string data2 = 3;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
message WebcastInRoomBannerMessage {
|
message WebcastInRoomBannerMessage {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>TikTokLiveJava</artifactId>
|
<artifactId>TikTokLiveJava</artifactId>
|
||||||
<groupId>io.github.jwdeveloper.tiktok</groupId>
|
<groupId>io.github.jwdeveloper.tiktok</groupId>
|
||||||
<version>0.0.8-Release</version>
|
<version>0.0.10-Release</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,4 @@ public class TikTokLive
|
|||||||
{
|
{
|
||||||
return new TikTokLiveClientBuilder(userName);
|
return new TikTokLiveClientBuilder(userName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,9 +48,6 @@ public class TikTokLiveClientBuilder implements TikTokEventBuilder<TikTokLiveCli
|
|||||||
clientSettings.setClientLanguage(Constants.DefaultClientSettings().getClientLanguage());
|
clientSettings.setClientLanguage(Constants.DefaultClientSettings().getClientLanguage());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (clientSettings.getSocketBufferSize() < 500_000) {
|
|
||||||
clientSettings.setSocketBufferSize(Constants.DefaultClientSettings().getSocketBufferSize());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (clientSettings.getHostName() == null || clientSettings.getHostName() .equals("")) {
|
if (clientSettings.getHostName() == null || clientSettings.getHostName() .equals("")) {
|
||||||
@@ -60,6 +57,8 @@ public class TikTokLiveClientBuilder implements TikTokEventBuilder<TikTokLiveCli
|
|||||||
var params = clientSettings.getClientParameters();
|
var params = clientSettings.getClientParameters();
|
||||||
params.put("app_language", clientSettings.getClientLanguage());
|
params.put("app_language", clientSettings.getClientLanguage());
|
||||||
params.put("webcast_language", clientSettings.getClientLanguage());
|
params.put("webcast_language", clientSettings.getClientLanguage());
|
||||||
|
|
||||||
|
logger.setLevel(clientSettings.getLogLevel());
|
||||||
}
|
}
|
||||||
|
|
||||||
public LiveClient build() {
|
public LiveClient build() {
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ public class WebResponseHandler extends WebResponseHandlerBase {
|
|||||||
var message = WebcastSocialMessage.parseFrom(msg.getBinary());
|
var message = WebcastSocialMessage.parseFrom(msg.getBinary());
|
||||||
|
|
||||||
String type = message.getHeader().getSocialData().getType();
|
String type = message.getHeader().getSocialData().getType();
|
||||||
Pattern pattern = Pattern.compile("pm_mt_guidance_viewer_([0-9]+)_share");
|
Pattern pattern = Pattern.compile("\\d+");
|
||||||
Matcher matcher = pattern.matcher(type);
|
Matcher matcher = pattern.matcher(type);
|
||||||
if (matcher.find()) {
|
if (matcher.find()) {
|
||||||
var value = matcher.group(0);
|
var value = matcher.group(0);
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ public abstract class WebResponseHandlerBase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleSingleMessage(WebcastResponse.Message message) throws Exception {
|
public void handleSingleMessage(WebcastResponse.Message message) throws Exception {
|
||||||
if (!handlers.containsKey(message.getType())) {
|
if (!handlers.containsKey(message.getType())) {
|
||||||
tikTokEventHandler.publish(new TikTokUnhandledEvent(message));
|
tikTokEventHandler.publish(new TikTokUnhandledEvent(message));
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -1,33 +1,22 @@
|
|||||||
package io.github.jwdeveloper.tiktok;
|
package io.github.jwdeveloper.tiktok;
|
||||||
|
|
||||||
import com.google.protobuf.InvalidProtocolBufferException;
|
import com.google.protobuf.InvalidProtocolBufferException;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastChatMessage;
|
import io.github.jwdeveloper.tiktok.common.TikTokBaseTest;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastGiftMessage;
|
import io.github.jwdeveloper.tiktok.messages.*;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastLikeMessage;
|
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastWebsocketMessage;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
public class ParseMessagesTests extends TikTokBaseTest
|
public class ParseMessagesTests extends TikTokBaseTest
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
// @Test
|
|
||||||
public void ShouldParseWebcastWebsocketMessage() throws InvalidProtocolBufferException {
|
|
||||||
var bytes = getFileBytesUtf("WebcastWebsocketMessage.bin");
|
|
||||||
var message = WebcastWebsocketMessage.parseFrom(bytes);
|
|
||||||
System.out.println("id: " + message.getId());
|
|
||||||
System.out.println("type: " + message.getType());
|
|
||||||
System.out.println("binary: " + message.getBinary().size());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void ShouldParseLikeMessage() throws InvalidProtocolBufferException {
|
public void ShouldParseMessageWebcastLikeMessage() throws InvalidProtocolBufferException {
|
||||||
var bytes = getFileBytesUtf("LikeMessage.bin");
|
var bytes = getFileBytesUtf("LikeMessage.bin");
|
||||||
var message = WebcastLikeMessage.parseFrom(bytes);
|
var message = WebcastLikeMessage.parseFrom(bytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void ShouldParseGiftMessage() throws InvalidProtocolBufferException {
|
public void ShouldParseMessageWebcastGiftMessage() throws InvalidProtocolBufferException {
|
||||||
var bytes = getFileBytesUtf("MessageWebcastGiftMessage.bin");
|
var bytes = getFileBytesUtf("MessageWebcastGiftMessage.bin");
|
||||||
var message = WebcastGiftMessage.parseFrom(bytes);
|
var message = WebcastGiftMessage.parseFrom(bytes);
|
||||||
}
|
}
|
||||||
@@ -37,5 +26,16 @@ public class ParseMessagesTests extends TikTokBaseTest
|
|||||||
var message = WebcastChatMessage.parseFrom(bytes);
|
var message = WebcastChatMessage.parseFrom(bytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void ShouldParseMessageWebcastImDeleteMessage() throws InvalidProtocolBufferException {
|
||||||
|
var bytes = getFileBytesUtf("MessageWebcastImDeleteMessage.bin");
|
||||||
|
var message = WebcastImDeleteMessage.parseFrom(bytes);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void ShouldParseMessageWebcastSocialMessage() throws InvalidProtocolBufferException {
|
||||||
|
var bytes = getFileBytesUtf("MessageWebcastSocialMessage.bin");
|
||||||
|
var message = WebcastSocialMessage.parseFrom(bytes);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
package io.github.jwdeveloper.tiktok;
|
||||||
|
|
||||||
|
import com.google.protobuf.InvalidProtocolBufferException;
|
||||||
|
import io.github.jwdeveloper.tiktok.common.TikTokBaseTest;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.messages.*;
|
||||||
|
import io.github.jwdeveloper.tiktok.handlers.TikTokEventHandler;
|
||||||
|
import io.github.jwdeveloper.tiktok.handlers.WebResponseHandler;
|
||||||
|
import io.github.jwdeveloper.tiktok.messages.WebcastResponse;
|
||||||
|
import io.github.jwdeveloper.tiktok.messages.WebcastSocialMessage;
|
||||||
|
import io.github.jwdeveloper.tiktok.models.SocialTypes;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
import static org.mockito.Mockito.mock;
|
||||||
|
|
||||||
|
public class WebResponseHandlerTests extends TikTokBaseTest
|
||||||
|
{
|
||||||
|
public static WebResponseHandler sut;
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void before()
|
||||||
|
{
|
||||||
|
var mockEventHandler = mock(TikTokEventHandler.class);
|
||||||
|
var mockGiftManager = mock(TikTokGiftManager.class);
|
||||||
|
sut = new WebResponseHandler(mockEventHandler, mockGiftManager);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.github.jwdeveloper.tiktok;
|
package io.github.jwdeveloper.tiktok.common;
|
||||||
|
|
||||||
import com.google.protobuf.InvalidProtocolBufferException;
|
import com.google.protobuf.InvalidProtocolBufferException;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastWebsocketMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastWebsocketMessage;
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
CjUKFldlYmNhc3RJbURlbGV0ZU1lc3NhZ2UQhZab+vyKvvJkGJKWhYz+o7DxZCC0sajzoTEwARoJhojH2ojIjaBk
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
CskHMAFChgcaDgoJI2ZmZmZmZmZmIJADIp8GCAsSDgoJI2ZmZmZmZmZmIJADqgGJBgqGBgiFiNKIpZnf0WIaCm1yIEEuTC5GLkFK/wQKxgFodHRwczovL3AxNi1zaWduLXVzZWFzdDJhLnRpa3Rva2Nkbi5jb20vdG9zLXVzZWFzdDJhLWF2dC0wMDY4LWV1dHRwLzkxODE3OWQ4MzQ0YWZiYjk3OTAzYjYyMGQwOTg1ZGEzfnRwbHYtdGlrdG9rLXNocmluazo3Mjo3Mi53ZWJwP3gtZXhwaXJlcz0xNjkyOTAwMDAwJngtc2lnbmF0dXJlPUE0RmtOWDMlMkIxNiUyRjlxeENvR1JReEczNFRnRUUlM0QKtAFodHRwczovL3AxNi1zaWduLXVzZWFzdDJhLnRpa3Rva2Nkbi5jb20vdG9zLXVzZWFzdDJhLWF2dC0wMDY4LWV1dHRwLzkxODE3OWQ4MzQ0YWZiYjk3OTAzYjYyMGQwOTg1ZGEzfmM1XzEwMHgxMDAud2VicD94LWV4cGlyZXM9MTY5MjkwMDAwMCZ4LXNpZ25hdHVyZT1EOHlYQUhNVGxGeUR5N3dqT3BXRllrUlBBWnclM0QKtgFodHRwczovL3AxNi1zaWduLXVzZWFzdDJhLnRpa3Rva2Nkbi5jb20vdG9zLXVzZWFzdDJhLWF2dC0wMDY4LWV1dHRwLzkxODE3OWQ4MzQ0YWZiYjk3OTAzYjYyMGQwOTg1ZGEzfmM1XzEwMHgxMDAuanBlZz94LWV4cGlyZXM9MTY5MjkwMDAwMCZ4LXNpZ25hdHVyZT1IYkIwNk00N2Y0JTJGT29jUWxla0gwREdDdkY3MCUzRBJEMTAweDEwMC90b3MtdXNlYXN0MmEtYXZ0LTAwNjgtZXV0dHAvOTE4MTc5ZDgzNDRhZmJiOTc5MDNiNjIwZDA5ODVkYTOyAQgI9h8Qmw0YAboBAIICALICCy56YXBpc3l3YW5l8gJMTVM0d0xqQUJBQUFBYXdVMzNGbnBIYllkMHdra1djeC1DTnBzeDdXT0lqOXdtOTBwQ2tRUmZPekJuZVdZczdXT0plSm5GVU5kdFh0MwoecG1fbXRfZ3VpZGFuY2Vfdmlld2VyXzEwX3NoYXJlEjJ7MDp1c2VyfSBzaGFyZWQgdGhlIExJVkUgd2l0aCBtb3JlIHRoYW4gMTAgZnJpZW5kc1ACsAEFwAECChRXZWJjYXN0U29jaWFsTWVzc2FnZRCglsC+2OG+8mQYoJaZxvrevPJkIOTf0vOhMUgBuAECEoYGSv8ECsYBaHR0cHM6Ly9wMTYtc2lnbi11c2Vhc3QyYS50aWt0b2tjZG4uY29tL3Rvcy11c2Vhc3QyYS1hdnQtMDA2OC1ldXR0cC85MTgxNzlkODM0NGFmYmI5NzkwM2I2MjBkMDk4NWRhM350cGx2LXRpa3Rvay1zaHJpbms6NzI6NzIud2VicD94LWV4cGlyZXM9MTY5MjkwMDAwMCZ4LXNpZ25hdHVyZT1BNEZrTlgzJTJCMTYlMkY5cXhDb0dSUXhHMzRUZ0VFJTNECrQBaHR0cHM6Ly9wMTYtc2lnbi11c2Vhc3QyYS50aWt0b2tjZG4uY29tL3Rvcy11c2Vhc3QyYS1hdnQtMDA2OC1ldXR0cC85MTgxNzlkODM0NGFmYmI5NzkwM2I2MjBkMDk4NWRhM35jNV8xMDB4MTAwLndlYnA/eC1leHBpcmVzPTE2OTI5MDAwMDAmeC1zaWduYXR1cmU9RDh5WEFITVRsRnlEeTd3ak9wV0ZZa1JQQVp3JTNECrYBaHR0cHM6Ly9wMTYtc2lnbi11c2Vhc3QyYS50aWt0b2tjZG4uY29tL3Rvcy11c2Vhc3QyYS1hdnQtMDA2OC1ldXR0cC85MTgxNzlkODM0NGFmYmI5NzkwM2I2MjBkMDk4NWRhM35jNV8xMDB4MTAwLmpwZWc/eC1leHBpcmVzPTE2OTI5MDAwMDAmeC1zaWduYXR1cmU9SGJCMDZNNDdmNCUyRk9vY1FsZWtIMERHQ3ZGNzAlM0QSRDEwMHgxMDAvdG9zLXVzZWFzdDJhLWF2dC0wMDY4LWV1dHRwLzkxODE3OWQ4MzQ0YWZiYjk3OTAzYjYyMGQwOTg1ZGEzsgEIEJsNGAEI9h+6AQCCAgCyAgsuemFwaXN5d2FuZfICTE1TNHdMakFCQUFBQWF3VTMzRm5wSGJZZDB3a2tXY3gtQ05wc3g3V09Jajl3bTkwcENrUVJmT3pCbmVXWXM3V09KZUpuRlVOZHRYdDMIhYjSiKWZ39FiGgptciBBLkwuRi5BGAEgAyoCLTFAGQ==
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
ŔĆł»›„ÖF¸E *
|
|
||||||
|
|
||||||
compress_typenone2pb:msgBš
|
|
||||||
Ű
|
|
||||||
WebcastLikeMessageş
|
|
||||||
|
|
||||||
WebcastLikeMessageˇ–¤ŚöÍííd –żÚřęëíd0BŔ
|
|
||||||
pm_mt_msg_viewer{0:user} liked the LIVE
|
|
||||||
#ffffffff "‚
|
|
||||||
Ş}
|
|
||||||
{ ”‚•ÉÔëdhulajnoga czek˛hulajnoga.czek5ňLMS4wLjABAAAAx4-lIrRjH0pMT0D3laROVsnU-4u6P1tN4td82AQTCHjKZ-CHaF_DluNSFQQp1s4DHP°¸Ŕ ĆЂҟ1†q*Ü ”‚•ÉÔëdhulajnoga czek˛ş ˛hulajnoga.czek5J˙
|
|
||||||
Čhttps://p16-sign-useast2a.tiktokcdn.com/tos-useast2a-avt-0068-euttp/26aa68e29831ff0c9d4fb37875efffdd~tplv-tiktok-shrink:72:72.webp?x-expires=1692291600&x-signature=Z2ZM2T%2FckIxKSj%2BJY%2BONoypyMwo%3D
|
|
||||||
´https://p16-sign-useast2a.tiktokcdn.com/tos-useast2a-avt-0068-euttp/26aa68e29831ff0c9d4fb37875efffdd~c5_100x100.webp?x-expires=1692291600&x-signature=gJgrVHIZWnVCif4Z6gXuhnl1pn8%3D
|
|
||||||
´https://p16-sign-useast2a.tiktokcdn.com/tos-useast2a-avt-0068-euttp/26aa68e29831ff0c9d4fb37875efffdd~c5_100x100.jpeg?x-expires=1692291600&x-signature=ITqTLj6v7UVl12HeeGa6a6FYNpc%3DD100x100/tos-useast2a-avt-0068-euttp/26aa68e29831ff0c9d4fb37875efffddŞ0‚ ňLMS4wLjABAAAAx4-lIrRjH0pMT0D3laROVsnU-4u6P1tN4td82AQTCHjKZ-CHaF_DluNSFQQp1s4D‚îR„sslocal://webcast_webview_popup?gravity=bottom&show_mask=1&url=https%3A%2F%2Flf16-web.tiktokcdn.com%2Fobj%2Fies-hotsoon-draft-sg%2Ftiktok-live-faq%2Ftiktok_live_revenue_new_gifter_details.html&web_bg_color=FFFFFF&height=60%25&mask_bg_color=000000b3&use_spark=1b:"10000037267585271263611681*0
|
|
||||||
271541203697319145231Ş pm_mt_live_ng_im
|
|
||||||
New gifter( ‚Ü Résslocal://webcast_lynxview_popup?use_spark=1&url=https%3A%2F%2Flf16-gecko-source.tiktokcdn.com%2Fobj%2Fbyte-gurd-source-sg%2Ftiktok%2Ffe%2Flive%2Ftiktok_live_revenue_user_level_main%2Fsrc%2Fpages%2Fprivilege%2Fpanel%2Ftemplate.js&hide_status_bar=0&hide_nav_bar=1&container_bg_color=00000000&height=90%25&bdhm_bid=tiktok_live_revenue_user_level_main&use_forest=1XbN
|
|
||||||
271383811767874578280".mock_fix_width_transparent_7138381176787457828*2ş’Ő+webcast-va/grade_badge_icon_lite_lv1_v1.png:ésslocal://webcast_lynxview_popup?use_spark=1&url=https%3A%2F%2Flf16-gecko-source.tiktokcdn.com%2Fobj%2Fbyte-gurd-source-sg%2Ftiktok%2Ffe%2Flive%2Ftiktok_live_revenue_user_level_main%2Fsrc%2Fpages%2Fprivilege%2Fpanel%2Ftemplate.js&hide_status_bar=0&hide_nav_bar=1&container_bg_color=00000000&height=90%25&bdhm_bid=tiktok_live_revenue_user_level_main&use_forest=1
|
|
||||||
\https://p16-webcast.tiktokcdn.com/webcast-va/grade_badge_icon_lite_lv1_v1.png~tplv-obj.image
|
|
||||||
\https://p19-webcast.tiktokcdn.com/webcast-va/grade_badge_icon_lite_lv1_v1.png~tplv-obj.image"2* b
|
|
||||||
#99789EE7x2 : " Z
|
|
||||||
#99789EE7€‚÷( R„sslocal://webcast_webview_popup?gravity=bottom&show_mask=1&url=https%3A%2F%2Flf16-web.tiktokcdn.com%2Fobj%2Fies-hotsoon-draft-sg%2Ftiktok-live-faq%2Ftiktok_live_revenue_new_gifter_details.html&web_bg_color=FFFFFF&height=60%25&mask_bg_color=000000b3&use_spark=1Xb:
|
|
||||||
271541203697319145231"10000037267585271263611681*0ş¦x€Ű 0:„sslocal://webcast_webview_popup?gravity=bottom&show_mask=1&url=https%3A%2F%2Flf16-web.tiktokcdn.com%2Fobj%2Fies-hotsoon-draft-sg%2Ftiktok-live-faq%2Ftiktok_live_revenue_new_gifter_details.html&web_bg_color=FFFFFF&height=60%25&mask_bg_color=000000b3&use_spark=1
|
|
||||||
Shttps://p16-webcast.tiktokcdn.com/webcast-va/new_gifter_badge_v3.png~tplv-obj.image
|
|
||||||
Shttps://p19-webcast.tiktokcdn.com/webcast-va/new_gifter_badge_v3.png~tplv-obj.image"webcast-va/new_gifter_badge_v3.png
|
|
||||||
pm_mt_live_ng_im
|
|
||||||
New gifterZ
|
|
||||||
#803F3F3Fb
|
|
||||||
#803F3F3FBÍ†Ë”Ź¨Á‚cŔ
|
|
||||||
pm_mt_msg_viewer{0:user} liked the LIVE
|
|
||||||
#ffffffff "‚
|
|
||||||
Ş}
|
|
||||||
{˛hulajnoga.czek5ňLMS4wLjABAAAAx4-lIrRjH0pMT0D3laROVsnU-4u6P1tN4td82AQTCHjKZ-CHaF_DluNSFQQp1s4D ”‚•ÉÔëdhulajnoga czekHˇ–¤ŚöÍííd)1692120689751_7267603020139989890_1_1_0_0č ×؂ҟ1*-@H
|
|
||||||
@@ -51,7 +51,7 @@ Do you prefer other programming languages?
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.github.jwdeveloper</groupId>
|
<groupId>com.github.jwdeveloper</groupId>
|
||||||
<artifactId>TikTok-Live-Java</artifactId>
|
<artifactId>TikTok-Live-Java</artifactId>
|
||||||
<version>0.0.8-Release</version>
|
<version>0.0.10-Release</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>TikTokLiveJava</artifactId>
|
<artifactId>TikTokLiveJava</artifactId>
|
||||||
<groupId>io.github.jwdeveloper.tiktok</groupId>
|
<groupId>io.github.jwdeveloper.tiktok</groupId>
|
||||||
<version>0.0.8-Release</version>
|
<version>0.0.10-Release</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import java.io.IOException;
|
|||||||
|
|
||||||
public class Main {
|
public class Main {
|
||||||
|
|
||||||
public static String TEST_USER_SUBJECT = "stiflerhub";
|
public static String TEST_USER_SUBJECT = "mr_cios";
|
||||||
|
|
||||||
public static void main(String[] args) throws IOException {
|
public static void main(String[] args) throws IOException {
|
||||||
var client = TikTokLive.newClient(TEST_USER_SUBJECT)
|
var client = TikTokLive.newClient(TEST_USER_SUBJECT)
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import java.io.IOException;
|
|||||||
public class SimpleExample {
|
public class SimpleExample {
|
||||||
public static void main(String[] args) throws IOException {
|
public static void main(String[] args) throws IOException {
|
||||||
// Username of someone who is currently live
|
// Username of someone who is currently live
|
||||||
var tiktokUsername = "szwagierkaqueen";
|
var tiktokUsername = "mr_cios";
|
||||||
|
|
||||||
TikTokLive.newClient(tiktokUsername)
|
TikTokLive.newClient(tiktokUsername)
|
||||||
.configure(settings ->
|
.configure(settings ->
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>TikTokLiveJava</artifactId>
|
<artifactId>TikTokLiveJava</artifactId>
|
||||||
<groupId>io.github.jwdeveloper.tiktok</groupId>
|
<groupId>io.github.jwdeveloper.tiktok</groupId>
|
||||||
<version>0.0.8-Release</version>
|
<version>0.0.10-Release</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
|||||||
2
pom.xml
2
pom.xml
@@ -7,7 +7,7 @@
|
|||||||
<groupId>io.github.jwdeveloper.tiktok</groupId>
|
<groupId>io.github.jwdeveloper.tiktok</groupId>
|
||||||
<artifactId>TikTokLiveJava</artifactId>
|
<artifactId>TikTokLiveJava</artifactId>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
<version>0.0.8-Release</version>
|
<version>0.0.10-Release</version>
|
||||||
<modules>
|
<modules>
|
||||||
<module>API</module>
|
<module>API</module>
|
||||||
<module>Client</module>
|
<module>Client</module>
|
||||||
|
|||||||
Reference in New Issue
Block a user