mirror of
https://github.com/jwdeveloper/TikTokLiveJava.git
synced 2026-02-27 16:59:39 -05:00
Compare commits
84 Commits
0.0.4-Rele
...
0.0.21-Rel
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e6dcc8f5fd | ||
|
|
d87506da88 | ||
|
|
084e787838 | ||
|
|
ff9e75505d | ||
|
|
08379994fd | ||
|
|
cc871c70f6 | ||
|
|
32294cc3ec | ||
|
|
cea19abda7 | ||
|
|
30117917de | ||
|
|
11da8bf009 | ||
|
|
97f57912ad | ||
|
|
e2ccfee399 | ||
|
|
edba573ecc | ||
|
|
d61697dbff | ||
|
|
daf8242f6e | ||
|
|
4a157143ec | ||
|
|
defebc92ce | ||
|
|
c267392888 | ||
|
|
818c4cb364 | ||
|
|
911e2b12a5 | ||
|
|
1aff710523 | ||
|
|
c0f8e6d904 | ||
|
|
b059afd621 | ||
|
|
1275878822 | ||
|
|
761f3ab633 | ||
|
|
66def92316 | ||
|
|
cc85d7c124 | ||
|
|
384cfade5a | ||
|
|
483dceadcf | ||
|
|
5f8cba5126 | ||
|
|
f9966c9a5f | ||
|
|
48a79736ad | ||
|
|
eb82d0df78 | ||
|
|
4ed821925d | ||
|
|
6e9244aa67 | ||
|
|
fadb1ab267 | ||
|
|
4273375eb9 | ||
|
|
3daeee6316 | ||
|
|
cde38df1b3 | ||
|
|
15d6351d65 | ||
|
|
44ba999b83 | ||
|
|
5cf0d30962 | ||
|
|
71ebc6e05e | ||
|
|
c6d09927a0 | ||
|
|
f03cb14262 | ||
|
|
d9ef60ccad | ||
|
|
6fb89e72d4 | ||
|
|
230764ed6a | ||
|
|
b9a4fb193e | ||
|
|
af209fc2ca | ||
|
|
74bfe0b9e7 | ||
|
|
3545167873 | ||
|
|
c22483043d | ||
|
|
8155d49366 | ||
|
|
321b7c0eda | ||
|
|
26c7db8f99 | ||
|
|
5f7ead2f05 | ||
|
|
dffae3a521 | ||
|
|
6254443755 | ||
|
|
c001eacbce | ||
|
|
1bbb704d14 | ||
|
|
8c3a5c6627 | ||
|
|
470b154c5e | ||
|
|
2391b12598 | ||
|
|
cb68050e24 | ||
|
|
a9e347b8da | ||
|
|
73823c82ea | ||
|
|
e0542d39af | ||
|
|
d33dab0a98 | ||
|
|
32cb1e0d8f | ||
|
|
3210707bce | ||
|
|
e7f9d6e9d5 | ||
|
|
03001d607d | ||
|
|
cbabad0888 | ||
|
|
09c531e9f4 | ||
|
|
997c8d399e | ||
|
|
668f28e357 | ||
|
|
b332c2f5d8 | ||
|
|
5be113cbc8 | ||
|
|
e0287aaa96 | ||
|
|
8e2759cb1e | ||
|
|
fb9a48376b | ||
|
|
3741351b7b | ||
|
|
7eed221bab |
9
.github/workflows/maven-publish.yml
vendored
9
.github/workflows/maven-publish.yml
vendored
@@ -1,4 +1,4 @@
|
|||||||
name: Publish Artifacts
|
name: Publish New Version
|
||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
@@ -32,7 +32,6 @@ jobs:
|
|||||||
change_path: "."
|
change_path: "."
|
||||||
short_tags: false
|
short_tags: false
|
||||||
bump_each_commit: false
|
bump_each_commit: false
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
- name: 2.7 Update version in pom.xml (Release only)
|
- name: 2.7 Update version in pom.xml (Release only)
|
||||||
@@ -74,6 +73,12 @@ jobs:
|
|||||||
git config --local user.email "action@github.com"
|
git config --local user.email "action@github.com"
|
||||||
git config --local user.name "GitHub Action"
|
git config --local user.name "GitHub Action"
|
||||||
git add pom.xml
|
git add pom.xml
|
||||||
|
git add API/pom.xml
|
||||||
|
git add Client/pom.xml
|
||||||
|
git add TestApplication/pom.xml
|
||||||
|
git add Tools-EventsCollector/pom.xml
|
||||||
|
git add Tools-ReadmeGenerator/pom.xml
|
||||||
|
git add Tools/pom.xml
|
||||||
git commit -m "Update version in pom.xml"
|
git commit -m "Update version in pom.xml"
|
||||||
- name: Push changes
|
- name: Push changes
|
||||||
uses: ad-m/github-push-action@master
|
uses: ad-m/github-push-action@master
|
||||||
|
|||||||
81
.gitignore
vendored
81
.gitignore
vendored
@@ -1,3 +1,82 @@
|
|||||||
# Project exclude paths
|
# Project exclude paths
|
||||||
/API/target/
|
/API/target/
|
||||||
/Client/target/
|
/Client/target/
|
||||||
|
*.db
|
||||||
|
|
||||||
|
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
|
||||||
|
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
||||||
|
|
||||||
|
# User-specific stuff
|
||||||
|
.idea/**/workspace.xml
|
||||||
|
.idea/**/tasks.xml
|
||||||
|
.idea/**/usage.statistics.xml
|
||||||
|
.idea/**/dictionaries
|
||||||
|
.idea/**/shelf
|
||||||
|
|
||||||
|
# AWS User-specific
|
||||||
|
.idea/**/aws.xml
|
||||||
|
|
||||||
|
# Generated files
|
||||||
|
.idea/**/contentModel.xml
|
||||||
|
|
||||||
|
# Sensitive or high-churn files
|
||||||
|
.idea/**/dataSources/
|
||||||
|
.idea/**/dataSources.ids
|
||||||
|
.idea/**/dataSources.local.xml
|
||||||
|
.idea/**/sqlDataSources.xml
|
||||||
|
.idea/**/dynamic.xml
|
||||||
|
.idea/**/uiDesigner.xml
|
||||||
|
.idea/**/dbnavigator.xml
|
||||||
|
|
||||||
|
# Gradle
|
||||||
|
.idea/**/gradle.xml
|
||||||
|
.idea/**/libraries
|
||||||
|
|
||||||
|
# Gradle and Maven with auto-import
|
||||||
|
# When using Gradle or Maven with auto-import, you should exclude module files,
|
||||||
|
# since they will be recreated, and may cause churn. Uncomment if using
|
||||||
|
# auto-import.
|
||||||
|
# .idea/artifacts
|
||||||
|
# .idea/compiler.xml
|
||||||
|
# .idea/jarRepositories.xml
|
||||||
|
# .idea/modules.xml
|
||||||
|
# .idea/*.iml
|
||||||
|
# .idea/modules
|
||||||
|
# *.iml
|
||||||
|
# *.ipr
|
||||||
|
|
||||||
|
# CMake
|
||||||
|
cmake-build-*/
|
||||||
|
|
||||||
|
# Mongo Explorer plugin
|
||||||
|
.idea/**/mongoSettings.xml
|
||||||
|
|
||||||
|
# File-based project format
|
||||||
|
*.iws
|
||||||
|
|
||||||
|
# IntelliJ
|
||||||
|
out/
|
||||||
|
|
||||||
|
# mpeltonen/sbt-idea plugin
|
||||||
|
.idea_modules/
|
||||||
|
|
||||||
|
# JIRA plugin
|
||||||
|
atlassian-ide-plugin.xml
|
||||||
|
|
||||||
|
# Cursive Clojure plugin
|
||||||
|
.idea/replstate.xml
|
||||||
|
|
||||||
|
# SonarLint plugin
|
||||||
|
.idea/sonarlint/
|
||||||
|
|
||||||
|
# Crashlytics plugin (for Android Studio and IntelliJ)
|
||||||
|
com_crashlytics_export_strings.xml
|
||||||
|
crashlytics.properties
|
||||||
|
crashlytics-build.properties
|
||||||
|
fabric.properties
|
||||||
|
|
||||||
|
# Editor-based Rest Client
|
||||||
|
.idea/httpRequests
|
||||||
|
|
||||||
|
# Android studio 3.1+ serialized cache file
|
||||||
|
.idea/caches/build_file_checksums.ser
|
||||||
@@ -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>1.0.0</version>
|
<version>0.0.20-Release</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<artifactId>API</artifactId>
|
<artifactId>API</artifactId>
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package io.github.jwdeveloper.tiktok;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@@ -10,62 +12,60 @@ public class ClientSettings {
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Timeout for Connections
|
/// Timeout for Connections
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
private Duration timeout;
|
||||||
private Duration Timeout;
|
|
||||||
/// <summary>
|
|
||||||
/// Polling-Interval for Socket-Connection
|
|
||||||
/// </summary
|
|
||||||
|
|
||||||
private Duration PollingInterval;
|
|
||||||
/// <summary>
|
|
||||||
/// Proxy for Connection
|
|
||||||
/// </summary>
|
|
||||||
|
|
||||||
// public RotatingProxy Proxy;
|
// public RotatingProxy Proxy;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ISO-Language for Client
|
/// ISO-Language for Client
|
||||||
/// </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
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private boolean RetryOnConnectionFailure;
|
private boolean retryOnConnectionFailure;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Wait to connect again for selected amount of time
|
||||||
|
/// </summary>
|
||||||
|
private Duration retryConnectionTimeout;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Whether to handle Messages received from Room when Connecting
|
/// Whether to handle Messages received from Room when Connecting
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private boolean HandleExistingMessagesOnConnect;
|
private boolean handleExistingMessagesOnConnect;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Whether to download List of Gifts for Room when Connecting
|
/// Whether to download List of Gifts for Room when Connecting
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private boolean DownloadGiftInfo;
|
private boolean downloadGiftInfo;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Whether to print Logs to Console
|
/// Whether to print Logs to Console
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
||||||
private boolean PrintToConsole;
|
private boolean printToConsole;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// LoggingLevel for Logs
|
/// LoggingLevel for Logs
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private Level LogLevel;
|
private Level logLevel;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Whether to print Base64-Data for Messages to Console
|
/// Whether to print Base64-Data for Messages to Console
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private boolean PrintMessageData;
|
private boolean printMessageData;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Whether to check Messages for Unparsed Data
|
/// Tiktok user name
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private boolean CheckForUnparsedData;
|
private String hostName;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Parameters used in requests to tiktok api
|
||||||
|
/// </summary>
|
||||||
|
private Map<String, Object> clientParameters;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -39,18 +39,16 @@ public class Constants {
|
|||||||
|
|
||||||
public static ClientSettings DefaultClientSettings() {
|
public static ClientSettings DefaultClientSettings() {
|
||||||
var clientSettings = new ClientSettings();
|
var clientSettings = new ClientSettings();
|
||||||
|
|
||||||
clientSettings.setTimeout(Duration.ofSeconds(DEFAULT_TIMEOUT));
|
clientSettings.setTimeout(Duration.ofSeconds(DEFAULT_TIMEOUT));
|
||||||
clientSettings.setPollingInterval(Duration.ofSeconds(DEFAULT_POLLTIME));
|
|
||||||
clientSettings.setClientLanguage("en-US");
|
clientSettings.setClientLanguage("en-US");
|
||||||
clientSettings.setHandleExistingMessagesOnConnect(true);
|
clientSettings.setHandleExistingMessagesOnConnect(true);
|
||||||
clientSettings.setDownloadGiftInfo(true);
|
clientSettings.setDownloadGiftInfo(true);
|
||||||
clientSettings.setRetryOnConnectionFailure(true);
|
clientSettings.setRetryOnConnectionFailure(false);
|
||||||
clientSettings.setSocketBufferSize(500_000);
|
clientSettings.setRetryConnectionTimeout(Duration.ofSeconds(1));
|
||||||
clientSettings.setPrintToConsole(true);
|
clientSettings.setPrintToConsole(false);
|
||||||
clientSettings.setLogLevel(Level.ALL);
|
clientSettings.setLogLevel(Level.ALL);
|
||||||
clientSettings.setCheckForUnparsedData(false);
|
|
||||||
clientSettings.setPrintMessageData(false);
|
clientSettings.setPrintMessageData(false);
|
||||||
|
clientSettings.setClientParameters(Constants.DefaultClientParams());
|
||||||
return clientSettings;
|
return clientSettings;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package io.github.jwdeveloper.tiktok.annotations;
|
||||||
|
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
public @interface EventMeta
|
||||||
|
{
|
||||||
|
EventType eventType();
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package io.github.jwdeveloper.tiktok.annotations;
|
||||||
|
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
|
||||||
|
|
||||||
|
public enum EventType
|
||||||
|
{
|
||||||
|
Control, Message, Custom
|
||||||
|
}
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
package io.github.jwdeveloper.tiktok.annotations;
|
|
||||||
|
|
||||||
public @interface Nullable {
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package io.github.jwdeveloper.tiktok.annotations;
|
||||||
|
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
public @interface TikTokEventHandler
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
@@ -3,39 +3,11 @@ package io.github.jwdeveloper.tiktok.events;
|
|||||||
import io.github.jwdeveloper.tiktok.messages.*;
|
import io.github.jwdeveloper.tiktok.messages.*;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
|
/*
|
||||||
|
Base class for all events
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
public class TikTokEvent {
|
public abstract class TikTokEvent
|
||||||
private long messageId;
|
{
|
||||||
private long roomId;
|
|
||||||
private long timeStamp;
|
|
||||||
|
|
||||||
public TikTokEvent(MessageHeader header) {
|
|
||||||
this(header.getMessageId(),header.getRoomId(), header.getTimeStamp1());
|
|
||||||
}
|
|
||||||
|
|
||||||
public TikTokEvent(GiftMessageHeader header) {
|
|
||||||
this(header.getMessageId(),header.getRoomId(), header.getTimeStamp1());
|
|
||||||
}
|
|
||||||
|
|
||||||
public TikTokEvent(MemberMessageHeader header) {
|
|
||||||
this(header.getMessageId(),header.getRoomId(), header.getTimeStamp1());
|
|
||||||
}
|
|
||||||
|
|
||||||
public TikTokEvent(SocialMessageHeader header) {
|
|
||||||
this(header.getMessageId(),header.getRoomId(), header.getTimeStamp1());
|
|
||||||
}
|
|
||||||
|
|
||||||
public TikTokEvent(LikeMessageHeader header) {
|
|
||||||
this(header.getMessageId(),header.getRoomId(), header.getTimeStamp1());
|
|
||||||
}
|
|
||||||
|
|
||||||
public TikTokEvent(long messageId, long roomId, long timeStamp) {
|
|
||||||
this.messageId = messageId;
|
|
||||||
this.roomId = roomId;
|
|
||||||
this.timeStamp = timeStamp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public TikTokEvent() {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,94 +2,94 @@ package io.github.jwdeveloper.tiktok.events;
|
|||||||
|
|
||||||
import io.github.jwdeveloper.tiktok.events.messages.*;
|
import io.github.jwdeveloper.tiktok.events.messages.*;
|
||||||
|
|
||||||
import java.util.function.Consumer;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public interface TikTokEventBuilder<T> {
|
public interface TikTokEventBuilder<T> {
|
||||||
T onUnhandledSocial(Consumer<TikTokUnhandledSocialEvent> event);
|
T onUnhandledSocial(TikTokEventConsumer<TikTokUnhandledSocialEvent> event);
|
||||||
|
|
||||||
T onLinkMicFanTicket(Consumer<TikTokLinkMicFanTicketEvent> event);
|
T onLinkMicFanTicket(TikTokEventConsumer<TikTokLinkMicFanTicketEvent> event);
|
||||||
|
|
||||||
T onEnvelope(Consumer<TikTokEnvelopeEvent> event);
|
T onEnvelope(TikTokEventConsumer<TikTokEnvelopeEvent> event);
|
||||||
|
|
||||||
T onShopMessage(Consumer<TikTokShopMessageEvent> event);
|
T onShopMessage(TikTokEventConsumer<TikTokShopMessageEvent> event);
|
||||||
|
|
||||||
T onDetectMessage(Consumer<TikTokDetectMessageEvent> event);
|
T onDetectMessage(TikTokEventConsumer<TikTokDetectMessageEvent> event);
|
||||||
|
|
||||||
T onLinkLayerMessage(Consumer<TikTokLinkLayerMessageEvent> event);
|
T onLinkLayerMessage(TikTokEventConsumer<TikTokLinkLayerMessageEvent> event);
|
||||||
|
|
||||||
T onConnected(Consumer<TikTokConnectedEvent> event);
|
T onConnected(TikTokEventConsumer<TikTokConnectedEvent> event);
|
||||||
|
|
||||||
T onCaption(Consumer<TikTokCaptionEvent> event);
|
T onCaption(TikTokEventConsumer<TikTokCaptionEvent> event);
|
||||||
|
|
||||||
T onQuestion(Consumer<TikTokQuestionEvent> event);
|
T onQuestion(TikTokEventConsumer<TikTokQuestionEvent> event);
|
||||||
|
|
||||||
T onRoomPinMessage(Consumer<TikTokRoomPinMessageEvent> event);
|
T onRoomPinMessage(TikTokEventConsumer<TikTokRoomPinMessageEvent> event);
|
||||||
|
|
||||||
T onRoomMessage(Consumer<TikTokRoomMessageEvent> event);
|
T onRoomMessage(TikTokEventConsumer<TikTokRoomMessageEvent> event);
|
||||||
|
|
||||||
T onLivePaused(Consumer<TikTokLivePausedEvent> event);
|
T onLivePaused(TikTokEventConsumer<TikTokLivePausedEvent> event);
|
||||||
|
|
||||||
T onLike(Consumer<TikTokLikeEvent> event);
|
T onLike(TikTokEventConsumer<TikTokLikeEvent> event);
|
||||||
|
|
||||||
T onLinkMessage(Consumer<TikTokLinkMessageEvent> event);
|
T onLinkMessage(TikTokEventConsumer<TikTokLinkMessageEvent> event);
|
||||||
|
|
||||||
T onBarrageMessage(Consumer<TikTokBarrageMessageEvent> event);
|
T onBarrageMessage(TikTokEventConsumer<TikTokBarrageMessageEvent> event);
|
||||||
|
|
||||||
T onGiftMessage(Consumer<TikTokGiftMessageEvent> event);
|
T onGiftMessage(TikTokEventConsumer<TikTokGiftMessageEvent> event);
|
||||||
|
|
||||||
T onLinkMicArmies(Consumer<TikTokLinkMicArmiesEvent> event);
|
T onLinkMicArmies(TikTokEventConsumer<TikTokLinkMicArmiesEvent> event);
|
||||||
|
|
||||||
T onEmote(Consumer<TikTokEmoteEvent> event);
|
T onEmote(TikTokEventConsumer<TikTokEmoteEvent> event);
|
||||||
|
|
||||||
T onUnauthorizedMember(Consumer<TikTokUnauthorizedMemberEvent> event);
|
T onUnauthorizedMember(TikTokEventConsumer<TikTokUnauthorizedMemberEvent> event);
|
||||||
|
|
||||||
T onInRoomBanner(Consumer<TikTokInRoomBannerEvent> event);
|
T onInRoomBanner(TikTokEventConsumer<TikTokInRoomBannerEvent> event);
|
||||||
|
|
||||||
T onLinkMicMethod(Consumer<TikTokLinkMicMethodEvent> event);
|
T onLinkMicMethod(TikTokEventConsumer<TikTokLinkMicMethodEvent> event);
|
||||||
|
|
||||||
T onSubscribe(Consumer<TikTokSubscribeEvent> event);
|
T onSubscribe(TikTokEventConsumer<TikTokSubscribeEvent> event);
|
||||||
|
|
||||||
T onPollMessage(Consumer<TikTokPollMessageEvent> event);
|
T onPollMessage(TikTokEventConsumer<TikTokPollMessageEvent> event);
|
||||||
|
|
||||||
T onFollow(Consumer<TikTokFollowEvent> event);
|
T onFollow(TikTokEventConsumer<TikTokFollowEvent> event);
|
||||||
|
|
||||||
T onRoomViewerData(Consumer<TikTokRoomViewerDataEvent> event);
|
T onRoomViewerData(TikTokEventConsumer<TikTokRoomViewerDataEvent> event);
|
||||||
|
|
||||||
T onGoalUpdate(Consumer<TikTokGoalUpdateEvent> event);
|
T onGoalUpdate(TikTokEventConsumer<TikTokGoalUpdateEvent> event);
|
||||||
|
|
||||||
T onComment(Consumer<TikTokCommentEvent> event);
|
T onComment(TikTokEventConsumer<TikTokCommentEvent> event);
|
||||||
|
|
||||||
T onRankUpdate(Consumer<TikTokRankUpdateEvent> event);
|
T onRankUpdate(TikTokEventConsumer<TikTokRankUpdateEvent> event);
|
||||||
|
|
||||||
T onIMDelete(Consumer<TikTokIMDeleteEvent> event);
|
T onIMDelete(TikTokEventConsumer<TikTokIMDeleteEvent> event);
|
||||||
|
|
||||||
T onLiveEnded(Consumer<TikTokLiveEndedEvent> event);
|
T onLiveEnded(TikTokEventConsumer<TikTokLiveEndedEvent> event);
|
||||||
|
|
||||||
T onError(Consumer<TikTokErrorEvent> event);
|
T onError(TikTokEventConsumer<TikTokErrorEvent> event);
|
||||||
|
|
||||||
T onUnhandled(Consumer<TikTokUnhandledEvent> event);
|
T onUnhandled(TikTokEventConsumer<TikTokUnhandledWebsocketMessageEvent> event);
|
||||||
|
|
||||||
T onJoin(Consumer<TikTokJoinEvent> event);
|
T onJoin(TikTokEventConsumer<TikTokJoinEvent> event);
|
||||||
|
|
||||||
T onRankText(Consumer<TikTokRankTextEvent> event);
|
T onRankText(TikTokEventConsumer<TikTokRankTextEvent> event);
|
||||||
|
|
||||||
T onShare(Consumer<TikTokShareEvent> event);
|
T onShare(TikTokEventConsumer<TikTokShareEvent> event);
|
||||||
|
|
||||||
T onUnhandledMember(Consumer<TikTokUnhandledMemberEvent> event);
|
T onUnhandledMember(TikTokEventConsumer<TikTokUnhandledMemberEvent> event);
|
||||||
|
|
||||||
T onSubNotify(Consumer<TikTokSubNotifyEvent> event);
|
T onSubNotify(TikTokEventConsumer<TikTokSubNotifyEvent> event);
|
||||||
|
|
||||||
T onLinkMicBattle(Consumer<TikTokLinkMicBattleEvent> event);
|
T onLinkMicBattle(TikTokEventConsumer<TikTokLinkMicBattleEvent> event);
|
||||||
|
|
||||||
T onDisconnected(Consumer<TikTokDisconnectedEvent> event);
|
T onDisconnected(TikTokEventConsumer<TikTokDisconnectedEvent> event);
|
||||||
|
|
||||||
T onGiftBroadcast(Consumer<TikTokGiftBroadcastEvent> event);
|
T onGiftBroadcast(TikTokEventConsumer<TikTokGiftBroadcastEvent> event);
|
||||||
|
|
||||||
T onUnhandledControl(Consumer<TikTokUnhandledControlEvent> event);
|
T onUnhandledControl(TikTokEventConsumer<TikTokUnhandledControlEvent> event);
|
||||||
|
|
||||||
|
T onEvent(TikTokEventConsumer<TikTokEvent> event);
|
||||||
|
|
||||||
|
T onWebsocketMessage(TikTokEventConsumer<TikTokWebsocketMessageEvent> event);
|
||||||
|
|
||||||
T onEvent(Consumer<TikTokEvent> event);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package io.github.jwdeveloper.tiktok.events;
|
|||||||
|
|
||||||
import io.github.jwdeveloper.tiktok.live.LiveClient;
|
import io.github.jwdeveloper.tiktok.live.LiveClient;
|
||||||
|
|
||||||
public interface TikTokLiveEvent<T extends TikTokEvent>
|
public interface TikTokEventConsumer<T extends TikTokEvent>
|
||||||
{
|
{
|
||||||
void onEvent(LiveClient liveClient, T event);
|
void onEvent(LiveClient liveClient, T event);
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
package io.github.jwdeveloper.tiktok.events.base;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.messages.*;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
public class TikTokHeaderEvent extends TikTokEvent {
|
||||||
|
private final long messageId;
|
||||||
|
private final long roomId;
|
||||||
|
private final long timeStamp;
|
||||||
|
|
||||||
|
public TikTokHeaderEvent(Common header) {
|
||||||
|
this(header.getMsgId(), header.getRoomId(), header.getCreateTime());
|
||||||
|
}
|
||||||
|
|
||||||
|
public TikTokHeaderEvent(MessageHeader header) {
|
||||||
|
this(header.getMessageId(), header.getRoomId(), header.getTimeStamp1());
|
||||||
|
}
|
||||||
|
|
||||||
|
public TikTokHeaderEvent(GiftMessageHeader header) {
|
||||||
|
this(header.getMessageId(), header.getRoomId(), header.getTimeStamp1());
|
||||||
|
}
|
||||||
|
|
||||||
|
public TikTokHeaderEvent(MemberMessageHeader header) {
|
||||||
|
this(header.getMessageId(), header.getRoomId(), header.getTimeStamp1());
|
||||||
|
}
|
||||||
|
|
||||||
|
public TikTokHeaderEvent(SocialMessageHeader header) {
|
||||||
|
this(header.getMessageId(), header.getRoomId(), header.getTimeStamp1());
|
||||||
|
}
|
||||||
|
|
||||||
|
public TikTokHeaderEvent(LikeMessageHeader header) {
|
||||||
|
this(header.getMessageId(), header.getRoomId(), header.getTimeStamp1());
|
||||||
|
}
|
||||||
|
|
||||||
|
public TikTokHeaderEvent(long messageId, long roomId, long timeStamp) {
|
||||||
|
this.messageId = messageId;
|
||||||
|
this.roomId = roomId;
|
||||||
|
this.timeStamp = timeStamp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TikTokHeaderEvent() {
|
||||||
|
messageId = 0;
|
||||||
|
roomId = 0;
|
||||||
|
timeStamp = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package io.github.jwdeveloper.tiktok.events.base;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
|
||||||
|
|
||||||
|
public class TikTokLiveClientEvent extends TikTokEvent {
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package io.github.jwdeveloper.tiktok.events.base;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class TikTokUnhandledEvent<T> extends TikTokEvent
|
||||||
|
{
|
||||||
|
private final T data;
|
||||||
|
}
|
||||||
@@ -1,29 +1,28 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.events.objects.BarrageData;
|
import io.github.jwdeveloper.tiktok.events.objects.BarrageData;
|
||||||
import io.github.jwdeveloper.tiktok.events.objects.Picture;
|
import io.github.jwdeveloper.tiktok.events.objects.Picture;
|
||||||
import io.github.jwdeveloper.tiktok.events.objects.User;
|
import io.github.jwdeveloper.tiktok.events.objects.User;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastBarrageMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastBarrageMessage;
|
||||||
import lombok.Getter;
|
import lombok.Value;
|
||||||
|
|
||||||
@Getter
|
|
||||||
public class TikTokBarrageMessageEvent extends TikTokEvent {
|
|
||||||
private final Picture picture;
|
|
||||||
|
|
||||||
private final Picture picture2;
|
|
||||||
|
|
||||||
private final Picture picture3;
|
|
||||||
|
|
||||||
private final User user;
|
|
||||||
private final BarrageData barrageData;
|
|
||||||
|
|
||||||
|
@Value
|
||||||
|
@EventMeta(eventType = EventType.Message)
|
||||||
|
public class TikTokBarrageMessageEvent extends TikTokHeaderEvent {
|
||||||
|
Picture picture;
|
||||||
|
Picture picture2;
|
||||||
|
Picture picture3;
|
||||||
|
User user;
|
||||||
|
BarrageData barrageData;
|
||||||
public TikTokBarrageMessageEvent(WebcastBarrageMessage msg) {
|
public TikTokBarrageMessageEvent(WebcastBarrageMessage msg) {
|
||||||
super(msg.getHeader());
|
super(msg.getHeader());
|
||||||
|
|
||||||
picture = new Picture(msg.getPicture());
|
picture = new Picture(msg.getImage());
|
||||||
picture2 = new Picture(msg.getPicture2());
|
picture2 = new Picture(msg.getImage2());
|
||||||
picture3 = new Picture(msg.getPicture3());
|
picture3 = new Picture(msg.getImage3());
|
||||||
user = new User(msg.getUserData().getUser());
|
user = new User(msg.getUserData().getUser());
|
||||||
barrageData = new BarrageData(msg.getMessage().getEventType(),
|
barrageData = new BarrageData(msg.getMessage().getEventType(),
|
||||||
msg.getMessage().getLabel(),
|
msg.getMessage().getLabel(),
|
||||||
|
|||||||
@@ -1,16 +1,19 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastCaptionMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastCaptionMessage;
|
||||||
import lombok.Getter;
|
import lombok.Value;
|
||||||
|
|
||||||
@Getter
|
@Value
|
||||||
public class TikTokCaptionEvent extends TikTokEvent {
|
@EventMeta(eventType = EventType.Message)
|
||||||
private final Long captionTimeStamp;
|
public class TikTokCaptionEvent extends TikTokHeaderEvent {
|
||||||
|
Long captionTimeStamp;
|
||||||
|
|
||||||
private final String iSOLanguage;
|
String iSOLanguage;
|
||||||
|
|
||||||
private final String text;
|
String text;
|
||||||
|
|
||||||
public TikTokCaptionEvent(WebcastCaptionMessage msg) {
|
public TikTokCaptionEvent(WebcastCaptionMessage msg) {
|
||||||
super(msg.getHeader());
|
super(msg.getHeader());
|
||||||
|
|||||||
@@ -1,30 +1,30 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
import io.github.jwdeveloper.tiktok.annotations.Nullable;
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.events.objects.Picture;
|
import io.github.jwdeveloper.tiktok.events.objects.Picture;
|
||||||
import io.github.jwdeveloper.tiktok.events.objects.User;
|
import io.github.jwdeveloper.tiktok.events.objects.User;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastChatMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastChatMessage;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastRoomPinMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastRoomPinMessage;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import lombok.Value;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Getter
|
@Value
|
||||||
public class TikTokCommentEvent extends TikTokEvent
|
@EventMeta(eventType = EventType.Message)
|
||||||
{
|
public class TikTokCommentEvent extends TikTokHeaderEvent {
|
||||||
@Nullable
|
User user;
|
||||||
private User user;
|
String text;
|
||||||
private final String text;
|
String language;
|
||||||
private final String language;
|
List<User> mentionedUsers;
|
||||||
private final List<User> mentionedUsers;
|
List<Picture> pictures;
|
||||||
private final List<Picture> pictures;
|
|
||||||
|
|
||||||
public TikTokCommentEvent(WebcastRoomPinMessage.RoomPinMessageData data) {
|
public TikTokCommentEvent(WebcastRoomPinMessage.RoomPinMessageData data) {
|
||||||
super(data.getDetails().getRoomId(), data.getDetails().getMessageId(), data.getDetails().getServerTime());
|
super(data.getDetails().getRoomId(), data.getDetails().getMessageId(), data.getDetails().getServerTime());
|
||||||
if (data.hasSender())
|
user = User.MapOrEmpty(data.getSender());
|
||||||
user = new User(data.getSender());
|
|
||||||
text = data.getComment();
|
text = data.getComment();
|
||||||
language = data.getLanguage();
|
language = data.getLanguage();
|
||||||
mentionedUsers = new ArrayList<>();
|
mentionedUsers = new ArrayList<>();
|
||||||
@@ -33,11 +33,10 @@ public class TikTokCommentEvent extends TikTokEvent
|
|||||||
|
|
||||||
public TikTokCommentEvent(WebcastChatMessage msg) {
|
public TikTokCommentEvent(WebcastChatMessage msg) {
|
||||||
super(msg.getHeader());
|
super(msg.getHeader());
|
||||||
if (msg.hasSender())
|
user = User.MapOrEmpty(msg.getSender());
|
||||||
user = new User(msg.getSender());
|
|
||||||
text = msg.getComment();
|
text = msg.getComment();
|
||||||
language = msg.getLanguage();
|
language = msg.getLanguage();
|
||||||
mentionedUsers = msg.getMentionedUsersList().stream().map(User::new).toList();
|
mentionedUsers = msg.getMentionedUsersList().stream().map(User::new).toList();
|
||||||
pictures = msg.getImagesList().stream().map(e -> new Picture(e.getPicture())).toList();
|
pictures = msg.getImagesList().stream().map(e -> new Picture(e.getImage())).toList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokLiveClientEvent;
|
||||||
public class TikTokConnectedEvent extends TikTokEvent
|
@EventMeta(eventType = EventType.Control)
|
||||||
|
public class TikTokConnectedEvent extends TikTokLiveClientEvent
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,18 +1,22 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastMsgDetectMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastMsgDetectMessage;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public class TikTokDetectMessageEvent extends TikTokEvent {
|
@EventMeta(eventType = EventType.Message)
|
||||||
private final String language;
|
public class TikTokDetectMessageEvent extends TikTokHeaderEvent {
|
||||||
|
String language;
|
||||||
|
|
||||||
private final List<Number> data;
|
List<Number> data;
|
||||||
|
|
||||||
private final List<Number> timings;
|
List<Number> timings;
|
||||||
|
|
||||||
public TikTokDetectMessageEvent(WebcastMsgDetectMessage msg) {
|
public TikTokDetectMessageEvent(WebcastMsgDetectMessage msg) {
|
||||||
super(msg.getHeader());;
|
super(msg.getHeader());;
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokLiveClientEvent;
|
||||||
|
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
@EventMeta(eventType = EventType.Control)
|
||||||
|
public class TikTokDisconnectedEvent extends TikTokLiveClientEvent {
|
||||||
public class TikTokDisconnectedEvent extends TikTokEvent {
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,25 +1,23 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
import io.github.jwdeveloper.tiktok.annotations.Nullable;
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.events.objects.Picture;
|
import io.github.jwdeveloper.tiktok.events.objects.Picture;
|
||||||
import io.github.jwdeveloper.tiktok.events.objects.User;
|
import io.github.jwdeveloper.tiktok.events.objects.User;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastEmoteChatMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastEmoteChatMessage;
|
||||||
import lombok.Getter;
|
import lombok.Value;
|
||||||
|
|
||||||
@Getter
|
@Value
|
||||||
public class TikTokEmoteEvent extends TikTokEvent
|
@EventMeta(eventType = EventType.Message)
|
||||||
{
|
public class TikTokEmoteEvent extends TikTokHeaderEvent {
|
||||||
@Nullable
|
User user;
|
||||||
private User user;
|
String emoteId;
|
||||||
private final String emoteId;
|
Picture picture;
|
||||||
private final Picture picture;
|
|
||||||
|
|
||||||
public TikTokEmoteEvent(WebcastEmoteChatMessage msg) {
|
public TikTokEmoteEvent(WebcastEmoteChatMessage msg) {
|
||||||
super(msg.getHeader());
|
super(msg.getHeader());
|
||||||
if (msg.hasSender()) {
|
user = User.MapOrEmpty(msg.getSender());
|
||||||
user = new User(msg.getSender());
|
|
||||||
}
|
|
||||||
emoteId = msg.getDetails().getId();
|
emoteId = msg.getDetails().getId();
|
||||||
picture = new Picture(msg.getDetails().getImage().getUrl());
|
picture = new Picture(msg.getDetails().getImage().getUrl());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,18 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.events.objects.User;
|
import io.github.jwdeveloper.tiktok.events.objects.User;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastEnvelopeMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastEnvelopeMessage;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import lombok.Value;
|
||||||
|
|
||||||
@Getter
|
@Value
|
||||||
public class TikTokEnvelopeEvent extends TikTokEvent {
|
@EventMeta(eventType = EventType.Message)
|
||||||
private final User user;
|
public class TikTokEnvelopeEvent extends TikTokHeaderEvent {
|
||||||
|
User user;
|
||||||
public TikTokEnvelopeEvent(WebcastEnvelopeMessage msg) {
|
public TikTokEnvelopeEvent(WebcastEnvelopeMessage msg) {
|
||||||
super(msg.getHeader());
|
super(msg.getHeader());
|
||||||
user = new User(msg.getUser().getId(), msg.getUser().getUsername());
|
user = new User(msg.getUser().getId(), msg.getUser().getUsername());
|
||||||
|
|||||||
@@ -1,12 +1,16 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokLiveClientEvent;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class TikTokErrorEvent extends TikTokEvent
|
@EventMeta(eventType = EventType.Control)
|
||||||
|
public class TikTokErrorEvent extends TikTokLiveClientEvent
|
||||||
{
|
{
|
||||||
private final Throwable exception;
|
private final Throwable exception;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,25 +1,22 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
import io.github.jwdeveloper.tiktok.annotations.Nullable;
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.events.objects.User;
|
import io.github.jwdeveloper.tiktok.events.objects.User;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastSocialMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastSocialMessage;
|
||||||
import lombok.Getter;
|
import lombok.Value;
|
||||||
|
|
||||||
@Getter
|
@Value
|
||||||
public class TikTokFollowEvent extends TikTokEvent
|
@EventMeta(eventType = EventType.Custom)
|
||||||
|
public class TikTokFollowEvent extends TikTokHeaderEvent
|
||||||
{
|
{
|
||||||
@Nullable
|
User newFollower;
|
||||||
private User newFollower;
|
Long totalFollowers;
|
||||||
private final Long totalFollowers;
|
|
||||||
|
|
||||||
public TikTokFollowEvent(WebcastSocialMessage msg) {
|
public TikTokFollowEvent(WebcastSocialMessage msg) {
|
||||||
super(msg.getHeader());
|
super(msg.getHeader());
|
||||||
if(msg.hasSender())
|
newFollower = User.MapOrEmpty(msg.getSender());
|
||||||
{
|
|
||||||
newFollower = new User(msg.getSender());
|
|
||||||
}
|
|
||||||
totalFollowers = msg.getTotalFollowers();
|
totalFollowers = msg.getTotalFollowers();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,27 +1,32 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.events.objects.Picture;
|
import io.github.jwdeveloper.tiktok.events.objects.Picture;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastGiftBroadcastMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastGiftBroadcastMessage;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import lombok.Value;
|
||||||
|
|
||||||
@Getter
|
@Value
|
||||||
public class TikTokGiftBroadcastEvent extends TikTokEvent
|
@EventMeta(eventType = EventType.Message)
|
||||||
|
public class TikTokGiftBroadcastEvent extends TikTokHeaderEvent
|
||||||
{
|
{
|
||||||
private final Picture picture;
|
Picture picture;
|
||||||
|
|
||||||
private final String shortURL;
|
String shortURL;
|
||||||
|
|
||||||
private final String notifyEventType;
|
String notifyEventType;
|
||||||
|
|
||||||
private final String notifyLabel;
|
String notifyLabel;
|
||||||
|
|
||||||
private final String notifyType;
|
String notifyType;
|
||||||
|
|
||||||
public TikTokGiftBroadcastEvent(WebcastGiftBroadcastMessage msg)
|
public TikTokGiftBroadcastEvent(WebcastGiftBroadcastMessage msg)
|
||||||
{
|
{
|
||||||
super(msg.getHeader());
|
super(msg.getHeader());
|
||||||
picture = new Picture(msg.getPicture());
|
picture = new Picture(msg.getImage());
|
||||||
var data = msg.getData();
|
var data = msg.getData();
|
||||||
shortURL = data.getUri();
|
shortURL = data.getUri();
|
||||||
notifyEventType = data.getRoomNotifyMessage().getData().getType();
|
notifyEventType = data.getRoomNotifyMessage().getData().getType();
|
||||||
|
|||||||
@@ -1,40 +1,33 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
import io.github.jwdeveloper.tiktok.annotations.Nullable;
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.events.objects.Gift;
|
import io.github.jwdeveloper.tiktok.events.objects.Gift;
|
||||||
import io.github.jwdeveloper.tiktok.events.objects.User;
|
import io.github.jwdeveloper.tiktok.events.objects.User;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastGiftMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastGiftMessage;
|
||||||
import lombok.Getter;
|
import lombok.Value;
|
||||||
|
|
||||||
@Getter
|
@Value
|
||||||
public class TikTokGiftMessageEvent extends TikTokEvent {
|
@EventMeta(eventType = EventType.Message)
|
||||||
private final Gift gift;
|
public class TikTokGiftMessageEvent extends TikTokHeaderEvent {
|
||||||
|
|
||||||
@Nullable
|
Gift gift;
|
||||||
private User sender;
|
User sender;
|
||||||
|
String purchaseId;
|
||||||
|
String receipt;
|
||||||
|
Long comboCount;
|
||||||
|
Boolean streakFinished;
|
||||||
|
Long streakIndex;
|
||||||
|
|
||||||
private final String purchaseId;
|
public TikTokGiftMessageEvent(WebcastGiftMessage msg) {
|
||||||
|
super(msg.getCommon());
|
||||||
private final String receipt;
|
gift = new Gift(msg.getGift());
|
||||||
|
sender = User.MapOrEmpty(msg.getUser());
|
||||||
private final Integer amount;
|
purchaseId = msg.getLogId();
|
||||||
|
receipt = msg.getMonitorExtra();
|
||||||
private final Boolean streakFinished;
|
comboCount = msg.getComboCount();
|
||||||
|
streakFinished = msg.getRepeatEnd() > 0; //todo check values
|
||||||
private final Integer streakIndex;
|
streakIndex = msg.getRepeatCount();
|
||||||
|
|
||||||
public TikTokGiftMessageEvent(WebcastGiftMessage msg) {
|
|
||||||
super(msg.getHeader());;
|
|
||||||
gift = new Gift(msg.getGiftDetails());
|
|
||||||
if(msg.hasSender())
|
|
||||||
{
|
|
||||||
sender = new User(msg.getSender());
|
|
||||||
}
|
}
|
||||||
purchaseId = msg.getLogId();
|
|
||||||
receipt = msg.getReceiptJson();
|
|
||||||
amount = msg.getAmount();
|
|
||||||
streakFinished = msg.getRepeatEnd();
|
|
||||||
streakIndex = msg.getRepeatCount();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.events.objects.Picture;
|
import io.github.jwdeveloper.tiktok.events.objects.Picture;
|
||||||
|
|
||||||
import io.github.jwdeveloper.tiktok.events.objects.User;
|
import io.github.jwdeveloper.tiktok.events.objects.User;
|
||||||
@@ -10,7 +13,8 @@ import lombok.Getter;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public class TikTokGoalUpdateEvent extends TikTokEvent
|
@EventMeta(eventType = EventType.Message)
|
||||||
|
public class TikTokGoalUpdateEvent extends TikTokHeaderEvent
|
||||||
{
|
{
|
||||||
private final Long goalId;
|
private final Long goalId;
|
||||||
private final Picture picture;
|
private final Picture picture;
|
||||||
@@ -20,10 +24,10 @@ public class TikTokGoalUpdateEvent extends TikTokEvent
|
|||||||
|
|
||||||
public TikTokGoalUpdateEvent(WebcastGoalUpdateMessage msg) {
|
public TikTokGoalUpdateEvent(WebcastGoalUpdateMessage msg) {
|
||||||
super(msg.getHeader());
|
super(msg.getHeader());
|
||||||
picture = new Picture(msg.getPicture());
|
picture = new Picture(msg.getImage());
|
||||||
goalId = msg.getId();
|
goalId = msg.getId();
|
||||||
eventType = msg.getData().getType();
|
eventType = msg.getData().getType();
|
||||||
label = msg.getUpdateData().getLabel();
|
label = msg.getUpdateData().getLabel();
|
||||||
users = msg.getUpdateData().getUsersList().stream().map(u ->new User(u.getId(),u.getNickname(),new Picture(u.getProfilePicture()))).toList();
|
users = msg.getUpdateData().getUsersList().stream().map(u ->new User(u.getId(),u.getNickname(),new Picture(u.getProfileImage()))).toList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,17 +1,19 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastImDeleteMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastImDeleteMessage;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public class TikTokIMDeleteEvent extends TikTokEvent {
|
@EventMeta(eventType = EventType.Message)
|
||||||
private final String data1;
|
public class TikTokIMDeleteEvent extends TikTokHeaderEvent {
|
||||||
private final String data2;
|
private final byte[] data;
|
||||||
|
|
||||||
public TikTokIMDeleteEvent(WebcastImDeleteMessage msg) {
|
public TikTokIMDeleteEvent(WebcastImDeleteMessage msg) {
|
||||||
super(msg.getHeader());;
|
super(msg.getHeader());
|
||||||
data1 = msg.getData1();
|
data = msg.getData().toByteArray();
|
||||||
data2 = msg.getData2();
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,16 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastInRoomBannerMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastInRoomBannerMessage;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public class TikTokInRoomBannerEvent extends TikTokEvent {
|
@EventMeta(eventType = EventType.Message)
|
||||||
private String jSON;
|
public class TikTokInRoomBannerEvent extends TikTokHeaderEvent {
|
||||||
|
private final String jSON;
|
||||||
|
|
||||||
public TikTokInRoomBannerEvent(WebcastInRoomBannerMessage msg) {
|
public TikTokInRoomBannerEvent(WebcastInRoomBannerMessage msg) {
|
||||||
super(msg.getHeader());;
|
super(msg.getHeader());;
|
||||||
|
|||||||
@@ -1,15 +1,16 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
import io.github.jwdeveloper.tiktok.annotations.Nullable;
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.events.objects.User;
|
import io.github.jwdeveloper.tiktok.events.objects.User;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastMemberMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastMemberMessage;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastSocialMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastSocialMessage;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public class TikTokJoinEvent extends TikTokEvent {
|
@EventMeta(eventType = EventType.Custom)
|
||||||
@Nullable
|
public class TikTokJoinEvent extends TikTokHeaderEvent {
|
||||||
private User user;
|
private User user;
|
||||||
|
|
||||||
private final Long totalViewers;
|
private final Long totalViewers;
|
||||||
|
|||||||
@@ -1,16 +1,17 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
import io.github.jwdeveloper.tiktok.annotations.Nullable;
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.events.objects.User;
|
import io.github.jwdeveloper.tiktok.events.objects.User;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastLikeMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastLikeMessage;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastSocialMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastSocialMessage;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public class TikTokLikeEvent extends TikTokEvent
|
@EventMeta(eventType = EventType.Custom)
|
||||||
|
public class TikTokLikeEvent extends TikTokHeaderEvent
|
||||||
{
|
{
|
||||||
@Nullable
|
|
||||||
private User sender;
|
private User sender;
|
||||||
|
|
||||||
private final Integer count;
|
private final Integer count;
|
||||||
|
|||||||
@@ -1,12 +1,16 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastLinkLayerMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastLinkLayerMessage;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public class TikTokLinkLayerMessageEvent extends TikTokEvent {
|
@EventMeta(eventType = EventType.Message)
|
||||||
|
public class TikTokLinkLayerMessageEvent extends TikTokHeaderEvent {
|
||||||
private final Long linkId;
|
private final Long linkId;
|
||||||
private final LinkData link1;
|
private final LinkData link1;
|
||||||
private final LinkData link2;
|
private final LinkData link2;
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
import io.github.jwdeveloper.tiktok.annotations.Nullable;
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.events.objects.User;
|
import io.github.jwdeveloper.tiktok.events.objects.User;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastLinkMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastLinkMessage;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
@@ -9,10 +10,10 @@ import lombok.Getter;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public class TikTokLinkMessageEvent extends TikTokEvent {
|
@EventMeta(eventType = EventType.Message)
|
||||||
|
public class TikTokLinkMessageEvent extends TikTokHeaderEvent {
|
||||||
private final String token;
|
private final String token;
|
||||||
|
|
||||||
@Nullable
|
|
||||||
private User user;
|
private User user;
|
||||||
|
|
||||||
private final List<User> otherUsers;
|
private final List<User> otherUsers;
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.events.objects.LinkMicArmy;
|
import io.github.jwdeveloper.tiktok.events.objects.LinkMicArmy;
|
||||||
import io.github.jwdeveloper.tiktok.events.objects.Picture;
|
import io.github.jwdeveloper.tiktok.events.objects.Picture;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastLinkMicArmies;
|
import io.github.jwdeveloper.tiktok.messages.WebcastLinkMicArmies;
|
||||||
@@ -9,7 +12,8 @@ import lombok.Getter;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public class TikTokLinkMicArmiesEvent extends TikTokEvent {
|
@EventMeta(eventType = EventType.Message)
|
||||||
|
public class TikTokLinkMicArmiesEvent extends TikTokHeaderEvent {
|
||||||
private final Long battleId;
|
private final Long battleId;
|
||||||
|
|
||||||
private final Integer battleStatus;
|
private final Integer battleStatus;
|
||||||
@@ -22,7 +26,7 @@ public class TikTokLinkMicArmiesEvent extends TikTokEvent {
|
|||||||
super(msg.getHeader());
|
super(msg.getHeader());
|
||||||
battleId = msg.getId();
|
battleId = msg.getId();
|
||||||
armies = msg.getBattleItemsList().stream().map(LinkMicArmy::new).toList();
|
armies = msg.getBattleItemsList().stream().map(LinkMicArmy::new).toList();
|
||||||
picture = new Picture(msg.getPicture());
|
picture = new Picture(msg.getImage());
|
||||||
battleStatus = msg.getBattleStatus();
|
battleStatus = msg.getBattleStatus();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.events.objects.LinkMicBattleTeam;
|
import io.github.jwdeveloper.tiktok.events.objects.LinkMicBattleTeam;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastLinkMicBattle;
|
import io.github.jwdeveloper.tiktok.messages.WebcastLinkMicBattle;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
@@ -8,7 +11,8 @@ import lombok.Getter;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public class TikTokLinkMicBattleEvent extends TikTokEvent {
|
@EventMeta(eventType = EventType.Message)
|
||||||
|
public class TikTokLinkMicBattleEvent extends TikTokHeaderEvent {
|
||||||
private final Long battleId;
|
private final Long battleId;
|
||||||
private final List<LinkMicBattleTeam> team1;
|
private final List<LinkMicBattleTeam> team1;
|
||||||
private final List<LinkMicBattleTeam> team2;
|
private final List<LinkMicBattleTeam> team2;
|
||||||
|
|||||||
@@ -1,11 +1,15 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastLinkMicFanTicketMethod;
|
import io.github.jwdeveloper.tiktok.messages.WebcastLinkMicFanTicketMethod;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public class TikTokLinkMicFanTicketEvent extends TikTokEvent {
|
@EventMeta(eventType = EventType.Message)
|
||||||
|
public class TikTokLinkMicFanTicketEvent extends TikTokHeaderEvent {
|
||||||
private final Long id;
|
private final Long id;
|
||||||
private final Integer data1;
|
private final Integer data1;
|
||||||
private final Integer data2;
|
private final Integer data2;
|
||||||
|
|||||||
@@ -1,12 +1,16 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.messages.LinkMicMethod;
|
import io.github.jwdeveloper.tiktok.messages.LinkMicMethod;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastLinkMicMethod;
|
import io.github.jwdeveloper.tiktok.messages.WebcastLinkMicMethod;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public class TikTokLinkMicMethodEvent extends TikTokEvent {
|
@EventMeta(eventType = EventType.Message)
|
||||||
|
public class TikTokLinkMicMethodEvent extends TikTokHeaderEvent {
|
||||||
private final String jSON;
|
private final String jSON;
|
||||||
|
|
||||||
public TikTokLinkMicMethodEvent(WebcastLinkMicMethod msg) {
|
public TikTokLinkMicMethodEvent(WebcastLinkMicMethod msg) {
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
|
||||||
|
@EventMeta(eventType = EventType.Custom)
|
||||||
public class TikTokLiveEndedEvent extends TikTokEvent {
|
public class TikTokLiveEndedEvent extends TikTokEvent {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
|
||||||
|
@EventMeta(eventType = EventType.Custom)
|
||||||
public class TikTokLivePausedEvent extends TikTokEvent {
|
public class TikTokLivePausedEvent extends TikTokEvent {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.events.objects.PollOption;
|
import io.github.jwdeveloper.tiktok.events.objects.PollOption;
|
||||||
import io.github.jwdeveloper.tiktok.events.objects.User;
|
import io.github.jwdeveloper.tiktok.events.objects.User;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastPollMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastPollMessage;
|
||||||
@@ -9,7 +12,8 @@ import lombok.Getter;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public class TikTokPollMessageEvent extends TikTokEvent {
|
@EventMeta(eventType = EventType.Message)
|
||||||
|
public class TikTokPollMessageEvent extends TikTokHeaderEvent {
|
||||||
private final Long id;
|
private final Long id;
|
||||||
|
|
||||||
private final PollOption option1;
|
private final PollOption option1;
|
||||||
|
|||||||
@@ -1,12 +1,16 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.events.objects.User;
|
import io.github.jwdeveloper.tiktok.events.objects.User;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastQuestionNewMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastQuestionNewMessage;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public class TikTokQuestionEvent extends TikTokEvent {
|
@EventMeta(eventType = EventType.Message)
|
||||||
|
public class TikTokQuestionEvent extends TikTokHeaderEvent {
|
||||||
private final Long questionId;
|
private final Long questionId;
|
||||||
|
|
||||||
private final String text;
|
private final String text;
|
||||||
|
|||||||
@@ -1,14 +1,18 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastRankTextMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastRankTextMessage;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public class TikTokRankTextEvent extends TikTokEvent {
|
@EventMeta(eventType = EventType.Message)
|
||||||
private String eventType;
|
public class TikTokRankTextEvent extends TikTokHeaderEvent {
|
||||||
|
private final String eventType;
|
||||||
|
|
||||||
private String label;
|
private final String label;
|
||||||
|
|
||||||
|
|
||||||
public TikTokRankTextEvent(WebcastRankTextMessage msg) {
|
public TikTokRankTextEvent(WebcastRankTextMessage msg) {
|
||||||
|
|||||||
@@ -1,12 +1,16 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastHourlyRankMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastHourlyRankMessage;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastRankUpdateMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastRankUpdateMessage;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public class TikTokRankUpdateEvent extends TikTokEvent {
|
@EventMeta(eventType = EventType.Message)
|
||||||
|
public class TikTokRankUpdateEvent extends TikTokHeaderEvent {
|
||||||
private final String eventType;
|
private final String eventType;
|
||||||
|
|
||||||
private final String label;
|
private final String label;
|
||||||
@@ -20,10 +24,15 @@ public class TikTokRankUpdateEvent extends TikTokEvent {
|
|||||||
var rankData = msg.getData().getRankings();
|
var rankData = msg.getData().getRankings();
|
||||||
eventType = rankData.getType();
|
eventType = rankData.getType();
|
||||||
label = rankData.getLabel();
|
label = rankData.getLabel();
|
||||||
rank = rankData.getDetails(0).getLabel();
|
if(rankData.getDetailsList().isEmpty())
|
||||||
|
{
|
||||||
|
rank = "";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
rank = rankData.getDetails(0).getLabel();
|
||||||
|
}
|
||||||
color = rankData.getColor().getColor();
|
color = rankData.getColor().getColor();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public TikTokRankUpdateEvent(WebcastRankUpdateMessage msg) {
|
public TikTokRankUpdateEvent(WebcastRankUpdateMessage msg) {
|
||||||
@@ -31,7 +40,14 @@ public class TikTokRankUpdateEvent extends TikTokEvent {
|
|||||||
var rankData = msg.getData().getRankData();
|
var rankData = msg.getData().getRankData();
|
||||||
eventType = rankData.getType();
|
eventType = rankData.getType();
|
||||||
label = rankData.getLabel();
|
label = rankData.getLabel();
|
||||||
rank = rankData.getDetails(0).getLabel();
|
if(rankData.getDetailsList().isEmpty())
|
||||||
|
{
|
||||||
|
rank = "";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
rank = rankData.getDetails(0).getLabel();
|
||||||
|
}
|
||||||
color = rankData.getColor().getColor();
|
color = rankData.getColor().getColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
import io.github.jwdeveloper.tiktok.annotations.Nullable;
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.events.objects.User;
|
import io.github.jwdeveloper.tiktok.events.objects.User;
|
||||||
import io.github.jwdeveloper.tiktok.messages.RoomMessage;
|
import io.github.jwdeveloper.tiktok.messages.RoomMessage;
|
||||||
import io.github.jwdeveloper.tiktok.messages.SystemMessage;
|
import io.github.jwdeveloper.tiktok.messages.SystemMessage;
|
||||||
@@ -10,10 +11,9 @@ import io.github.jwdeveloper.tiktok.messages.WebcastRoomMessage;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public class TikTokRoomMessageEvent extends TikTokEvent {
|
@EventMeta(eventType = EventType.Message)
|
||||||
@Nullable
|
public class TikTokRoomMessageEvent extends TikTokHeaderEvent {
|
||||||
private User host;
|
private User host;
|
||||||
@Nullable
|
|
||||||
private String hostLanguage;
|
private String hostLanguage;
|
||||||
private final String message;
|
private final String message;
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,15 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastRoomPinMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastRoomPinMessage;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public class TikTokRoomPinMessageEvent extends TikTokEvent {
|
@EventMeta(eventType = EventType.Message)
|
||||||
|
public class TikTokRoomPinMessageEvent extends TikTokHeaderEvent {
|
||||||
private final Long pinTimeStamp;
|
private final Long pinTimeStamp;
|
||||||
private final TikTokCommentEvent comment;
|
private final TikTokCommentEvent comment;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.events.objects.TopViewer;
|
import io.github.jwdeveloper.tiktok.events.objects.TopViewer;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastRoomUserSeqMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastRoomUserSeqMessage;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
@@ -8,7 +11,8 @@ import lombok.Getter;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public class TikTokRoomViewerDataEvent extends TikTokEvent {
|
@EventMeta(eventType = EventType.Message)
|
||||||
|
public class TikTokRoomViewerDataEvent extends TikTokHeaderEvent {
|
||||||
private final Integer viewerCount;
|
private final Integer viewerCount;
|
||||||
private final List<TopViewer> topViewers;
|
private final List<TopViewer> topViewers;
|
||||||
|
|
||||||
|
|||||||
@@ -1,31 +1,28 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.events.objects.User;
|
import io.github.jwdeveloper.tiktok.events.objects.User;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastSocialMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastSocialMessage;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public class TikTokShareEvent extends TikTokEvent {
|
@EventMeta(eventType = EventType.Custom)
|
||||||
private User user;
|
public class TikTokShareEvent extends TikTokHeaderEvent {
|
||||||
|
private final User user;
|
||||||
private Integer amount;
|
private final Integer amount;
|
||||||
|
|
||||||
public TikTokShareEvent(WebcastSocialMessage msg, Integer amount) {
|
public TikTokShareEvent(WebcastSocialMessage msg, Integer amount) {
|
||||||
super(msg.getHeader());;
|
super(msg.getHeader());;
|
||||||
if(msg.hasSender())
|
user = User.MapOrEmpty(msg.getSender());
|
||||||
{
|
|
||||||
user = new User(msg.getSender());
|
|
||||||
}
|
|
||||||
this.amount = amount;
|
this.amount = amount;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TikTokShareEvent(WebcastSocialMessage msg) {
|
public TikTokShareEvent(WebcastSocialMessage msg) {
|
||||||
super(msg.getHeader());
|
super(msg.getHeader());
|
||||||
if(msg.hasSender())
|
user = User.MapOrEmpty(msg.getSender());
|
||||||
{
|
|
||||||
user = new User(msg.getSender());
|
|
||||||
}
|
|
||||||
amount = 1;
|
amount = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,16 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.events.objects.Picture;
|
import io.github.jwdeveloper.tiktok.events.objects.Picture;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastOecLiveShoppingMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastOecLiveShoppingMessage;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public class TikTokShopMessageEvent extends TikTokEvent {
|
@EventMeta(eventType = EventType.Message)
|
||||||
|
public class TikTokShopMessageEvent extends TikTokHeaderEvent {
|
||||||
private final String title;
|
private final String title;
|
||||||
|
|
||||||
private final String price;
|
private final String price;
|
||||||
|
|||||||
@@ -1,12 +1,16 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.events.objects.User;
|
import io.github.jwdeveloper.tiktok.events.objects.User;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastSubNotifyMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastSubNotifyMessage;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public class TikTokSubNotifyEvent extends TikTokEvent {
|
@EventMeta(eventType = EventType.Message)
|
||||||
|
public class TikTokSubNotifyEvent extends TikTokHeaderEvent {
|
||||||
private User user;
|
private User user;
|
||||||
|
|
||||||
public TikTokSubNotifyEvent(WebcastSubNotifyMessage msg) {
|
public TikTokSubNotifyEvent(WebcastSubNotifyMessage msg) {
|
||||||
|
|||||||
@@ -1,12 +1,16 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.events.objects.User;
|
import io.github.jwdeveloper.tiktok.events.objects.User;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastMemberMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastMemberMessage;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public class TikTokSubscribeEvent extends TikTokEvent {
|
@EventMeta(eventType = EventType.Custom)
|
||||||
|
public class TikTokSubscribeEvent extends TikTokHeaderEvent {
|
||||||
private User newSubscriber;
|
private User newSubscriber;
|
||||||
|
|
||||||
public TikTokSubscribeEvent(WebcastMemberMessage msg) {
|
public TikTokSubscribeEvent(WebcastMemberMessage msg) {
|
||||||
|
|||||||
@@ -1,12 +1,16 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastUnauthorizedMemberMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastUnauthorizedMemberMessage;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public class TikTokUnauthorizedMemberEvent extends TikTokEvent {
|
@EventMeta(eventType = EventType.Message)
|
||||||
|
public class TikTokUnauthorizedMemberEvent extends TikTokHeaderEvent {
|
||||||
private final String data;
|
private final String data;
|
||||||
|
|
||||||
private final UnauthorizedMemberData event;
|
private final UnauthorizedMemberData event;
|
||||||
|
|||||||
@@ -1,13 +1,18 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokUnhandledEvent;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastControlMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastControlMessage;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@AllArgsConstructor
|
@EventMeta(eventType = EventType.Custom)
|
||||||
public class TikTokUnhandledControlEvent extends TikTokEvent {
|
public class TikTokUnhandledControlEvent extends TikTokUnhandledEvent<WebcastControlMessage> {
|
||||||
|
|
||||||
private final WebcastControlMessage message;
|
public TikTokUnhandledControlEvent(WebcastControlMessage data) {
|
||||||
|
super(data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
|
||||||
|
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastResponse;
|
|
||||||
import lombok.AllArgsConstructor;
|
|
||||||
import lombok.Getter;
|
|
||||||
|
|
||||||
|
|
||||||
@Getter
|
|
||||||
@AllArgsConstructor
|
|
||||||
public class TikTokUnhandledEvent extends TikTokEvent
|
|
||||||
{
|
|
||||||
private final WebcastResponse.Message message;
|
|
||||||
}
|
|
||||||
@@ -1,13 +1,18 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokUnhandledEvent;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastMemberMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastMemberMessage;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@AllArgsConstructor
|
@EventMeta(eventType = EventType.Message)
|
||||||
public class TikTokUnhandledMemberEvent extends TikTokEvent
|
public class TikTokUnhandledMemberEvent extends TikTokUnhandledEvent<WebcastMemberMessage>
|
||||||
{
|
{
|
||||||
private final WebcastMemberMessage message;
|
public TikTokUnhandledMemberEvent(WebcastMemberMessage data) {
|
||||||
|
super(data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,19 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.messages;
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokUnhandledEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.messages.WebcastMemberMessage;
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastSocialMessage;
|
import io.github.jwdeveloper.tiktok.messages.WebcastSocialMessage;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@AllArgsConstructor
|
@EventMeta(eventType = EventType.Custom)
|
||||||
public class TikTokUnhandledSocialEvent extends TikTokEvent
|
public class TikTokUnhandledSocialEvent extends TikTokUnhandledEvent<WebcastSocialMessage>
|
||||||
{
|
{
|
||||||
private final WebcastSocialMessage message;
|
public TikTokUnhandledSocialEvent(WebcastSocialMessage data) {
|
||||||
|
super(data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.base.TikTokUnhandledEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.messages.WebcastResponse;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@EventMeta(eventType = EventType.Message)
|
||||||
|
public class TikTokUnhandledWebsocketMessageEvent extends TikTokUnhandledEvent<WebcastResponse.Message>
|
||||||
|
{
|
||||||
|
public TikTokUnhandledWebsocketMessageEvent(WebcastResponse.Message data) {
|
||||||
|
super(data);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package io.github.jwdeveloper.tiktok.events.messages;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventMeta;
|
||||||
|
import io.github.jwdeveloper.tiktok.annotations.EventType;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.messages.WebcastResponse;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Happens when TikTok websocket receive message from server
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@AllArgsConstructor
|
||||||
|
@EventMeta(eventType = EventType.Custom)
|
||||||
|
public class TikTokWebsocketMessageEvent extends TikTokEvent
|
||||||
|
{
|
||||||
|
private TikTokEvent event;
|
||||||
|
|
||||||
|
private WebcastResponse.Message message;
|
||||||
|
}
|
||||||
@@ -1,41 +1,77 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.objects;
|
package io.github.jwdeveloper.tiktok.events.objects;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import io.github.jwdeveloper.tiktok.messages.BadgeStruct;
|
||||||
import lombok.Getter;
|
import lombok.Value;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Getter
|
@Value
|
||||||
public class Badge {
|
public class Badge {
|
||||||
private final ComboBadge comboBadges;
|
ComboBadge comboBadges;
|
||||||
private final List<TextBadge> textBadges;
|
List<TextBadge> textBadges;
|
||||||
private final List<ImageBadge> imageBadges;
|
List<ImageBadge> imageBadges;
|
||||||
|
|
||||||
public Badge(io.github.jwdeveloper.tiktok.messages.Badge badge) {
|
public Badge(ComboBadge comboBadges, List<TextBadge> textBadges, List<ImageBadge> imageBadges) {
|
||||||
textBadges = badge.getTextBadgesList().stream().map(b -> new TextBadge(b.getType(), b.getName())).toList();
|
this.comboBadges = comboBadges;
|
||||||
imageBadges = badge.getImageBadgesList().stream().map(b -> new ImageBadge(b.getDisplayType(), new Picture(b.getImage()))).toList();
|
this.textBadges = textBadges;
|
||||||
comboBadges = new ComboBadge(new Picture(badge.getComplexBadge().getImageUrl()), badge.getComplexBadge().getData());
|
this.imageBadges = imageBadges;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Badge(io.github.jwdeveloper.tiktok.messages.BadgeStruct badge)
|
||||||
@AllArgsConstructor
|
{
|
||||||
@Getter
|
comboBadges = ComboBadge.map(badge.getCombine());
|
||||||
public class TextBadge {
|
textBadges = TextBadge.mapAll(badge.getTextList());
|
||||||
private final String type;
|
imageBadges = ImageBadge.mapAll(badge.getImageList());
|
||||||
private final String name;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@AllArgsConstructor
|
@Value
|
||||||
@Getter
|
public static class TextBadge {
|
||||||
public class ImageBadge {
|
EnumValue type;
|
||||||
private final Integer displayType;
|
String name;
|
||||||
private final Picture image;
|
|
||||||
|
public static TextBadge map(BadgeStruct.TextBadge input) {
|
||||||
|
return new TextBadge(EnumValue.Map(input.getDisplayType()),input.getKey());
|
||||||
|
}
|
||||||
|
public static List<TextBadge> mapAll(List<BadgeStruct.TextBadge> list) {
|
||||||
|
return list.stream().map(TextBadge::map).toList();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@AllArgsConstructor
|
@Value
|
||||||
@Getter
|
public static class ImageBadge {
|
||||||
public class ComboBadge {
|
EnumValue displayType;
|
||||||
private final Picture image;
|
Picture image;
|
||||||
private final String data;
|
|
||||||
|
public static ImageBadge map(BadgeStruct.ImageBadge input) {
|
||||||
|
return new ImageBadge(EnumValue.Map(input.getDisplayType()), Picture.Map(input.getImage()));
|
||||||
|
}
|
||||||
|
public static List<ImageBadge> mapAll(List<BadgeStruct.ImageBadge> list) {
|
||||||
|
return list.stream().map(ImageBadge::map).toList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Value
|
||||||
|
public static class ComboBadge {
|
||||||
|
Picture image;
|
||||||
|
String data;
|
||||||
|
|
||||||
|
public static ComboBadge map(BadgeStruct.CombineBadge input) {
|
||||||
|
return new ComboBadge(Picture.Map(input.getIcon()),input.getStr());
|
||||||
|
}
|
||||||
|
public static List<ComboBadge> mapAll(List<BadgeStruct.CombineBadge> list) {
|
||||||
|
return list.stream().map(ComboBadge::map).toList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Badge Empty() {
|
||||||
|
var comboBadge = new ComboBadge(Picture.Empty(), "");
|
||||||
|
var textBadges = new ArrayList<TextBadge>();
|
||||||
|
var imageBadges = new ArrayList<ImageBadge>();
|
||||||
|
return new Badge(comboBadge, textBadges, imageBadges);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<Badge> EmptyList() {
|
||||||
|
return new ArrayList<Badge>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,14 +2,15 @@ package io.github.jwdeveloper.tiktok.events.objects;
|
|||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import lombok.Value;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Getter
|
@Value
|
||||||
public class BarrageData {
|
public class BarrageData {
|
||||||
private final String eventType;
|
String eventType;
|
||||||
private final String label;
|
String label;
|
||||||
private final List<BarrageUser> users;
|
List<BarrageUser> users;
|
||||||
|
|
||||||
public BarrageData(String eventType, String label, List<BarrageUser> users)
|
public BarrageData(String eventType, String label, List<BarrageUser> users)
|
||||||
{
|
{
|
||||||
@@ -18,12 +19,11 @@ public class BarrageData {
|
|||||||
this.users = users;
|
this.users = users;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Getter
|
@Value
|
||||||
@AllArgsConstructor
|
public static class BarrageUser
|
||||||
public static final class BarrageUser
|
|
||||||
{
|
{
|
||||||
private final User user;
|
User user;
|
||||||
|
|
||||||
private final String data;
|
String data;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package io.github.jwdeveloper.tiktok.events.objects;
|
||||||
|
|
||||||
|
import lombok.Value;
|
||||||
|
|
||||||
|
@Value
|
||||||
|
public class EnumValue
|
||||||
|
{
|
||||||
|
public int value;
|
||||||
|
public String name;
|
||||||
|
|
||||||
|
public static EnumValue Map(Enum<?> _enum)
|
||||||
|
{
|
||||||
|
return new EnumValue(_enum.ordinal() ,_enum.name());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,27 +1,22 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.objects;
|
package io.github.jwdeveloper.tiktok.events.objects;
|
||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Value;
|
||||||
|
|
||||||
@Getter
|
@Value
|
||||||
public class Gift {
|
public class Gift {
|
||||||
private final Long id;
|
Long id;
|
||||||
|
String name;
|
||||||
|
String description;
|
||||||
|
Integer diamondCost;
|
||||||
|
Integer type;
|
||||||
|
Picture picture;
|
||||||
|
|
||||||
private final String name;
|
public Gift(io.github.jwdeveloper.tiktok.messages.GiftStruct gift) {
|
||||||
|
|
||||||
private final String description;
|
|
||||||
|
|
||||||
private final Integer diamondCost;
|
|
||||||
|
|
||||||
private final Integer type;
|
|
||||||
|
|
||||||
private final Picture picture;
|
|
||||||
|
|
||||||
public Gift(io.github.jwdeveloper.tiktok.messages.Gift gift) {
|
|
||||||
id = gift.getId();
|
id = gift.getId();
|
||||||
name = gift.getName();
|
name = gift.getName();
|
||||||
description = gift.getDescription();
|
description = gift.getDescribe();
|
||||||
diamondCost = gift.getCoinCount();
|
diamondCost = gift.getDiamondCount();
|
||||||
type = gift.getGiftType();
|
type = gift.getType();
|
||||||
picture = new Picture(gift.getImage());
|
picture = new Picture(gift.getImage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,31 +1,28 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.objects;
|
package io.github.jwdeveloper.tiktok.events.objects;
|
||||||
|
|
||||||
import io.github.jwdeveloper.tiktok.messages.LinkMicArmiesItems;
|
import io.github.jwdeveloper.tiktok.messages.LinkMicArmiesItems;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.Value;
|
||||||
import lombok.Getter;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Getter
|
@Value
|
||||||
public class LinkMicArmy {
|
public class LinkMicArmy {
|
||||||
private final Long armyId;
|
Long armyId;
|
||||||
private final List<Army> armies;
|
List<Army> armies;
|
||||||
|
|
||||||
public LinkMicArmy(LinkMicArmiesItems army) {
|
public LinkMicArmy(LinkMicArmiesItems army) {
|
||||||
armyId = army.getHostUserId();
|
armyId = army.getHostUserId();
|
||||||
armies = army.getBattleGroupsList()
|
armies = army.getBattleGroupsList()
|
||||||
.stream()
|
.stream()
|
||||||
.map(x -> new Army(x.getUsersList()
|
.map(x -> new Army(x.getUsersList().stream().map(User::MapOrEmpty).toList(), x.getPoints()))
|
||||||
.stream()
|
|
||||||
.map(User::new).toList(), x.getPoints()))
|
|
||||||
.toList();
|
.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Value
|
||||||
@Getter
|
public static class Army {
|
||||||
@AllArgsConstructor
|
List<User> Users;
|
||||||
public final class Army {
|
Integer Points;
|
||||||
private final List<User> Users;
|
|
||||||
private final Integer Points;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,13 +3,14 @@ package io.github.jwdeveloper.tiktok.events.objects;
|
|||||||
|
|
||||||
import io.github.jwdeveloper.tiktok.messages.WebcastLinkMicBattle;
|
import io.github.jwdeveloper.tiktok.messages.WebcastLinkMicBattle;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import lombok.Value;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Getter
|
@Value
|
||||||
public class LinkMicBattleTeam {
|
public class LinkMicBattleTeam {
|
||||||
private final Long teamId;
|
Long teamId;
|
||||||
private final List<User> users;
|
List<User> users;
|
||||||
|
|
||||||
public LinkMicBattleTeam(WebcastLinkMicBattle.LinkMicBattleTeam team) {
|
public LinkMicBattleTeam(WebcastLinkMicBattle.LinkMicBattleTeam team) {
|
||||||
this.teamId = team.getId();
|
this.teamId = team.getId();
|
||||||
|
|||||||
@@ -1,19 +1,19 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.objects;
|
package io.github.jwdeveloper.tiktok.events.objects;
|
||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import lombok.Value;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public class Picture {
|
public class Picture {
|
||||||
|
|
||||||
public final List<String> urls;
|
List<String> urls;
|
||||||
|
public Picture(io.github.jwdeveloper.tiktok.messages.Image profilePicture) {
|
||||||
public Picture(io.github.jwdeveloper.tiktok.messages.Picture profilePicture) {
|
this.urls = profilePicture.getUrlListList();
|
||||||
this.urls = profilePicture.getUrlsList();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Picture(List<String> urls) {
|
public Picture(List<String> urls) {
|
||||||
this.urls = urls;
|
this.urls = urls;
|
||||||
}
|
}
|
||||||
@@ -22,4 +22,20 @@ public class Picture {
|
|||||||
{
|
{
|
||||||
this.urls = Arrays.stream(urls).toList();
|
this.urls = Arrays.stream(urls).toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static Picture Map(io.github.jwdeveloper.tiktok.messages.Image profilePicture)
|
||||||
|
{
|
||||||
|
return new Picture(profilePicture.getUrlListList());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Picture Empty()
|
||||||
|
{
|
||||||
|
return new Picture();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<Picture> EmptyList()
|
||||||
|
{
|
||||||
|
return new ArrayList<Picture>();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,18 +2,17 @@ package io.github.jwdeveloper.tiktok.events.objects;
|
|||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import lombok.Value;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Getter
|
@Value
|
||||||
@AllArgsConstructor
|
|
||||||
public class PollOption {
|
public class PollOption {
|
||||||
|
|
||||||
private final User user;
|
private final User user;
|
||||||
private final List<Option> options;
|
private final List<Option> options;
|
||||||
|
|
||||||
@Getter
|
@Value
|
||||||
@AllArgsConstructor
|
|
||||||
public static final class Option {
|
public static final class Option {
|
||||||
private final String label;
|
private final String label;
|
||||||
|
|
||||||
|
|||||||
@@ -7,19 +7,16 @@ import lombok.Setter;
|
|||||||
@Getter
|
@Getter
|
||||||
public class TikTokGift {
|
public class TikTokGift {
|
||||||
private final Gift gift;
|
private final Gift gift;
|
||||||
private User sender;
|
private final User sender;
|
||||||
@Setter
|
@Setter
|
||||||
private int amount;
|
private long amount;
|
||||||
|
|
||||||
@Setter
|
@Setter
|
||||||
private boolean streakFinished;
|
private boolean streakFinished;
|
||||||
|
|
||||||
public TikTokGift(WebcastGiftMessage message) {
|
public TikTokGift(WebcastGiftMessage message) {
|
||||||
gift = new Gift(message.getGiftDetails());
|
gift = new Gift(message.getGift());
|
||||||
if (message.hasSender()) {
|
sender = User.MapOrEmpty(message.getUser());
|
||||||
sender = new User(message.getSender());
|
amount = message.getComboCount();
|
||||||
}
|
streakFinished = message.getRepeatEnd() > 0;
|
||||||
amount = message.getAmount();
|
|
||||||
streakFinished = message.getRepeatEnd();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,22 +1,18 @@
|
|||||||
package io.github.jwdeveloper.tiktok.events.objects;
|
package io.github.jwdeveloper.tiktok.events.objects;
|
||||||
|
import lombok.Value;
|
||||||
|
|
||||||
import lombok.Getter;
|
@Value
|
||||||
|
|
||||||
@Getter
|
|
||||||
public class TopViewer {
|
public class TopViewer {
|
||||||
private Integer rank;
|
Integer rank;
|
||||||
|
|
||||||
private User user;
|
User user;
|
||||||
|
|
||||||
private Integer coinsGiven;
|
Integer coinsGiven;
|
||||||
|
|
||||||
public TopViewer(io.github.jwdeveloper.tiktok.messages.TopViewer viewer)
|
public TopViewer(io.github.jwdeveloper.tiktok.messages.TopViewer viewer)
|
||||||
{
|
{
|
||||||
rank = viewer.getRank();
|
rank = viewer.getRank();
|
||||||
if(viewer.hasUser())
|
user = User.MapOrEmpty(viewer.getUser());
|
||||||
{
|
|
||||||
user = new User(viewer.getUser());
|
|
||||||
}
|
|
||||||
coinsGiven = viewer.getCoinsGiven();
|
coinsGiven = viewer.getCoinsGiven();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,14 +20,14 @@ public class User {
|
|||||||
|
|
||||||
private Picture picture1080;
|
private Picture picture1080;
|
||||||
|
|
||||||
private Integer following;
|
private long following;
|
||||||
|
|
||||||
private Integer followers;
|
private long followers;
|
||||||
|
|
||||||
private Integer followsHost;
|
private long followsHost;
|
||||||
public List<Picture> additionalPictures;
|
private List<Picture> additionalPictures;
|
||||||
|
|
||||||
public List<Badge> badges;
|
private List<Badge> badges;
|
||||||
|
|
||||||
public User(Long userId,
|
public User(Long userId,
|
||||||
String uniqueId,
|
String uniqueId,
|
||||||
@@ -71,17 +71,39 @@ public class User {
|
|||||||
|
|
||||||
public User(io.github.jwdeveloper.tiktok.messages.User user) {
|
public User(io.github.jwdeveloper.tiktok.messages.User user) {
|
||||||
assert user != null;
|
assert user != null;
|
||||||
userId = user.getUserId();
|
userId = user.getId();
|
||||||
uniqueId = user.getUniqueId();
|
uniqueId = user.getSpecialId();
|
||||||
nickName = user.getNickname();
|
nickName = user.getNickname();
|
||||||
description = user.getDescription();
|
description = user.getBioDescription();
|
||||||
profilePicture = new Picture(user.getProfilePicture());
|
profilePicture = new Picture(user.getAvatarThumb());
|
||||||
picture720 = new Picture(user.getPicture720());
|
picture720 = new Picture(user.getAvatarMedium());
|
||||||
picture1080 = new Picture(user.getPicture1080());
|
picture1080 = new Picture(user.getAvatarLarge());
|
||||||
following = user.getFollowerData().getFollowing();
|
following = user.getFollowInfo().getFollowingCount();
|
||||||
followers = user.getFollowerData().getFollowers();
|
followers = user.getFollowInfo().getFollowerCount();
|
||||||
followsHost = user.getFollowerData().getFollowsHost();
|
followsHost = user.getFollowInfo().getFollowStatus();
|
||||||
badges = user.getBadgesList().stream().map(Badge::new).toList();
|
badges = user.getBadgeListList().stream().map(Badge::new).toList();
|
||||||
additionalPictures = new ArrayList<>();
|
additionalPictures = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static User MapOrEmpty(io.github.jwdeveloper.tiktok.messages.User user)
|
||||||
|
{
|
||||||
|
if(user != null)
|
||||||
|
{
|
||||||
|
return new User(user);
|
||||||
|
}
|
||||||
|
return new User(0L,
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
Picture.Empty(),
|
||||||
|
Picture.Empty(),
|
||||||
|
Picture.Empty(),
|
||||||
|
Picture.EmptyList(),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
Badge.EmptyList());
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package io.github.jwdeveloper.tiktok.exceptions;
|
||||||
|
|
||||||
|
public class TikTokEventListenerMethodException extends TikTokLiveException
|
||||||
|
{
|
||||||
|
public TikTokEventListenerMethodException() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public TikTokEventListenerMethodException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TikTokEventListenerMethodException(String message, Throwable cause) {
|
||||||
|
super(message, cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TikTokEventListenerMethodException(Throwable cause) {
|
||||||
|
super(cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TikTokEventListenerMethodException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
|
||||||
|
super(message, cause, enableSuppression, writableStackTrace);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
package io.github.jwdeveloper.tiktok.exceptions;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.messages.WebcastResponse;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
import java.util.Base64;
|
||||||
|
|
||||||
|
public class TikTokLiveMessageException extends TikTokLiveException {
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
private final WebcastResponse.Message webcastMessage;
|
||||||
|
@Getter
|
||||||
|
private final WebcastResponse webcastResponse;
|
||||||
|
|
||||||
|
|
||||||
|
public TikTokLiveMessageException(WebcastResponse.Message message,
|
||||||
|
WebcastResponse webcastResponse,
|
||||||
|
Throwable cause) {
|
||||||
|
super("Error while handling Message: " + message.getType() + ": \n", cause);
|
||||||
|
this.webcastMessage = message;
|
||||||
|
this.webcastResponse = webcastResponse;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String messageName()
|
||||||
|
{
|
||||||
|
return webcastMessage.getType();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String messageToBase64()
|
||||||
|
{
|
||||||
|
return Base64.getEncoder().encodeToString(webcastMessage.getBinary().toByteArray());
|
||||||
|
}
|
||||||
|
|
||||||
|
public String webcastResponseToBase64()
|
||||||
|
{
|
||||||
|
return Base64.getEncoder().encodeToString(webcastResponse.toByteArray());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
package io.github.jwdeveloper.tiktok.exceptions;
|
|
||||||
|
|
||||||
public class TikTokLiveMessageParsingException extends TikTokLiveException
|
|
||||||
{
|
|
||||||
public TikTokLiveMessageParsingException() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public TikTokLiveMessageParsingException(String message) {
|
|
||||||
super(message);
|
|
||||||
}
|
|
||||||
|
|
||||||
public TikTokLiveMessageParsingException(String message, Throwable cause) {
|
|
||||||
super(message, cause);
|
|
||||||
}
|
|
||||||
|
|
||||||
public TikTokLiveMessageParsingException(Throwable cause) {
|
|
||||||
super(cause);
|
|
||||||
}
|
|
||||||
|
|
||||||
public TikTokLiveMessageParsingException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
|
|
||||||
super(message, cause, enableSuppression, writableStackTrace);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
package io.github.jwdeveloper.tiktok.exceptions;
|
||||||
|
|
||||||
|
public class TikTokLiveOfflineHostException extends TikTokLiveException
|
||||||
|
{
|
||||||
|
public TikTokLiveOfflineHostException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package io.github.jwdeveloper.tiktok.exceptions;
|
||||||
|
|
||||||
|
public class TikTokLiveRequestException extends TikTokLiveException
|
||||||
|
{
|
||||||
|
public TikTokLiveRequestException() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public TikTokLiveRequestException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TikTokLiveRequestException(String message, Throwable cause) {
|
||||||
|
super(message, cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TikTokLiveRequestException(Throwable cause) {
|
||||||
|
super(cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TikTokLiveRequestException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
|
||||||
|
super(message, cause, enableSuppression, writableStackTrace);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package io.github.jwdeveloper.tiktok.exceptions;
|
||||||
|
|
||||||
|
|
||||||
|
public class TikTokMessageMappingException extends TikTokLiveException
|
||||||
|
{
|
||||||
|
public TikTokMessageMappingException(Class<?> inputClazz, Class<?> outputClass, Throwable throwable)
|
||||||
|
{
|
||||||
|
super("Unable to handle mapping from class: " + inputClazz.getSimpleName() + " to class " + outputClass.getSimpleName(),throwable);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TikTokMessageMappingException(Class<?> inputClazz, Class<?> outputClass, String message)
|
||||||
|
{
|
||||||
|
super("Unable to handle mapping from class: " + inputClazz.getSimpleName() + " to class " + outputClass.getSimpleName()+": "+message);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package io.github.jwdeveloper.tiktok.exceptions;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
public class TikTokProtocolBufferException extends TikTokLiveException
|
||||||
|
{
|
||||||
|
@Getter
|
||||||
|
private final byte[] bytes;
|
||||||
|
|
||||||
|
public TikTokProtocolBufferException(String message, byte[] bytes, Throwable cause)
|
||||||
|
{
|
||||||
|
super(message, cause);
|
||||||
|
this.bytes = bytes;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package io.github.jwdeveloper.tiktok.handler;
|
||||||
|
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.messages.WebcastResponse;
|
||||||
|
|
||||||
|
public interface TikTokMessageHandler
|
||||||
|
{
|
||||||
|
TikTokEvent handle(WebcastResponse.Message message) throws Exception;
|
||||||
|
}
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
package io.github.jwdeveloper.tiktok.http.Resource;
|
|
||||||
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
public class ClientFetchDataResponse {
|
|
||||||
}
|
|
||||||
@@ -1,13 +1,12 @@
|
|||||||
package io.github.jwdeveloper.tiktok.http;
|
package io.github.jwdeveloper.tiktok.http;
|
||||||
|
|
||||||
import java.net.http.HttpRequest;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public interface TikTokHttpRequest {
|
public interface TikTokHttpRequest {
|
||||||
TikTokHttpRequest SetQueries(Map<String, Object> queries);
|
TikTokHttpRequest setQueries(Map<String, Object> queries);
|
||||||
|
|
||||||
TikTokHttpRequest setHeader(String key, String value);
|
TikTokHttpRequest setHeader(String key, String value);
|
||||||
String Get(String url);
|
String get(String url);
|
||||||
|
|
||||||
String Post(String url, HttpRequest.BodyPublisher data);
|
String post(String url);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package io.github.jwdeveloper.tiktok.listener;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface ListenersManager
|
||||||
|
{
|
||||||
|
List<TikTokEventListener> getBindingModels();
|
||||||
|
void addListener(TikTokEventListener listener);
|
||||||
|
|
||||||
|
void removeListener(TikTokEventListener listener);
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
package io.github.jwdeveloper.tiktok.listener;
|
||||||
|
|
||||||
|
public interface TikTokEventListener
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package io.github.jwdeveloper.tiktok.live;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.events.objects.TikTokGift;
|
||||||
|
import io.github.jwdeveloper.tiktok.models.GiftId;
|
||||||
|
import io.github.jwdeveloper.tiktok.models.gifts.TikTokGiftInfo;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public interface GiftManager
|
||||||
|
{
|
||||||
|
Map<Integer, TikTokGiftInfo> getGiftsInfo();
|
||||||
|
|
||||||
|
Map<GiftId, TikTokGift> getActiveGifts();
|
||||||
|
}
|
||||||
@@ -1,10 +1,19 @@
|
|||||||
package io.github.jwdeveloper.tiktok.live;
|
package io.github.jwdeveloper.tiktok.live;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.listener.ListenersManager;
|
||||||
|
|
||||||
public interface LiveClient {
|
public interface LiveClient {
|
||||||
|
|
||||||
|
// Connects to the live stream.
|
||||||
void connect();
|
void connect();
|
||||||
|
|
||||||
|
// Disconnects the connection.
|
||||||
void disconnect();
|
void disconnect();
|
||||||
|
|
||||||
|
// Gets the meta information about all gifts.
|
||||||
|
GiftManager getGiftManager();
|
||||||
|
|
||||||
|
// Gets the current room info from TikTok API including streamer info, room status and statistics.
|
||||||
LiveRoomInfo getRoomInfo();
|
LiveRoomInfo getRoomInfo();
|
||||||
|
ListenersManager getListenersManager();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package io.github.jwdeveloper.tiktok.live;
|
|||||||
public interface LiveRoomInfo
|
public interface LiveRoomInfo
|
||||||
{
|
{
|
||||||
int getViewersCount();
|
int getViewersCount();
|
||||||
|
|
||||||
String getRoomId();
|
String getRoomId();
|
||||||
String getUserName();
|
String getUserName();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import lombok.Data;
|
|||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class GiftId
|
public class GiftId
|
||||||
{
|
{
|
||||||
public long Gift;
|
private long giftId;
|
||||||
|
|
||||||
public String UserName;
|
private String userName;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
package io.github.jwdeveloper.tiktok.models;
|
||||||
|
|
||||||
|
public enum GiftStrike
|
||||||
|
{
|
||||||
|
BEGIN, UPDATE, ENDED
|
||||||
|
}
|
||||||
@@ -3,14 +3,13 @@ package io.github.jwdeveloper.tiktok.models.gifts;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class DefaultFormat
|
public class DefaultFormat {
|
||||||
{
|
private boolean bold;
|
||||||
private boolean bold ;
|
private String color;
|
||||||
private String color ;
|
private int font_size;
|
||||||
private int font_size ;
|
private boolean italic;
|
||||||
private boolean italic ;
|
private int italic_angle;
|
||||||
private int italic_angle ;
|
private boolean use_highlight_color;
|
||||||
private boolean use_highlight_color ;
|
private boolean use_remote_color;
|
||||||
private boolean use_remote_color ;
|
private int weight;
|
||||||
private int weight ;
|
|
||||||
}
|
}
|
||||||
@@ -5,10 +5,9 @@ import lombok.Data;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class DisplayText
|
public class DisplayText {
|
||||||
{
|
private DefaultFormat default_format;
|
||||||
private DefaultFormat default_format ;
|
private String default_pattern;
|
||||||
private String default_pattern ;
|
private String key;
|
||||||
private String key ;
|
private List<Object> pieces;
|
||||||
private List<Object> pieces ;
|
|
||||||
}
|
}
|
||||||
@@ -5,14 +5,13 @@ import lombok.Data;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class GiftLabelIcon
|
public class GiftLabelIcon {
|
||||||
{
|
private String avg_color;
|
||||||
private String avg_color ;
|
private int height;
|
||||||
private int height ;
|
private int image_type;
|
||||||
private int image_type ;
|
private boolean is_animated;
|
||||||
private boolean is_animated ;
|
private String open_web_url;
|
||||||
private String open_web_url ;
|
private String uri;
|
||||||
private String uri ;
|
private List<String> url_list;
|
||||||
private List<String> url_list ;
|
private int width;
|
||||||
private int width ;
|
|
||||||
}
|
}
|
||||||
@@ -6,10 +6,9 @@ import java.util.List;
|
|||||||
|
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class GiftPanelBanner
|
public class GiftPanelBanner {
|
||||||
{
|
private List<Object> bg_color_values;
|
||||||
private List<Object> bg_color_values ;
|
private DisplayText display_text;
|
||||||
private DisplayText display_text ;
|
private LeftIcon left_icon;
|
||||||
private LeftIcon left_icon ;
|
private String schema_url;
|
||||||
private String schema_url ;
|
|
||||||
}
|
}
|
||||||
@@ -5,14 +5,13 @@ import lombok.Data;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class Image
|
public class Image {
|
||||||
{
|
private String avg_color;
|
||||||
private String avg_color ;
|
private int height;
|
||||||
private int height ;
|
private int image_type;
|
||||||
private int image_type ;
|
private boolean is_animated;
|
||||||
private boolean is_animated ;
|
private String open_web_url;
|
||||||
private String open_web_url ;
|
private String uri;
|
||||||
private String uri ;
|
private List<String> url_list;
|
||||||
private List<String> url_list ;
|
private int width;
|
||||||
private int width ;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,16 +5,15 @@ import lombok.Data;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class LeftIcon
|
public class LeftIcon {
|
||||||
{
|
private String avg_color;
|
||||||
private String avg_color ;
|
private int height;
|
||||||
private int height ;
|
private int image_type;
|
||||||
private int image_type ;
|
private boolean is_animated;
|
||||||
private boolean is_animated ;
|
private String open_web_url;
|
||||||
private String open_web_url ;
|
private String uri;
|
||||||
private String uri ;
|
private List<String> url_list;
|
||||||
private List<String> url_list ;
|
private int width;
|
||||||
private int width ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
package io.github.jwdeveloper.tiktok.models.gifts;
|
package io.github.jwdeveloper.tiktok.models.gifts;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
public class LockInfo
|
public class LockInfo
|
||||||
{
|
{
|
||||||
public int lock_type;
|
private int lock_type;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import lombok.Data;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class TikTokGift
|
public class TikTokGiftInfo
|
||||||
{
|
{
|
||||||
private int action_type;
|
private int action_type;
|
||||||
private int app_id;
|
private int app_id;
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
package io.github.jwdeveloper.tiktok.utils;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.exceptions.TikTokLiveException;
|
||||||
|
|
||||||
|
public class CancelationToken
|
||||||
|
{
|
||||||
|
private boolean isCanceled =false;
|
||||||
|
|
||||||
|
public void cancel()
|
||||||
|
{
|
||||||
|
isCanceled =true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isCancel()
|
||||||
|
{
|
||||||
|
|
||||||
|
return isCanceled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void throwIfCancel()
|
||||||
|
{
|
||||||
|
if(!isCanceled)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
throw new TikTokLiveException("Token requested cancelation");
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isNotCancel()
|
||||||
|
{
|
||||||
|
return !isCancel();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static CancelationToken create()
|
||||||
|
{
|
||||||
|
return new CancelationToken();
|
||||||
|
}
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -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>1.0.0</version>
|
<version>0.0.20-Release</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
@@ -29,6 +29,23 @@
|
|||||||
<artifactId>protobuf-java</artifactId>
|
<artifactId>protobuf-java</artifactId>
|
||||||
<version>3.24.1</version>
|
<version>3.24.1</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.slf4j</groupId>
|
||||||
|
<artifactId>slf4j-simple</artifactId>
|
||||||
|
<version>2.0.7</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.java-websocket</groupId>
|
||||||
|
<artifactId>Java-WebSocket</artifactId>
|
||||||
|
<version>1.5.4</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.slf4j</groupId>
|
||||||
|
<artifactId>slf4j-simple</artifactId>
|
||||||
|
<version>2.0.7</version>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,45 +1,48 @@
|
|||||||
package io.github.jwdeveloper.tiktok;
|
package io.github.jwdeveloper.tiktok;
|
||||||
|
|
||||||
import io.github.jwdeveloper.tiktok.events.objects.TikTokGift;
|
import io.github.jwdeveloper.tiktok.events.objects.TikTokGift;
|
||||||
import io.github.jwdeveloper.tiktok.http.TikTokApiService;
|
import io.github.jwdeveloper.tiktok.live.GiftManager;
|
||||||
|
import io.github.jwdeveloper.tiktok.messages.WebcastGiftMessage;
|
||||||
import io.github.jwdeveloper.tiktok.models.GiftId;
|
import io.github.jwdeveloper.tiktok.models.GiftId;
|
||||||
|
import io.github.jwdeveloper.tiktok.models.gifts.TikTokGiftInfo;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.logging.Logger;
|
|
||||||
|
|
||||||
public class TikTokGiftManager {
|
public class TikTokGiftManager implements GiftManager {
|
||||||
private Logger logger;
|
|
||||||
private ClientSettings clientSettings;
|
|
||||||
private TikTokApiService apiService;
|
|
||||||
private Map<Integer, TikTokGift> gifts;
|
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private Map<GiftId, TikTokGift> activeGifts;
|
private final Map<Integer, TikTokGiftInfo> giftsInfo;
|
||||||
|
@Getter
|
||||||
|
private final Map<GiftId, TikTokGift> activeGifts;
|
||||||
|
|
||||||
public TikTokGiftManager(Logger logger, TikTokApiService apiService, ClientSettings clientSettings) {
|
public TikTokGiftManager() {
|
||||||
this.logger = logger;
|
giftsInfo = new HashMap<>();
|
||||||
this.clientSettings = clientSettings;
|
|
||||||
this.apiService = apiService;
|
|
||||||
this.gifts = new HashMap<>();
|
|
||||||
activeGifts = new HashMap<>();
|
activeGifts = new HashMap<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void loadGifts() {
|
public TikTokGift updateActiveGift(WebcastGiftMessage giftMessage) {
|
||||||
if (!clientSettings.isDownloadGiftInfo()) {
|
var giftId = new GiftId(giftMessage.getGiftId(), giftMessage.getUser().getIdStr());
|
||||||
return;
|
if (activeGifts.containsKey(giftId)) {
|
||||||
|
var gift = activeGifts.get(giftId);
|
||||||
|
gift.setAmount(giftMessage.getComboCount());
|
||||||
|
} else {
|
||||||
|
var newGift = new TikTokGift(giftMessage);
|
||||||
|
activeGifts.put(giftId, newGift);
|
||||||
}
|
}
|
||||||
logger.info("Fetching gifts");
|
|
||||||
//TODO gifts =apiService.fetchAvailableGifts();
|
var gift = activeGifts.get(giftId);
|
||||||
|
|
||||||
|
if (giftMessage.getRepeatEnd() > 0)
|
||||||
|
{
|
||||||
|
gift.setStreakFinished(true);
|
||||||
|
activeGifts.remove(giftId);
|
||||||
|
}
|
||||||
|
return gift;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<TikTokGift> getGifts()
|
public void loadGifsInfo(Map<Integer, TikTokGiftInfo> gifts) {
|
||||||
{
|
this.giftsInfo.putAll(gifts);
|
||||||
return gifts.values().stream().toList();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,4 @@ public class TikTokLive
|
|||||||
{
|
{
|
||||||
return new TikTokLiveClientBuilder(userName);
|
return new TikTokLiveClientBuilder(userName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,94 +1,127 @@
|
|||||||
package io.github.jwdeveloper.tiktok;
|
package io.github.jwdeveloper.tiktok;
|
||||||
|
|
||||||
|
import io.github.jwdeveloper.tiktok.events.messages.TikTokDisconnectedEvent;
|
||||||
|
import io.github.jwdeveloper.tiktok.events.messages.TikTokErrorEvent;
|
||||||
import io.github.jwdeveloper.tiktok.exceptions.TikTokLiveException;
|
import io.github.jwdeveloper.tiktok.exceptions.TikTokLiveException;
|
||||||
import io.github.jwdeveloper.tiktok.handlers.TikTokEventHandler;
|
import io.github.jwdeveloper.tiktok.exceptions.TikTokLiveOfflineHostException;
|
||||||
|
import io.github.jwdeveloper.tiktok.handlers.TikTokEventObserver;
|
||||||
import io.github.jwdeveloper.tiktok.http.TikTokApiService;
|
import io.github.jwdeveloper.tiktok.http.TikTokApiService;
|
||||||
|
import io.github.jwdeveloper.tiktok.listener.ListenersManager;
|
||||||
|
import io.github.jwdeveloper.tiktok.listener.TikTokListenersManager;
|
||||||
import io.github.jwdeveloper.tiktok.live.ConnectionState;
|
import io.github.jwdeveloper.tiktok.live.ConnectionState;
|
||||||
|
import io.github.jwdeveloper.tiktok.live.GiftManager;
|
||||||
import io.github.jwdeveloper.tiktok.live.LiveClient;
|
import io.github.jwdeveloper.tiktok.live.LiveClient;
|
||||||
import io.github.jwdeveloper.tiktok.live.LiveRoomInfo;
|
import io.github.jwdeveloper.tiktok.live.LiveRoomInfo;
|
||||||
import io.github.jwdeveloper.tiktok.live.TikTokRoomInfo;
|
import io.github.jwdeveloper.tiktok.websocket.TikTokWebSocketClient;
|
||||||
import io.github.jwdeveloper.tiktok.websocket.TikTokWebsocketClient;
|
|
||||||
|
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
public class TikTokLiveClient implements LiveClient {
|
public class TikTokLiveClient implements LiveClient {
|
||||||
private final TikTokRoomInfo meta;
|
private final TikTokRoomInfo liveRoomInfo;
|
||||||
private final TikTokGiftManager giftManager;
|
private final TikTokGiftManager tikTokGiftManager;
|
||||||
private final TikTokApiService apiClient;
|
private final TikTokApiService apiService;
|
||||||
private final TikTokWebsocketClient webSocketClient;
|
private final TikTokWebSocketClient webSocketClient;
|
||||||
private final TikTokEventHandler tikTokEventHandler;
|
private final TikTokEventObserver tikTokEventHandler;
|
||||||
|
private final ClientSettings clientSettings;
|
||||||
|
private final TikTokListenersManager listenersManager;
|
||||||
private final Logger logger;
|
private final Logger logger;
|
||||||
|
|
||||||
|
|
||||||
public TikTokLiveClient(TikTokRoomInfo tikTokLiveMeta,
|
public TikTokLiveClient(TikTokRoomInfo tikTokLiveMeta,
|
||||||
TikTokApiService tikTokApiService,
|
TikTokApiService tikTokApiService,
|
||||||
TikTokWebsocketClient webSocketClient,
|
TikTokWebSocketClient webSocketClient,
|
||||||
TikTokGiftManager tikTokGiftManager,
|
TikTokGiftManager tikTokGiftManager,
|
||||||
TikTokEventHandler tikTokEventHandler,
|
TikTokEventObserver tikTokEventHandler,
|
||||||
|
ClientSettings clientSettings,
|
||||||
|
TikTokListenersManager listenersManager,
|
||||||
Logger logger) {
|
Logger logger) {
|
||||||
this.meta = tikTokLiveMeta;
|
this.liveRoomInfo = tikTokLiveMeta;
|
||||||
this.giftManager = tikTokGiftManager;
|
this.tikTokGiftManager = tikTokGiftManager;
|
||||||
this.apiClient = tikTokApiService;
|
this.apiService = tikTokApiService;
|
||||||
this.webSocketClient = webSocketClient;
|
this.webSocketClient = webSocketClient;
|
||||||
this.logger = logger;
|
|
||||||
this.tikTokEventHandler = tikTokEventHandler;
|
this.tikTokEventHandler = tikTokEventHandler;
|
||||||
|
this.clientSettings = clientSettings;
|
||||||
|
this.listenersManager = listenersManager;
|
||||||
|
this.logger = logger;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void connect() {
|
public void connect() {
|
||||||
try {
|
try {
|
||||||
tryConnect();
|
tryConnect();
|
||||||
} catch (Exception e) {
|
}
|
||||||
e.printStackTrace();
|
catch (TikTokLiveException e)
|
||||||
|
{
|
||||||
setState(ConnectionState.DISCONNECTED);
|
setState(ConnectionState.DISCONNECTED);
|
||||||
|
tikTokEventHandler.publish(this, new TikTokErrorEvent(e));
|
||||||
|
tikTokEventHandler.publish(this, new TikTokDisconnectedEvent());
|
||||||
|
|
||||||
|
if(e instanceof TikTokLiveOfflineHostException && clientSettings.isRetryOnConnectionFailure())
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
Thread.sleep(clientSettings.getRetryConnectionTimeout().toMillis());
|
||||||
|
}
|
||||||
|
catch (Exception ignored){}
|
||||||
|
logger.info("Reconnecting");
|
||||||
|
this.connect();
|
||||||
|
}
|
||||||
|
throw e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void disconnect() {
|
public void disconnect() {
|
||||||
if (!meta.hasConnectionState(ConnectionState.CONNECTED)) {
|
if (!liveRoomInfo.hasConnectionState(ConnectionState.CONNECTED)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
webSocketClient.stop();
|
webSocketClient.stop();
|
||||||
setState(ConnectionState.DISCONNECTED);
|
setState(ConnectionState.DISCONNECTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void tryConnect() {
|
public void tryConnect() {
|
||||||
if (meta.hasConnectionState(ConnectionState.CONNECTED))
|
if (liveRoomInfo.hasConnectionState(ConnectionState.CONNECTED))
|
||||||
throw new RuntimeException("Already connected");
|
throw new TikTokLiveException("Already connected");
|
||||||
if (meta.hasConnectionState(ConnectionState.CONNECTING))
|
if (liveRoomInfo.hasConnectionState(ConnectionState.CONNECTING))
|
||||||
throw new RuntimeException("Already connecting");
|
throw new TikTokLiveException("Already connecting");
|
||||||
|
|
||||||
logger.info("Connecting");
|
logger.info("Connecting");
|
||||||
setState(ConnectionState.CONNECTING);
|
setState(ConnectionState.CONNECTING);
|
||||||
|
|
||||||
var roomId = apiClient.fetchRoomId(meta.getUserName());
|
var roomId = apiService.fetchRoomId(liveRoomInfo.getUserName());
|
||||||
meta.setRoomId(roomId);
|
liveRoomInfo.setRoomId(roomId);
|
||||||
var roomData =apiClient.fetchRoomInfo();
|
var roomData = apiService.fetchRoomInfo();
|
||||||
if (roomData.getStatus() == 0 || roomData.getStatus() == 4)
|
if (roomData.getStatus() == 0 || roomData.getStatus() == 4) {
|
||||||
{
|
throw new TikTokLiveOfflineHostException("LiveStream for HostID could not be found. Is the Host online?");
|
||||||
throw new TikTokLiveException("LiveStream for HostID could not be found. Is the Host online?");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// giftManager.loadGifts();
|
if (clientSettings.isDownloadGiftInfo())
|
||||||
var clientData = apiClient.fetchClientData();
|
{
|
||||||
webSocketClient.start(clientData);
|
logger.info("Fetch Gift info");
|
||||||
|
var gifts = apiService.fetchAvailableGifts();
|
||||||
|
tikTokGiftManager.loadGifsInfo(gifts);
|
||||||
|
}
|
||||||
|
var clientData = apiService.fetchClientData();
|
||||||
|
webSocketClient.start(clientData, this);
|
||||||
setState(ConnectionState.CONNECTED);
|
setState(ConnectionState.CONNECTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public LiveRoomInfo getRoomInfo() {
|
public LiveRoomInfo getRoomInfo() {
|
||||||
return meta;
|
return liveRoomInfo;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public ListenersManager getListenersManager()
|
||||||
|
{
|
||||||
|
return listenersManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public GiftManager getGiftManager() {
|
||||||
|
return tikTokGiftManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void setState(ConnectionState connectionState) {
|
private void setState(ConnectionState connectionState) {
|
||||||
logger.info("TikTokLive client state: " + connectionState.name());
|
logger.info("TikTokLive client state: " + connectionState.name());
|
||||||
meta.setConnectionState(connectionState);
|
liveRoomInfo.setConnectionState(connectionState);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user