Skip to content

Commit 3231924

Browse files
authored
Merge pull request #40 from kohlerpop1/kohlerpop1-fixes-updates
Optimized a few methods when calling and using the Api!
2 parents 0ae9068 + ea52547 commit 3231924

File tree

11 files changed

+121
-92
lines changed

11 files changed

+121
-92
lines changed

API/src/main/java/io/github/jwdeveloper/tiktok/data/models/badges/CombineBadge.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,22 @@
2424

2525
import io.github.jwdeveloper.tiktok.data.models.Picture;
2626
import io.github.jwdeveloper.tiktok.messages.data.BadgeStruct;
27+
import lombok.Getter;
2728

29+
@Getter
2830
public class CombineBadge extends Badge {
2931
private final Picture picture;
3032
private final String text;
3133
private final String subText;
3234

33-
3435
public CombineBadge(BadgeStruct.CombineBadge combineBadge) {
35-
3636
picture = Picture.map(combineBadge.getIcon());
3737
text = combineBadge.getText().getDefaultPattern();
3838
subText = combineBadge.getStr();
3939
}
4040

41-
42-
}
41+
@Override
42+
public String toString() {
43+
return "CombineBadge{picture=" + picture +", text='" + text + "', subText='" + subText + "'}";
44+
}
45+
}

API/src/main/java/io/github/jwdeveloper/tiktok/data/models/badges/PictureBadge.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,18 @@
2424

2525
import io.github.jwdeveloper.tiktok.data.models.Picture;
2626
import io.github.jwdeveloper.tiktok.messages.data.BadgeStruct;
27+
import lombok.Getter;
2728

29+
@Getter
2830
public class PictureBadge extends Badge {
29-
3031
private final Picture picture;
31-
public PictureBadge(BadgeStruct.ImageBadge imageBadge) {
3232

33+
public PictureBadge(BadgeStruct.ImageBadge imageBadge) {
3334
picture = Picture.map(imageBadge.getImage());
3435
}
35-
}
36+
37+
@Override
38+
public String toString() {
39+
return "PictureBadge{picture=" + picture + "}";
40+
}
41+
}

API/src/main/java/io/github/jwdeveloper/tiktok/data/models/badges/StringBadge.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,18 @@
2323
package io.github.jwdeveloper.tiktok.data.models.badges;
2424

2525
import io.github.jwdeveloper.tiktok.messages.data.BadgeStruct;
26+
import lombok.Getter;
2627

28+
@Getter
2729
public class StringBadge extends Badge {
30+
private final String text;
2831

29-
public String text;
3032
public StringBadge(BadgeStruct.StringBadge stringBadge) {
31-
3233
this.text = stringBadge.getStr();
3334
}
34-
}
35+
36+
@Override
37+
public String toString() {
38+
return "StringBadge{text='" + text + "'}";
39+
}
40+
}

API/src/main/java/io/github/jwdeveloper/tiktok/data/models/badges/TextBadge.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,18 @@
2323
package io.github.jwdeveloper.tiktok.data.models.badges;
2424

2525
import io.github.jwdeveloper.tiktok.messages.data.BadgeStruct;
26+
import lombok.Getter;
2627

