Skip to content

Commit 6e092dd

Browse files
committed
Changes:
LiveRoomInfo + new method getConnectionState() getting current state of connection + ListenersManager getBindingModels() renamed to getListeners() + Introducing documentation, each public interface got small documentation + New property in config .setSessionId() + New event: onReconnecting() Bugs: CommentEvent was throwing mapping exception
1 parent bc045d4 commit 6e092dd

File tree

27 files changed

+414
-173
lines changed

27 files changed

+414
-173
lines changed

.github/workflows/maven-publish.yml

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -72,13 +72,8 @@ jobs:
7272
run: |
7373
git config --local user.email "action@github.com"
7474
git config --local user.name "GitHub Action"
75-
git add pom.xml
76-
git add API/pom.xml
77-
git add Client/pom.xml
78-
git add TestApplication/pom.xml
79-
git add Tools-EventsCollector/pom.xml
80-
git add Tools-ReadmeGenerator/pom.xml
81-
git add Tools/pom.xml
75+
git add README.MD
76+
git add pom.xml && git add '**/pom.xml'
8277
git commit -m "Update version in pom.xml"
8378
- name: Push changes
8479
uses: ad-m/github-push-action@master

.gitignore

Lines changed: 62 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,4 +79,65 @@ fabric.properties
7979
.idea/httpRequests
8080

8181
# Android studio 3.1+ serialized cache file
82-
.idea/caches/build_file_checksums.ser
82+
.idea/caches/build_file_checksums.ser
83+
/.idea/.gitignore
84+
/.idea/.name
85+
/.idea/compiler.xml
86+
/TestApplication/target/classes/io/github/jwdeveloper/tiktok/ConfigurationExample.class
87+
/TestApplication/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
88+
/TestApplication/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
89+
/Tools/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
90+
/Tools/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
91+
/Tools-EventsCollector/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
92+
/Tools-ReadmeGenerator/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
93+
/Tools-ReadmeGenerator/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
94+
/.idea/encodings.xml
95+
/Tools-ReadmeGenerator/target/classes/io/github/jwdeveloper/tiktok/EventsListGenerator$EventTypeComparator.class
96+
/Tools-ReadmeGenerator/target/classes/io/github/jwdeveloper/tiktok/EventsListGenerator.class
97+
/Tools-EventsCollector/target/classes/io/github/jwdeveloper/tiktok/tools/collector/tables/ExceptionInfoModel.class
98+
/Tools/target/classes/io/github/jwdeveloper/tiktok/utils/FilesUtility.class
99+
/TestApplication/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
100+
/TestApplication/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
101+
/Tools/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
102+
/Tools/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
103+
/Tools-EventsCollector/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
104+
/Tools-ReadmeGenerator/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
105+
/Tools-ReadmeGenerator/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
106+
/.idea/jarRepositories.xml
107+
/TestApplication/target/classes/io/github/jwdeveloper/tiktok/ListenerExample$CustomListener.class
108+
/TestApplication/target/classes/io/github/jwdeveloper/tiktok/ListenerExample.class
109+
/Tools-ReadmeGenerator/target/classes/io/github/jwdeveloper/tiktok/LiveClientMethodsGenerator.class
110+
/TestApplication/target/classes/io/github/jwdeveloper/tiktok/Main.class
111+
/Tools-EventsCollector/target/classes/io/github/jwdeveloper/tiktok/tools/collector/Main.class
112+
/Tools-ReadmeGenerator/target/classes/io/github/jwdeveloper/tiktok/Main.class
113+
/.idea/misc.xml
114+
/Tools-ReadmeGenerator/src/main/resources/output.md
115+
/Tools-ReadmeGenerator/target/classes/output.md
116+
/TestApplication/target/maven-archiver/pom.properties
117+
/Tools/target/maven-archiver/pom.properties
118+
/Tools-EventsCollector/target/maven-archiver/pom.properties
119+
/Tools-ReadmeGenerator/target/maven-archiver/pom.properties
120+
/.idea/inspectionProfiles/Project_Default.xml
121+
/Tools/target/classes/io/github/jwdeveloper/tiktok/protocol/ProtocolGenerator.class
122+
/Tools-ReadmeGenerator/target/classes/io/github/jwdeveloper/tiktok/ReadmeGenerator.class
123+
/TestApplication/target/classes/io/github/jwdeveloper/tiktok/SimpleExample.class
124+
/Tools-EventsCollector/target/classes/io/github/jwdeveloper/tiktok/tools/collector/db/SqlConsts.class
125+
/Tools-ReadmeGenerator/target/classes/template.md
126+
/Tools/target/classes/io/github/jwdeveloper/tiktok/utils/TemplateUtility.class
127+
/TestApplication/target/TestApplication-0.0.18-Release.jar
128+
/TestApplication/target/TestApplication-0.0.18-Release-all.jar
129+
/Tools-EventsCollector/target/classes/io/github/jwdeveloper/tiktok/tools/collector/db/TikTokDatabase.class
130+
/Tools-EventsCollector/target/classes/io/github/jwdeveloper/tiktok/tools/collector/tables/TikTokErrorModel$TikTokErrorModelBuilder.class
131+
/Tools-EventsCollector/target/classes/io/github/jwdeveloper/tiktok/tools/collector/tables/TikTokErrorModel.class
132+
/Tools-EventsCollector/target/classes/io/github/jwdeveloper/tiktok/tools/collector/db/TikTokErrorModelDAO.class
133+
/target/TikTokLiveJava-0.0.18-Release-all.pom
134+
/Tools-EventsCollector/target/classes/io/github/jwdeveloper/tiktok/tools/collector/tables/TikTokMessageModel$TikTokMessageModelBuilder.class
135+
/Tools-EventsCollector/target/classes/io/github/jwdeveloper/tiktok/tools/collector/tables/TikTokMessageModel.class
136+
/Tools-EventsCollector/target/classes/io/github/jwdeveloper/tiktok/tools/collector/db/TikTokMessageModelDAO.class
137+
/Tools/target/Tools-0.0.18-Release.jar
138+
/Tools/target/Tools-0.0.18-Release-all.jar
139+
/Tools-EventsCollector/target/Tools-EventsCollector-0.0.18-Release.jar
140+
/Tools-EventsCollector/target/Tools-EventsCollector-0.0.18-Release-all.jar
141+
/Tools-ReadmeGenerator/target/Tools-ReadmeGenerator-0.0.18-Release.jar
142+
/Tools-ReadmeGenerator/target/Tools-ReadmeGenerator-0.0.18-Release-all.jar
143+
/.idea/vcs.xml

