Skip to content

Commit ace3a96

Browse files
committed
Prevent app from spawning a shit load of threads
1 parent d69e31d commit ace3a96

File tree

24 files changed

+158
-143
lines changed

24 files changed

+158
-143
lines changed

build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,14 +75,14 @@ dependencies {
7575
implementation(group = "me.duncte123", name = "weebJava", version = "3.0.1_3")
7676

7777
// botCommons
78-
implementation(group = "me.duncte123", name = "botCommons", version = "2.3.9")
78+
implementation(group = "me.duncte123", name = "botCommons", version = "2.3.10")
7979

8080
// JDA (java discord api)
8181
implementation(group = "net.dv8tion", name = "JDA", version = "4.4.0_350") {
8282
exclude(module = "opus-java")
8383
}
8484

85-
implementation(group = "com.dunctebot", name = "sourcemanagers", version = "1.7.2")
85+
implementation(group = "com.dunctebot", name = "sourcemanagers", version = "1.8.0")
8686
// implementation(group = "com.sedmelluq", name = "lavaplayer", version = "1.3.78")
8787
implementation(group = "com.github.walkyst", name = "lavaplayer-fork", version = "1.3.96")
8888
implementation(group = "com.github.DuncteBot", name = "Lavalink-Client", version = "c1d8b73") {

src/main/java/ml/duncte123/skybot/CommandManager.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,6 @@ public CommandManager(Variables variables) {
161161
this.addCommand(new ClearLeftGuildsCommand());
162162
this.addCommand(new ClintCommand());
163163
this.addCommand(new CommandDumpCommand());
164-
this.addCommand(new CoffeeCommand());
165164
this.addCommand(new CoinCommand());
166165
this.addCommand(new ColorCommand());
167166
this.addCommand(new CookieCommand());

src/main/java/ml/duncte123/skybot/commands/animals/DogCommand.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
package ml.duncte123.skybot.commands.animals;
2020

21+
import com.github.natanbc.reliqua.limiter.RateLimiter;
2122
import io.sentry.Sentry;
2223
import me.duncte123.botcommons.messaging.EmbedUtils;
2324
import me.duncte123.botcommons.web.WebUtils;
@@ -41,7 +42,7 @@ public DogCommand() {
4142
public void execute(@Nonnull CommandContext ctx) {
4243
final String base = "https://random.dog/";
4344
try {
44-
WebUtils.ins.getText(base + "woof").async((it) -> {
45+
WebUtils.ins.getText(base + "woof", (it) -> it.setRateLimiter(RateLimiter.directLimiter())).async((it) -> {
4546
final String finalS = base + it;
4647

4748
if (finalS.contains(".mp4")) {

src/main/java/ml/duncte123/skybot/commands/animals/KittyCommand.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
package ml.duncte123.skybot.commands.animals;
2020

21+
import com.github.natanbc.reliqua.limiter.RateLimiter;
2122
import me.duncte123.botcommons.messaging.EmbedUtils;
2223
import me.duncte123.botcommons.web.WebUtils;
2324
import ml.duncte123.skybot.objects.command.Command;
@@ -44,7 +45,11 @@ public void execute(@Nonnull CommandContext ctx) {
4445
final String apiKey = ctx.getConfig().apis.thecatapi;
4546
final String url = "https://api.thecatapi.com/v1/images/search?limit=1";
4647

47-
WebUtils.ins.getJSONArray(url, null, (req) -> req.header("x-api-key", apiKey)).async((json) -> {
48+
WebUtils.ins.getJSONArray(
49+
url,
50+
(it) -> it.setRateLimiter(RateLimiter.directLimiter()),
51+
(req) -> req.header("x-api-key", apiKey)
52+
).async((json) -> {
4853
sendEmbed(ctx, EmbedUtils.embedImage(
4954
json.get(0).get("url").asText()
5055
));

src/main/java/ml/duncte123/skybot/commands/uncategorized/ChangeLogCommand.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
package ml.duncte123.skybot.commands.uncategorized;
2020

21+
import com.github.natanbc.reliqua.limiter.RateLimiter;
2122
import me.duncte123.botcommons.messaging.EmbedUtils;
2223
import me.duncte123.botcommons.web.WebUtils;
2324
import ml.duncte123.skybot.objects.command.Command;
@@ -59,7 +60,10 @@ public void execute(@Nonnull CommandContext ctx) {
5960
}
6061

6162
private void fetchLatetstGitHubCommits(CommandContext ctx) {
62-
WebUtils.ins.getJSONObject("https://api.github.com/repos/DuncteBot/SkyBot/releases/latest").async(json -> {
63+
WebUtils.ins.getJSONObject(
64+
"https://api.github.com/repos/DuncteBot/SkyBot/releases/latest",
65+
(it) -> it.setRateLimiter(RateLimiter.directLimiter())
66+
).async(json -> {
6367
final String body = json.get("body").asText();
6468
final String version = json.get("tag_name").asText();
6569
final EmbedBuilder builder = EmbedUtils.getDefaultEmbed()

src/main/java/ml/duncte123/skybot/commands/utils/EnlargeCommand.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
package ml.duncte123.skybot.commands.utils;
2020

21+
import com.github.natanbc.reliqua.limiter.RateLimiter;
2122
import io.sentry.Sentry;
2223
import me.duncte123.botcommons.web.WebUtils;
2324
import ml.duncte123.skybot.objects.command.Command;
@@ -105,7 +106,7 @@ public void execute(@NotNull CommandContext ctx) {
105106
}
106107

107108
private void uploadFile(final String url, final CommandContext ctx) {
108-
WebUtils.ins.getByteStream(url).async(
109+
WebUtils.ins.getByteStream(url, (it) -> it.setRateLimiter(RateLimiter.directLimiter())).async(
109110
(bytes) -> {
110111
final String[] split = url.split("/");
111112
final String fileName = split[split.length - 1];

src/main/java/ml/duncte123/skybot/objects/apis/BlargBot.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,10 @@
2121
import com.fasterxml.jackson.core.JsonProcessingException;
2222
import com.fasterxml.jackson.databind.JsonNode;
2323
import com.fasterxml.jackson.databind.ObjectMapper;
24+
import com.github.natanbc.reliqua.limiter.RateLimiter;
2425
import com.github.natanbc.reliqua.request.PendingRequest;
2526
import me.duncte123.botcommons.web.ContentType;
27+
import me.duncte123.botcommons.web.WebParserUtils;
2628
import me.duncte123.botcommons.web.WebUtils;
2729
import me.duncte123.weebJava.helpers.IOHelper;
2830
import okhttp3.RequestBody;
@@ -71,15 +73,15 @@ public PendingRequest<byte[]> getTheSearch(String text) {
7173

7274

7375
private PendingRequest<byte[]> makeRequest(String path, JsonNode body) {
74-
return WebUtils.ins.prepareRaw(
76+
return WebUtils.ins.prepareBuilder(
7577
defaultRequest()
7678
.url("https://api.blargbot.xyz/api/v1/" + path)
7779
.header("Content-Type", ContentType.JSON.getType())
7880
.post(RequestBody.create(null, jsonToString(body)))
79-
.addHeader("Authorization", token)
80-
.build(),
81-
IOHelper::read
82-
);
81+
.addHeader("Authorization", token),
82+
(it) -> it.setRateLimiter(RateLimiter.directLimiter()),
83+
null
84+
).build(IOHelper::read, WebParserUtils::handleError);
8385
}
8486

8587
private byte[] jsonToString(JsonNode body) {

src/main/java/ml/duncte123/skybot/objects/apis/alexflipnote/Alexflipnote.java

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,10 @@
2020

2121
import com.fasterxml.jackson.databind.JsonNode;
2222
import com.fasterxml.jackson.databind.ObjectMapper;
23+
import com.github.natanbc.reliqua.limiter.RateLimiter;
2324
import com.github.natanbc.reliqua.request.PendingRequest;
25+
import com.github.natanbc.reliqua.util.ResponseMapper;
26+
import me.duncte123.botcommons.web.WebParserUtils;
2427
import me.duncte123.botcommons.web.WebUtils;
2528
import me.duncte123.weebJava.helpers.IOHelper;
2629
import me.duncte123.weebJava.helpers.QueryBuilder;
@@ -41,7 +44,7 @@ public Alexflipnote(ObjectMapper mapper, String apiKey) {
4144
}
4245

4346
public PendingRequest<FlipnoteColourObj> getColour(String color) {
44-
return WebUtils.ins.prepareRaw(
47+
return prepareRaw(
4548
makeRequest("https://api.alexflipnote.dev/", "colour/" + color),
4649
(r) -> {
4750
final JsonNode node = mapper.readTree(Objects.requireNonNull(r.body()).byteStream());
@@ -53,85 +56,92 @@ public PendingRequest<FlipnoteColourObj> getColour(String color) {
5356

5457
public PendingRequest<byte[]> getTrash(String face, String trash) {
5558
final QueryBuilder builder = new QueryBuilder().append("face", face).append("trash", trash);
56-
return WebUtils.ins.prepareRaw(
59+
return prepareRaw(
5760
makeRequest("trash" + builder.build()),
5861
IOHelper::read
5962
);
6063
}
6164

6265
public PendingRequest<byte[]> getAchievement(String text) {
6366
final QueryBuilder builder = new QueryBuilder().append("text", text);
64-
return WebUtils.ins.prepareRaw(
67+
return prepareRaw(
6568
makeRequest("achievement" + builder.build()),
6669
IOHelper::read
6770
);
6871
}
6972

7073
public PendingRequest<byte[]> getScroll(String text) {
7174
final QueryBuilder builder = new QueryBuilder().append("text", text);
72-
return WebUtils.ins.prepareRaw(
75+
return prepareRaw(
7376
makeRequest("scroll" + builder.build()),
7477
IOHelper::read
7578
);
7679
}
7780

7881
public PendingRequest<byte[]> getDidYouMean(String input, String correction) {
7982
final QueryBuilder builder = new QueryBuilder().append("top", input).append("bottom", correction);
80-
return WebUtils.ins.prepareRaw(
83+
return prepareRaw(
8184
makeRequest("didyoumean" + builder.build()),
8285
IOHelper::read
8386
);
8487
}
8588

8689
public PendingRequest<byte[]> getFacts(String text) {
8790
final QueryBuilder builder = new QueryBuilder().append("text", text);
88-
return WebUtils.ins.prepareRaw(
91+
return prepareRaw(
8992
makeRequest("facts" + builder.build()),
9093
IOHelper::read
9194
);
9295
}
9396

9497
public PendingRequest<byte[]> getCaptcha(String text) {
9598
final QueryBuilder builder = new QueryBuilder().append("text", text);
96-
return WebUtils.ins.prepareRaw(
99+
return prepareRaw(
97100
makeRequest("captcha" + builder.build()),
98101
IOHelper::read
99102
);
100103
}
101104

102105
public PendingRequest<byte[]> getJokeoverhead(String image) {
103106
final QueryBuilder builder = new QueryBuilder().append("image", image);
104-
return WebUtils.ins.prepareRaw(
107+
return prepareRaw(
105108
makeRequest("jokeoverhead" + builder.build()),
106109
IOHelper::read
107110
);
108111
}
109112

110113
public PendingRequest<byte[]> getSalty(String image) {
111114
final QueryBuilder builder = new QueryBuilder().append("image", image);
112-
return WebUtils.ins.prepareRaw(
115+
return prepareRaw(
113116
makeRequest("salty" + builder.build()),
114117
IOHelper::read
115118
);
116119
}
117120

118121
public PendingRequest<byte[]> getPornhub(String text1, String text2) {
119122
final QueryBuilder builder = new QueryBuilder().append("text", text1).append("text2", text2);
120-
return WebUtils.ins.prepareRaw(
123+
return prepareRaw(
121124
makeRequest("pornhub" + builder.build()),
122125
IOHelper::read
123126
);
124127
}
125128

126-
private Request makeRequest(String path) {
129+
private <T> PendingRequest<T> prepareRaw(Request.Builder builder, ResponseMapper<T> mapper) {
130+
return WebUtils.ins.prepareBuilder(
131+
builder,
132+
(it) -> it.setRateLimiter(RateLimiter.directLimiter()),
133+
null
134+
).build(mapper, WebParserUtils::handleError);
135+
}
136+
137+
private Request.Builder makeRequest(String path) {
127138
return makeRequest("https://flipnote.duncte.bot/", path);
128139
}
129140

130-
private Request makeRequest(String url, String path) {
141+
private Request.Builder makeRequest(String url, String path) {
131142
return defaultRequest()
132143
.url(url + path)
133144
.addHeader("Authorization", this.apiKey)
134-
.get()
135-
.build();
145+
.get();
136146
}
137147
}

src/main/java/ml/duncte123/skybot/utils/AirUtils.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import com.fasterxml.jackson.core.JsonProcessingException;
2222
import com.fasterxml.jackson.databind.ObjectMapper;
2323
import com.fasterxml.jackson.databind.node.ObjectNode;
24+
import com.github.natanbc.reliqua.limiter.RateLimiter;
2425
import com.github.natanbc.reliqua.request.PendingRequest;
2526
import com.jagrosh.jdautilities.commons.utils.FinderUtil;
2627
import fredboat.audio.player.LavalinkManager;
@@ -372,6 +373,7 @@ public static PendingRequest<String> shortenUrl(String url, String googleKey, Ob
372373
"https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=" + googleKey,
373374
JSONRequestBody.fromJackson(json)
374375
)
376+
.setRateLimiter(RateLimiter.directLimiter())
375377
.build(
376378
(r) -> {
377379
final ObjectNode response = toJSONObject(r, mapper);

src/main/java/ml/duncte123/skybot/utils/AudioUtils.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@ public AudioUtils(DunctebotConfig.Apis config, Variables variables) {
6262
playerManager.registerSourceManager(new SpotifyAudioSourceManager(sourceManager, config));
6363
playerManager.registerSourceManager(sourceManager);
6464

65-
DuncteBotSources.registerCustom(playerManager, "en-AU", 6);
66-
DuncteBotSources.registerCustom(LavalinkUtil.getPlayerManager(), "en-AU", 6);
65+
DuncteBotSources.registerDuncteBot(playerManager, "en-AU", 6);
66+
DuncteBotSources.registerDuncteBot(LavalinkUtil.getPlayerManager(), "en-AU", 6);
6767

6868
playerManager.registerSourceManager(SoundCloudAudioSourceManager.createDefault());
6969
playerManager.registerSourceManager(new BandcampAudioSourceManager());

0 commit comments

Comments
 (0)