27-
public class TextBadge extends Badge
28-
{
28+
@Getter
29+
public class TextBadge extends Badge {
2930
private final String text;
3031

31-
public TextBadge(BadgeStruct.TextBadge textBadge)
32-
{
32+
public TextBadge(BadgeStruct.TextBadge textBadge) {
3333
this.text = textBadge.getDefaultPattern();
3434
}
35-
}
35+
36+
@Override
37+
public String toString() {
38+
return "TextBadge{text='" + text + "'}";
39+
}
40+
}

Client/src/main/java/io/github/jwdeveloper/tiktok/http/HttpUtils.java

Lines changed: 13 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -22,58 +22,30 @@
2222
*/
2323
package io.github.jwdeveloper.tiktok.http;
2424

25-
import lombok.SneakyThrows;
26-
2725
import java.net.URLEncoder;
2826
import java.nio.charset.StandardCharsets;
2927
import java.util.Map;
28+
import java.util.stream.Collectors;
3029

3130
public class HttpUtils
3231
{
3332
public static String parseParameters(String url, Map<String,Object> parameters)
3433
{
35-
var parameterString = "";
36-
if (!parameters.isEmpty()) {
37-
var builder = new StringBuilder();
38-
builder.append("?");
39-
var first = false;
40-
for (var param : parameters.entrySet()) {
41-
42-
if (first) {
43-
builder.append("&");
44-
}
45-
builder.append(param.getKey()).append("=").append(param.getValue());
46-
first = true;
47-
}
48-
parameterString = builder.toString();
49-
}
34+
if (parameters.isEmpty())
35+
return url;
5036

51-
return url+parameterString;
37+
return url+ "?" + parameters.entrySet().stream().map(entry -> entry.getKey()+"="+entry.getValue()).collect(Collectors.joining("&"));
5238
}
5339

54-
@SneakyThrows
5540
public static String parseParametersEncode(String url, Map<String,Object> parameters)
5641
{
57-
58-
var parameterString = "";
59-
if (!parameters.isEmpty()) {
60-
var builder = new StringBuilder();
61-
builder.append("?");
62-
var first = false;
63-
for (var param : parameters.entrySet()) {
64-
65-
if (first) {
66-
builder.append("&");
67-
}
68-
69-
final String encodedKey = URLEncoder.encode(param.getKey(), StandardCharsets.UTF_8);
70-
final String encodedValue = URLEncoder.encode(param.getValue().toString(), StandardCharsets.UTF_8);
71-
builder.append(encodedKey).append("=").append(encodedValue);
72-
first = true;
73-
}
74-
parameterString = builder.toString();
75-
}
76-
77-
return url+parameterString;
42+
if (parameters.isEmpty())
43+
return url;
44+
45+
return url+ "?" + parameters.entrySet().stream().map(entry -> {
46+
String encodedKey = URLEncoder.encode(entry.getKey(), StandardCharsets.UTF_8);
47+
String encodedValue = URLEncoder.encode(entry.getValue().toString(), StandardCharsets.UTF_8);
48+
return encodedKey+"="+encodedValue;
49+
}).collect(Collectors.joining("&"));
7850
}
79-
}
51+
}