API/src/main/java/io/github/jwdeveloper/tiktok/ClientSettings.java

Lines changed: 40 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -3,69 +3,75 @@
33
import lombok.Data;
44

55
import java.time.Duration;
6-
import java.util.HashMap;
76
import java.util.Map;
87
import java.util.logging.Level;
98

109
@Data
1110
public class ClientSettings {
12-
/// <summary>
13-
/// Timeout for Connections
14-
/// </summary>
11+
/**
12+
* Timeout for Connections
13+
*/
1514
private Duration timeout;
1615

1716
// public RotatingProxy Proxy;
18-
/// <summary>
19-
/// ISO-Language for Client
20-
/// </summary>
17+
/**
18+
* ISO-Language for Client
19+
*/
2120

2221
private String clientLanguage;
2322

24-
/// <summary>
25-
/// Whether to Retry if Connection Fails
26-
/// </summary>
23+
/**
24+
* Whether to Retry if Connection Fails
25+
*/
2726
private boolean retryOnConnectionFailure;
2827

2928

30-
/// <summary>
31-
/// Wait to connect again for selected amount of time
32-
/// </summary>
29+
/**
30+
* Wait to connect again for selected amount of time
31+
*/
3332
private Duration retryConnectionTimeout;
3433

35-
/// <summary>
36-
/// Whether to handle Messages received from Room when Connecting
37-
/// </summary>
34+
/**
35+
* Whether to handle Messages received from Room when Connecting
36+
*/
3837
private boolean handleExistingMessagesOnConnect;
39-
/// <summary>
40-
/// Whether to download List of Gifts for Room when Connecting
41-
/// </summary>
38+
/**
39+
* Whether to download List of Gifts for Room when Connecting
40+
*/
4241
private boolean downloadGiftInfo;
4342

44-
/// <summary>
45-
/// Whether to print Logs to Console
46-
/// </summary>
43+
/**
44+
* Whether to print Logs to Console
45+
*/
4746

4847
private boolean printToConsole;
49-
/// <summary>
50-
/// LoggingLevel for Logs
51-
/// </summary>
48+
/**
49+
* LoggingLevel for Logs
50+
*/
5251
private Level logLevel;
5352

54-
/// <summary>
55-
/// Whether to print Base64-Data for Messages to Console
56-
/// </summary>
53+
/**
54+
* Whether to print Base64-Data for Messages to Console
55+
*/
5756
private boolean printMessageData;
5857

59-
/// <summary>
60-
/// Tiktok user name
61-
/// </summary>
58+
/**
59+
* Tiktok user name
60+
*/
6261
private String hostName;
6362

6463

65-
/// <summary>
66-
/// Parameters used in requests to tiktok api
67-
/// </summary>
64+
/**
65+
* Parameters used in requests to Tiktok api
66+
*/
6867
private Map<String, Object> clientParameters;
6968

69+
70+
/*
71+
* Optional: Sometimes not every messages from chat are send to TikTokLiveJava to fix this issue you can set sessionId
72+
* documentation how to obtain sessionId https://github.com/isaackogan/TikTok-Live-Connector#send-chat-messages
73+
*/
74+
private String sessionId;
75+
7076
}
7177