Client/src/main/java/io/github/jwdeveloper/tiktok/http/TikTokApiService.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,15 +73,19 @@ public TikTokUserInfo fetchUserInfoFromTikTokApi(String userName) {
7373
var message = roomData.get("message").getAsString();
7474

7575
if (message.equals("params_error")) {
76-
throw new TikTokLiveRequestException("fetchRoomIdFromTiktokApi -> Unable to fetch roomID, contact with developer");
76+
throw new TikTokLiveRequestException("fetchRoomIdFromTiktokApi -> Unable to fetch roomID, contact the developer");
7777
}
7878
if (message.equals("user_not_found")) {
7979
return new TikTokUserInfo(TikTokUserInfo.UserStatus.NotFound, "", -1);
8080
}
8181
//live -> status 2
8282
//live paused -> 3
8383
//not live -> status 4
84-
var data = roomData.getAsJsonObject("data");
84+
var element = roomData.get("data");
85+
if (element.isJsonNull()) {
86+
return new TikTokUserInfo(TikTokUserInfo.UserStatus.NotFound, "", -1);
87+
}
88+
var data = element.getAsJsonObject();
8589
var user = data.getAsJsonObject("user");
8690
var roomId = user.get("roomId").getAsString();
8791
var status = user.get("status").getAsInt();

Client/src/main/java/io/github/jwdeveloper/tiktok/http/TikTokCookieJar.java

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,8 @@
2222
*/
2323
package io.github.jwdeveloper.tiktok.http;
2424

25-
import java.util.HashMap;
26-
import java.util.Map;
27-
import java.util.Set;
25+
import java.util.*;
26+
import java.util.stream.Collectors;
2827

2928
public class TikTokCookieJar {
3029
private final Map<String, String> cookies;
@@ -40,13 +39,10 @@ public void set(String key, String value) {
4039
cookies.put(key, value);
4140
}
4241

43-
public String parseCookies()
44-
{
45-
var sb = new StringBuilder();
46-
for(var entry : cookies.entrySet())
47-
{
48-
sb.append(entry.getKey()).append("=").append(entry.getValue()).append(";");
49-
}
50-
return sb.toString();
42+
public String parseCookies() {
43+
return cookies.entrySet()
44+
.stream()
45+
.map(entry -> entry.getKey()+"="+entry.getValue()+";")
46+
.collect(Collectors.joining());
5147
}
52-
}
48+
}

Client/src/main/java/io/github/jwdeveloper/tiktok/http/TikTokHttpClient.java

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,23 +45,20 @@ public TikTokHttpClient(TikTokCookieJar tikTokCookieJar, TikTokHttpRequestFactor
4545
this.tikTokCookieJar = tikTokCookieJar;
4646
}
4747

48-
public void setSessionId(String sessionId)
49-
{
48+
public void setSessionId(String sessionId) {
5049
tikTokCookieJar.set("sessionid", sessionId);
5150
tikTokCookieJar.set("sessionid_ss", sessionId);
5251
tikTokCookieJar.set("sid_tt", sessionId);
5352
}
5453

5554

5655
public String getLivestreamPage(String userName) {
57-
5856
var url = Constants.TIKTOK_URL_WEB + "@" + userName + "/live/";
5957
var get = getRequest(url, null);
6058
return get;
6159
}
6260

63-
public JsonObject getJsonFromTikTokApi(String path, Map<String,Object> params)
64-
{
61+
public JsonObject getJsonFromTikTokApi(String path, Map<String,Object> params) {
6562
var get = getRequest(Constants.TIKTOK_URL_WEB + path, params);
6663
var json = JsonParser.parseString(get);
6764
var jsonObject = json.getAsJsonObject();
@@ -117,7 +114,6 @@ private byte[] getSignRequest(String url, Map<String, Object> parameters) {
117114
{
118115
var split = cookie.split(";")[0].split("=");
119116

120-
121117
var key = split[0];
122118
var value = split[1];
123119
tikTokCookieJar.set(key, value);
@@ -133,7 +129,6 @@ private byte[] getSignRequest(String url, Map<String, Object> parameters) {
133129

134130

135131
private String getSignedUrl(String url, Map<String, Object> parameters) {
136-
137132
var fullUrl = HttpUtils.parseParameters(url,parameters);
138133
var signParams = new TreeMap<String,Object>();
139134
signParams.put("client", "ttlive-java");
@@ -143,7 +138,6 @@ private String getSignedUrl(String url, Map<String, Object> parameters) {
143138
var request = requestFactory.setQueries(signParams);
144139
var content = request.get(Constants.TIKTOK_SIGN_API);
145140

146-
147141
try {
148142
var json = JsonParser.parseString(content);
149143
var jsonObject = json.getAsJsonObject();
@@ -157,4 +151,4 @@ private String getSignedUrl(String url, Map<String, Object> parameters) {
157151
}
158152
}
159153

160-
}
154+
}

Client/src/main/java/io/github/jwdeveloper/tiktok/http/TikTokHttpRequestFactory.java

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
import java.util.List;
4343
import java.util.Map;
4444
import java.util.TreeMap;
45+
import java.util.stream.Collectors;
4546

4647
public class TikTokHttpRequestFactory implements TikTokHttpRequest {
4748
private final CookieManager cookieManager;
@@ -122,18 +123,16 @@ public TikTokHttpRequest setAgent(String value) {
122123
public TikTokHttpRequest setQueries(Map<String, Object> queries) {
123124
if (queries == null)
124125
return this;
125-
var testMap = new TreeMap<String, Object>(queries);
126-
query = String.join("&", testMap.entrySet().stream().map(x ->
127-
{
126+
var testMap = new TreeMap<>(queries);
127+
query = testMap.entrySet().stream().map(x -> {
128128
var key = x.getKey();
129-
var value = "";
130129
try {
131-
value = URLEncoder.encode(x.getValue().toString(), StandardCharsets.UTF_8);
130+
return key+"="+URLEncoder.encode(x.getValue().toString(), StandardCharsets.UTF_8);
132131
} catch (Exception e) {
133132
e.printStackTrace();
133+
return key + "=";
134134
}
135-
return key + "=" + value;
136-
}).toList());
135+
}).collect(Collectors.joining("&"));
137136
return this;
138137
}
139138

@@ -162,10 +161,7 @@ private String getContent(HttpRequest request) throws Exception {
162161
var map = new HashMap<String, List<String>>();
163162
map.put(key, List.of(value));
164163
cookieManager.put(uri, map);
165-
166164
}
167165
return response.body();
168166
}
169-
170-
171-
}
167+
}

Client/src/main/java/io/github/jwdeveloper/tiktok/listener/TikTokListenersManager.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,8 @@ private ListenerBindingModel bindToEvents(TikTokEventListener listener) {
115115
throw new TikTokEventListenerMethodException(e);
116116
}
117117
};
118-
eventsMap.computeIfAbsent(eventClazz, (a) -> new ArrayList<EventConsumer<?>>()).add(eventMethodRef);
118+
eventsMap.computeIfAbsent(eventClazz, (a) -> new ArrayList<>()).add(eventMethodRef);
119119
}
120120
return new ListenerBindingModel(listener, eventsMap);
121121
}
122-
}
122+
}

0 commit comments

Comments
 (0)