API/src/main/java/io/github/jwdeveloper/tiktok/Constants.java

Lines changed: 29 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -8,33 +8,32 @@
88

99
public class Constants {
1010

11-
/// <summary>
12-
/// Web-URL for TikTok
13-
/// </summary>
11+
/**
12+
* Web-URL for TikTok
13+
*/
1414
public static final String TIKTOK_URL_WEB = "https://www.tiktok.com/";
15-
/// <summary>
16-
/// WebCast-BaseURL for TikTok
17-
/// </summary>
15+
/**
16+
* WebCast-BaseURL for TikTok
17+
*/
1818
public static final String TIKTOK_URL_WEBCAST = "https://webcast.tiktok.com/webcast/";
19-
/// <summary>
20-
/// Signing API by Isaac Kogan
21-
/// https://github-wiki-see.page/m/isaackogan/TikTokLive/wiki/All-About-Signatures
22-
/// </summary>
19+
/**
20+
* Signing API by Isaac Kogan
21+
* https://github-wiki-see.page/m/isaackogan/TikTokLive/wiki/All-About-Signatures
22+
*/
2323
public static final String TIKTOK_SIGN_API = "https://tiktok.eulerstream.com/webcast/sign_url";
2424

25-
/// <summary>
26-
/// Default TimeOut for Connections
27-
/// </summary>
25+
/**
26+
* Default TimeOut for Connections
27+
*/
2828
public static final int DEFAULT_TIMEOUT = 20;
29-
/// <summary>
30-
/// Default Polling-Time for Socket-Connection
31-
/// </summary>
29+
/**
30+
* Default Polling-Time for Socket-Connection
31+
*/
3232
public static final int DEFAULT_POLLTIME = 1;
3333

34-
/// <summary>
35-
/// Default Settings for Client
36-
/// </summary>
37-
34+
/**
35+
* Default Settings for Client
36+
*/
3837

3938

4039
public static ClientSettings DefaultClientSettings() {
@@ -53,15 +52,13 @@ public static ClientSettings DefaultClientSettings() {
5352
}
5453

5554

55+
/**
56+
* Default Parameters for HTTP-Request
57+
*/
5658

5759

58-
/// <summary>
59-
/// Default Parameters for HTTP-Request
60-
/// </summary>
61-
62-
63-
public static Map<String,Object> DefaultClientParams() {
64-
var clientParams = new TreeMap<String,Object>();
60+
public static Map<String, Object> DefaultClientParams() {
61+
var clientParams = new TreeMap<String, Object>();
6562
clientParams.put("aid", 1988);
6663
clientParams.put("app_language", "en-US");
6764
clientParams.put("app_name", "tiktok_web");
@@ -100,11 +97,11 @@ public static Map<String,Object> DefaultClientParams() {
10097
}
10198

10299

103-
/// <summary>
104-
/// Default Headers for HTTP-Request
105-
/// </summary>
106-
public static Map<String,String> DefaultRequestHeaders() {
107-
var headers = new HashMap<String,String>();
100+
/**
101+
* Default Headers for HTTP-Request
102+
*/
103+
public static Map<String, String> DefaultRequestHeaders() {
104+
var headers = new HashMap<String, String>();
108105

109106
headers.put("Connection", "keep-alive");
110107
headers.put("Cache-Control", "max-age=0");

API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokCommentEvent.java

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import io.github.jwdeveloper.tiktok.events.objects.User;
88
import io.github.jwdeveloper.tiktok.messages.WebcastChatMessage;
99
import io.github.jwdeveloper.tiktok.messages.WebcastRoomPinMessage;
10-
import lombok.Getter;
1110
import lombok.Value;
1211

1312
import java.util.ArrayList;
@@ -16,11 +15,11 @@
1615
@Value
1716
@EventMeta(eventType = EventType.Message)
1817
public class TikTokCommentEvent extends TikTokHeaderEvent {
19-
User user;
20-
String text;
21-
String language;
22-
List<User> mentionedUsers;
23-
List<Picture> pictures;
18+
User user;
19+
String text;
20+
String language;
21+
List<User> mentionedUsers;
22+
List<Picture> pictures;
2423

2524
public TikTokCommentEvent(WebcastRoomPinMessage.RoomPinMessageData data) {
2625
super(data.getDetails().getRoomId(), data.getDetails().getMessageId(), data.getDetails().getServerTime());
@@ -32,11 +31,11 @@ public TikTokCommentEvent(WebcastRoomPinMessage.RoomPinMessageData data) {
3231
}
3332

3433
public TikTokCommentEvent(WebcastChatMessage msg) {
35-
super(msg.getHeader());
36-
user = User.MapOrEmpty(msg.getSender());
37-
text = msg.getComment();
38-
language = msg.getLanguage();
39-
mentionedUsers = msg.getMentionedUsersList().stream().map(User::new).toList();
40-
pictures = msg.getImagesList().stream().map(e -> new Picture(e.getImage())).toList();
34+
super(msg.getCommon());
35+
user = User.MapOrEmpty(msg.getUser());
36+
text = msg.getContent();
37+
language = msg.getContentLanguage();
38+
mentionedUsers = List.of(User.MapOrEmpty(msg.getAtUser()));
39+
pictures = msg.getEmotesListList().stream().map(e -> new Picture(e.getEmote().getImage())).toList();
4140
}
4241
}

API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokJoinEvent.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
@EventMeta(eventType = EventType.Custom)
1313
public class TikTokJoinEvent extends TikTokHeaderEvent {
1414
private User user;
15-
1615
private final Long totalViewers;
1716

1817
public TikTokJoinEvent(WebcastSocialMessage msg) {

API/src/main/java/io/github/jwdeveloper/tiktok/listener/ListenersManager.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,15 @@
22

33
import java.util.List;
44

5+
/**
6+
* You can dynamically add or removing TikTokEventListener
7+
*
8+
* @see TikTokEventListener
9+
*
10+
*/
511
public interface ListenersManager
612
{
7-
List<TikTokEventListener> getBindingModels();
13+
List<TikTokEventListener> getListeners();
814
void addListener(TikTokEventListener listener);
915

1016
void removeListener(TikTokEventListener listener);

0 commit comments

Comments
 (0)