diff --git a/src/main/kotlin/ml/duncte123/skybot/adapters/WebDatabaseAdapter.kt b/src/main/kotlin/ml/duncte123/skybot/adapters/WebDatabaseAdapter.kt index 646807c7c..71c0af001 100644 --- a/src/main/kotlin/ml/duncte123/skybot/adapters/WebDatabaseAdapter.kt +++ b/src/main/kotlin/ml/duncte123/skybot/adapters/WebDatabaseAdapter.kt @@ -143,7 +143,7 @@ class WebDatabaseAdapter(private val apis: DuncteApis, private val jackson: Obje val map = TLongIntHashMap() apis.loadEmbedSettings().forEach { - map.put(it.get("guild_id").asLong(), it.get("embed_color").asInt()) + map.put(it["guild_id"].asLong(), it["embed_color"].asInt()) } callback(map) @@ -161,7 +161,7 @@ class WebDatabaseAdapter(private val apis: DuncteApis, private val jackson: Obje val map = TLongLongHashMap() apis.loadOneGuildPatrons().forEach { - map.put(it.get("user_id").asLong(), it.get("guild_id").asLong()) + map.put(it["user_id"].asLong(), it["guild_id"].asLong()) } callback(map) @@ -183,7 +183,7 @@ class WebDatabaseAdapter(private val apis: DuncteApis, private val jackson: Obje val map = TLongLongHashMap() apis.getOneGuildPatron(userId).forEach { - map.put(it.get("user_id").asLong(), it.get("guild_id").asLong()) + map.put(it["user_id"].asLong(), it["guild_id"].asLong()) } callback(map) @@ -249,11 +249,11 @@ class WebDatabaseAdapter(private val apis: DuncteApis, private val jackson: Obje } callback(Warning( - json.get("id").asInt(), - json.get("warn_date").asText(), - json.get("mod_id").asText(), - json.get("reason").asText(), - json.get("guild_id").asText() + json["id"].asInt(), + json["warn_date"].asText(), + json["mod_id"].asText(), + json["reason"].asText(), + json["guild_id"].asText() )) } } @@ -266,11 +266,11 @@ class WebDatabaseAdapter(private val apis: DuncteApis, private val jackson: Obje val regex = "\\s+".toRegex() data.forEach { json -> items.add(Warning( - json.get("id").asInt(), - json.get("warn_date").asText().split(regex)[0], - json.get("mod_id").asText(), - json.get("reason").asText(), - json.get("guild_id").asText() + json["id"].asInt(), + json["warn_date"].asText().split(regex)[0], + json["mod_id"].asText(), + json["reason"].asText(), + json["guild_id"].asText() )) } @@ -293,8 +293,8 @@ class WebDatabaseAdapter(private val apis: DuncteApis, private val jackson: Obje override fun getExpiredBansAndMutes(callback: (List, List) -> Unit) { runOnThread { val storedData = apis.getExpiredBansAndMutes() - val storedBans = storedData.get("bans") - val storedMutes = storedData.get("mutes") + val storedBans = storedData["bans"] + val storedMutes = storedData["mutes"] val bans: List = jackson.readValue(storedBans.traverse(), object : TypeReference>() {}) val mutes: List = jackson.readValue(storedMutes.traverse(), object : TypeReference>() {}) @@ -310,9 +310,9 @@ class WebDatabaseAdapter(private val apis: DuncteApis, private val jackson: Obje for (item in storedData) { converted.add(VcAutoRole( - item.get("guild_id").asLong(), - item.get("voice_channel_id").asLong(), - item.get("role_id").asLong() + item["guild_id"].asLong(), + item["voice_channel_id"].asLong(), + item["role_id"].asLong() )) } @@ -357,7 +357,7 @@ class WebDatabaseAdapter(private val apis: DuncteApis, private val jackson: Obje override fun createTag(tag: Tag, callback: (Boolean, String) -> Unit) { runOnThread { val json = jackson.valueToTree(tag) as ObjectNode - json.put("owner_id", json.get("owner_id").asText()) + json.put("owner_id", json["owner_id"].asText()) val response = apis.createTag(json) diff --git a/src/main/kotlin/ml/duncte123/skybot/commands/animals/BirbCommand.kt b/src/main/kotlin/ml/duncte123/skybot/commands/animals/BirbCommand.kt index 0597e3065..8c19323e7 100644 --- a/src/main/kotlin/ml/duncte123/skybot/commands/animals/BirbCommand.kt +++ b/src/main/kotlin/ml/duncte123/skybot/commands/animals/BirbCommand.kt @@ -38,7 +38,7 @@ class BirbCommand : Command() { override fun execute(ctx: CommandContext) { WebUtils.ins.getJSONArray("https://shibe.online/api/birds").async { - sendEmbed(ctx.event, EmbedUtils.embedImage(it.get(0).asText())) + sendEmbed(ctx.event, EmbedUtils.embedImage(it[0].asText())) } } } diff --git a/src/main/kotlin/ml/duncte123/skybot/commands/fun/AdviceCommand.kt b/src/main/kotlin/ml/duncte123/skybot/commands/fun/AdviceCommand.kt index 3ad60a26d..9ea6bb7b3 100644 --- a/src/main/kotlin/ml/duncte123/skybot/commands/fun/AdviceCommand.kt +++ b/src/main/kotlin/ml/duncte123/skybot/commands/fun/AdviceCommand.kt @@ -40,16 +40,16 @@ class AdviceCommand : Command() { val json = WebUtils.ins.getJSONObject("https://api.adviceslip.com/advice").execute() if (json.has("message")) { - val type = json.get("message").get("type").asText() + val type = json["message"]["type"].asText() if (type == "error") { - sendMsg(ctx, "Something borked: ${json.get("message").get("text").asText()}") + sendMsg(ctx, "Something borked: ${json["message"]["text"].asText()}") return } } - val advice = json.get("slip").get("advice").asText() + val advice = json["slip"]["advice"].asText() sendEmbed(ctx, embedMessageWithTitle("Here's some advice", advice)) } catch (ex: RequestException) { diff --git a/src/main/kotlin/ml/duncte123/skybot/commands/fun/ImageCommand.kt b/src/main/kotlin/ml/duncte123/skybot/commands/fun/ImageCommand.kt index 30288b404..8f1392350 100644 --- a/src/main/kotlin/ml/duncte123/skybot/commands/fun/ImageCommand.kt +++ b/src/main/kotlin/ml/duncte123/skybot/commands/fun/ImageCommand.kt @@ -49,13 +49,15 @@ class ImageCommand : Command() { val keyword = ctx.argsRaw WebUtils.ins.getJSONObject(String.format(ctx.googleBaseUrl, keyword)).async { - val jsonArray = it.get("items") - val randomItem = jsonArray.get(ctx.random.nextInt(jsonArray.size())) + val jsonArray = it["items"] + val randomItem = jsonArray[ctx.random.nextInt(jsonArray.size())] sendEmbed(event, EmbedUtils.defaultEmbed() - .setTitle(randomItem.get("title").asText(), randomItem.get("image") - .get("contextLink").asText()) - .setImage(randomItem.get("link").asText()).build() + .setTitle( + randomItem["title"].asText(), + randomItem["image"]["contextLink"].asText() + ) + .setImage(randomItem["link"].asText()).build() ) } } diff --git a/src/main/kotlin/ml/duncte123/skybot/commands/fun/KpopCommand.kt b/src/main/kotlin/ml/duncte123/skybot/commands/fun/KpopCommand.kt index 370f8e97a..6dc0cf6bf 100644 --- a/src/main/kotlin/ml/duncte123/skybot/commands/fun/KpopCommand.kt +++ b/src/main/kotlin/ml/duncte123/skybot/commands/fun/KpopCommand.kt @@ -63,17 +63,17 @@ class KpopCommand : Command() { val path = if (!search.isBlank()) "/${URLEncoder.encode(search, StandardCharsets.UTF_8)}" else "" val response = executeDefaultGetRequest("kpop$path", false) - if (!response.get("success").asBoolean()) { + if (!response["success"].asBoolean()) { return null } - val json = response.get("data") + val json = response["data"] return KpopObject( - json.get("id").asInt(), - json.get("name").asText(), - json.get("band").asText(), - json.get("img").asText() + json["id"].asInt(), + json["name"].asText(), + json["band"].asText(), + json["img"].asText() ) } } diff --git a/src/main/kotlin/ml/duncte123/skybot/commands/fun/XkcdCommand.kt b/src/main/kotlin/ml/duncte123/skybot/commands/fun/XkcdCommand.kt index 256b06526..0ddfb35a7 100644 --- a/src/main/kotlin/ml/duncte123/skybot/commands/fun/XkcdCommand.kt +++ b/src/main/kotlin/ml/duncte123/skybot/commands/fun/XkcdCommand.kt @@ -61,10 +61,10 @@ class XkcdCommand : Command() { private fun sendComic(it: ObjectNode, ctx: CommandContext) { val embed = EmbedUtils.defaultEmbed() .setTitle( - it.get("safe_title").asText(), - "http://xkcd.com/${it.get("num").asInt()}/" + it["safe_title"].asText(), + "http://xkcd.com/${it["num"].asInt()}/" ) - .setImage(it.get("img").asText()) + .setImage(it["img"].asText()) sendEmbed(ctx, embed) } @@ -79,7 +79,7 @@ class XkcdCommand : Command() { private fun getRandom(): Int { val it = getLatest() - val max = it.get("num").asInt() + val max = it["num"].asInt() var selected = max.maxRand() while (selected == 404) { diff --git a/src/main/kotlin/ml/duncte123/skybot/commands/music/LyricsCommand.kt b/src/main/kotlin/ml/duncte123/skybot/commands/music/LyricsCommand.kt index 470a46a05..08996864c 100644 --- a/src/main/kotlin/ml/duncte123/skybot/commands/music/LyricsCommand.kt +++ b/src/main/kotlin/ml/duncte123/skybot/commands/music/LyricsCommand.kt @@ -18,7 +18,6 @@ package ml.duncte123.skybot.commands.music -import com.fasterxml.jackson.databind.ObjectMapper import me.duncte123.botcommons.messaging.EmbedUtils import me.duncte123.botcommons.messaging.MessageUtils.sendEmbed import me.duncte123.botcommons.messaging.MessageUtils.sendMsg @@ -54,7 +53,6 @@ class LyricsCommand : MusicCommand() { return } - val mng = ctx.audioUtils.getMusicManager(ctx.guild) val player = mng.player @@ -67,7 +65,7 @@ class LyricsCommand : MusicCommand() { } private fun handleSearch(search: String, ctx: CommandContext) { - searchForSong(search, ctx.config.genius, ctx.variables.jackson) { + searchForSong(search, ctx.config.genius) { if (it.isNullOrBlank()) { sendMsg(ctx, "There where no lyrics found for `$search`") } else { @@ -87,7 +85,7 @@ class LyricsCommand : MusicCommand() { } } - private fun getAuthToken(config: DunctebotConfig.Genius, mapper: ObjectMapper): String { + private fun getAuthToken(config: DunctebotConfig.Genius): String { if (authToken.isBlank()) { val formData = FormRequestBody() formData.append("client_id", config.client_id) @@ -95,29 +93,29 @@ class LyricsCommand : MusicCommand() { formData.append("grant_type", "client_credentials") val json = WebUtils.ins.postRequest("$apiBase/oauth/token", formData) - .build({ WebParserUtils.toJSONObject(it, mapper) }, WebParserUtils::handleError) + .build(WebParserUtils::toJSONObject, WebParserUtils::handleError) .execute() - this.authToken = json.get("access_token").asText("") + this.authToken = json["access_token"].asText("") } return "Bearer $authToken" } - private fun searchForSong(t: String?, config: DunctebotConfig.Genius, mapper: ObjectMapper, callback: (String?) -> Unit) { + private fun searchForSong(t: String?, config: DunctebotConfig.Genius, callback: (String?) -> Unit) { WebUtils.ins.prepareRaw(WebUtils.defaultRequest() - .header("Authorization", getAuthToken(config, mapper)) - .url("$apiBase/search?q=${URLEncoder.encode(t, StandardCharsets.UTF_8)}").build() - ) { WebParserUtils.toJSONObject(it, mapper) } - .async { - val hits = it.get("response").get("hits") - if (hits.isEmpty) { - callback.invoke(null) - } else { - callback.invoke( - hits.get(0).get("result").get("path").asText() - ) - } + .header("Authorization", getAuthToken(config)) + .url("$apiBase/search?q=${URLEncoder.encode(t, StandardCharsets.UTF_8)}").build(), + WebParserUtils::toJSONObject + ).async { + val hits = it["response"]["hits"] + if (hits.isEmpty) { + callback.invoke(null) + } else { + callback.invoke( + hits[0]["result"]["path"].asText() + ) } + } } } diff --git a/src/main/kotlin/ml/duncte123/skybot/commands/nsfw/NSFWCommands.kt b/src/main/kotlin/ml/duncte123/skybot/commands/nsfw/NSFWCommands.kt index 0df214814..0c21ecc23 100644 --- a/src/main/kotlin/ml/duncte123/skybot/commands/nsfw/NSFWCommands.kt +++ b/src/main/kotlin/ml/duncte123/skybot/commands/nsfw/NSFWCommands.kt @@ -43,31 +43,33 @@ class NSFWCommands : Command() { when (ctx.invoke.toLowerCase()) { "carsandhentai" -> { WebUtils.ins.getJSONObject(String.format(ctx.googleBaseUrl, "Cars and hentai")).async { jsonRaw -> - val jsonArray = jsonRaw.get("items") - val randomItem = jsonArray.get(ctx.random.nextInt(jsonArray.size())) + val jsonArray = jsonRaw["items"] + val randomItem = jsonArray[ctx.random.nextInt(jsonArray.size())] sendEmbed(ctx, EmbedUtils.defaultEmbed() - .setTitle(randomItem.get("title").asText(), randomItem.get("image") - .get("contextLink").asText()) - .setImage(randomItem.get("link").asText()) + .setTitle( + randomItem["title"].asText(), + randomItem["image"]["contextLink"].asText() + ) + .setImage(randomItem["link"].asText()) ) } } "lewdneko" -> { WebUtils.ins.getJSONObject("https://nekos.life/api/v2/img/lewd").async { - sendEmbed(ctx, EmbedUtils.embedImage(it.get("url").asText())) + sendEmbed(ctx, EmbedUtils.embedImage(it["url"].asText())) } } "lewdkitsune" -> { WebUtils.ins.getJSONObject("${nekkobotBase}lewdkitsune").async { - sendEmbed(ctx, EmbedUtils.embedImage(it.get("message").asText())) + sendEmbed(ctx, EmbedUtils.embedImage(it["message"].asText())) } } "hentai" -> { val t = if (ctx.random.nextInt(2) == 1) "hentai" else "hentai_anal" WebUtils.ins.getJSONObject("$nekkobotBase$t").async { - sendEmbed(ctx, EmbedUtils.embedImage(it.get("message").asText())) + sendEmbed(ctx, EmbedUtils.embedImage(it["message"].asText())) } } } diff --git a/src/main/kotlin/ml/duncte123/skybot/commands/uncategorized/InstaCommand.kt b/src/main/kotlin/ml/duncte123/skybot/commands/uncategorized/InstaCommand.kt index 1d7957daf..4a098dcf1 100644 --- a/src/main/kotlin/ml/duncte123/skybot/commands/uncategorized/InstaCommand.kt +++ b/src/main/kotlin/ml/duncte123/skybot/commands/uncategorized/InstaCommand.kt @@ -45,26 +45,26 @@ class InstaCommand : Command() { val it = ctx.apis.executeDefaultGetRequest("insta/$username", false) - if (!it.get("success").asBoolean()) { + if (!it["success"].asBoolean()) { sendMsg(event, "No data found for this user") return } - val imagesArray = it.get("images") + val imagesArray = it["images"] if (imagesArray.isEmpty) { sendMsg(ctx, "This user did not upload any images") return } - val img = imagesArray.get(0) - val user = it.get("user") + val img = imagesArray[0] + val user = it["user"] val embed = EmbedUtils.defaultEmbed() - .setAuthor(user.get("username").asText(), "https://instagram.com/$username/", user.get("profile_pic_url").asText()) - .setTitle("Latest picture of $username", img.get("page_url").asText()) - .setDescription(img.get("caption").asText()) - .setImage(img.get("url").asText()) + .setAuthor(user["username"].asText(), "https://instagram.com/$username/", user["profile_pic_url"].asText()) + .setTitle("Latest picture of $username", img["page_url"].asText()) + .setDescription(img["caption"].asText()) + .setImage(img["url"].asText()) MessageUtils.sendEmbed(event, embed) diff --git a/src/main/kotlin/ml/duncte123/skybot/commands/uncategorized/UnshortenCommand.kt b/src/main/kotlin/ml/duncte123/skybot/commands/uncategorized/UnshortenCommand.kt index bd8fc3fe2..ae3ab39b1 100644 --- a/src/main/kotlin/ml/duncte123/skybot/commands/uncategorized/UnshortenCommand.kt +++ b/src/main/kotlin/ml/duncte123/skybot/commands/uncategorized/UnshortenCommand.kt @@ -55,22 +55,22 @@ class UnshortenCommand : Command() { logger.debug("Unshorten: $json") - if (!json.get("success").asBoolean()) { - val error = json.get("error") + if (!json["success"].asBoolean()) { + val error = json["error"] logger.error("Failed to unshorten $error") - sendMsg(ctx, "Could not unshorten url: " + error.get("message").asText()) + sendMsg(ctx, "Could not unshorten url: " + error["message"].asText()) return } - val data = json.get("data") + val data = json["data"] val embed = EmbedUtils.embedMessage("""Short url: |``` - |${data.get("short_url").asText()} + |${data["short_url"].asText()} |``` |Unshortened url: |``` - |${data.get("long_url").asText()} + |${data["long_url"].asText()} |``` """.trimMargin()) diff --git a/src/main/kotlin/ml/duncte123/skybot/extensions/AudioTrack.kt b/src/main/kotlin/ml/duncte123/skybot/extensions/AudioTrack.kt index f08d3e095..61b2c67d3 100644 --- a/src/main/kotlin/ml/duncte123/skybot/extensions/AudioTrack.kt +++ b/src/main/kotlin/ml/duncte123/skybot/extensions/AudioTrack.kt @@ -96,9 +96,9 @@ fun AudioTrack.getImageUrl(onlyStatic: Boolean = false): String? { val split = this.identifier.split("/") val id = split[split.size - 1] val url = "https://vimeo.com/api/v2/video/$id.json" - val json = WebUtils.ins.getJSONArray(url).execute().get(0) + val json = WebUtils.ins.getJSONArray(url).execute()[0] - json.get("thumbnail_small").asText() + json["thumbnail_small"].asText() } catch (e: Exception) { Sentry.capture(e) null diff --git a/src/main/kotlin/ml/duncte123/skybot/objects/api/DuncteApis.kt b/src/main/kotlin/ml/duncte123/skybot/objects/api/DuncteApis.kt index 63249bf2e..98c0b3639 100644 --- a/src/main/kotlin/ml/duncte123/skybot/objects/api/DuncteApis.kt +++ b/src/main/kotlin/ml/duncte123/skybot/objects/api/DuncteApis.kt @@ -62,7 +62,7 @@ class DuncteApis(private val apiKey: String, private val mapper: ObjectMapper) { fun deleteCustomCommand(guildId: Long, invoke: String): Boolean { val request = defaultRequest("customcommands/$guildId/$invoke").delete() - return executeRequest(request).get("success").asBoolean() + return executeRequest(request)["success"].asBoolean() } fun restoreCustomCommand(commandId: Int, variables: Variables): Boolean { @@ -70,18 +70,18 @@ class DuncteApis(private val apiKey: String, private val mapper: ObjectMapper) { .put(RequestBody.create(null, "{}")) val response = executeRequest(request) - if (!response.get("success").asBoolean()) { + if (!response["success"].asBoolean()) { return false } - val command = response.get("data") + val command = response["data"] val commandManager = variables.commandManager commandManager.customCommands.add(CustomCommandImpl( - command.get("invoke").asText(), - command.get("message").asText(), - command.get("guildId").asLong(), - command.get("autoresponse").asBoolean() + command["invoke"].asText(), + command["message"].asText(), + command["guildId"].asLong(), + command["autoresponse"].asBoolean() )) return true @@ -94,40 +94,40 @@ class DuncteApis(private val apiKey: String, private val mapper: ObjectMapper) { fun getGuildSetting(guildId: Long): JsonNode? { val res = executeRequest(defaultRequest("guildsettings/$guildId")) - if (!res.get("success").asBoolean()) { + if (!res["success"].asBoolean()) { return null } - return res.get("data") + return res["data"] } fun updateGuildSettings(guildSettings: GuildSettings): Boolean { val json = guildSettings.toJson(mapper) val response = patchJSON("guildsettings/${guildSettings.guildId}", json) - return response.get("success").asBoolean() + return response["success"].asBoolean() } fun deleteGuildSetting(guildId: Long) { val response = executeRequest(defaultRequest("guildsettings/$guildId").delete()) - if (!response.get("success").asBoolean()) { + if (!response["success"].asBoolean()) { logger.error("Failed to delete guild setting\n" + - "Response: {}", response.get("error").toString()) + "Response: {}", response["error"].toString()) } } fun registerNewGuildSettings(guildSettings: GuildSettings): Boolean { val json = guildSettings.toJson(mapper) val response = postJSON("guildsettings", json) - val success = response.get("success").asBoolean() + val success = response["success"].asBoolean() if (success) { return true } logger.error("Failed to register new guild\n" + - "Response: {}", response.get("error").toString()) + "Response: {}", response["error"].toString()) return false } @@ -136,9 +136,9 @@ class DuncteApis(private val apiKey: String, private val mapper: ObjectMapper) { val json = mapper.createObjectNode().put("word", word) val response = postJSON("guildsettings/$guildId/blacklist", json) - if (!response.get("success").asBoolean()) { + if (!response["success"].asBoolean()) { logger.error("Failed to add word to blacklist for guild {}\nResponse: {}", - guildId, response.get("error").toString()) + guildId, response["error"].toString()) } } @@ -148,9 +148,9 @@ class DuncteApis(private val apiKey: String, private val mapper: ObjectMapper) { words.forEach { array.add(it) } val response = postJSON("guildsettings/$guildId/blacklist/batch", json) - if (!response.get("success").asBoolean()) { + if (!response["success"].asBoolean()) { logger.error("Failed to batch add to blacklist for guild {}\nResponse: {}", - guildId, response.get("error").toString()) + guildId, response["error"].toString()) } } @@ -158,9 +158,9 @@ class DuncteApis(private val apiKey: String, private val mapper: ObjectMapper) { val json = mapper.createObjectNode().put("word", word) val response = deleteJSON("guildsettings/$guildId/blacklist", json) - if (!response.get("success").asBoolean()) { + if (!response["success"].asBoolean()) { logger.error("Failed to remove word from blacklist for guild {}\nResponse: {}", - guildId, response.get("error").toString()) + guildId, response["error"].toString()) } } @@ -168,9 +168,9 @@ class DuncteApis(private val apiKey: String, private val mapper: ObjectMapper) { val request = defaultRequest("guildsettings/$guildId/blacklist/all").delete() val response = executeRequest(request) - if (!response.get("success").asBoolean()) { + if (!response["success"].asBoolean()) { logger.error("Failed to clear blacklist for guild {}\nResponse: {}", - guildId, response.get("error").toString()) + guildId, response["error"].toString()) } } @@ -182,9 +182,9 @@ class DuncteApis(private val apiKey: String, private val mapper: ObjectMapper) { val json = mapper.createObjectNode().put("embed_color", color) val response = postJSON("embedsettings/$guildId", json) - if (!response.get("success").asBoolean()) { + if (!response["success"].asBoolean()) { logger.error("Failed to save embed data\n" + - "Response: {}", response.get("error").toString()) + "Response: {}", response["error"].toString()) } } @@ -197,9 +197,9 @@ class DuncteApis(private val apiKey: String, private val mapper: ObjectMapper) { .put("user_id", userId.toString()).put("guild_id", guildId.toString()) val response = postJSON("patrons/oneguild", json) - if (!response.get("success").asBoolean()) { + if (!response["success"].asBoolean()) { logger.error("Failed to add one guild patron\n" + - "Response: {}", response.get("error").toString()) + "Response: {}", response["error"].toString()) return false } @@ -210,24 +210,24 @@ class DuncteApis(private val apiKey: String, private val mapper: ObjectMapper) { fun getOneGuildPatron(userId: Long): ArrayNode { val response = executeRequest(defaultRequest("patrons/oneguild/$userId")) - return response.get("data") as ArrayNode + return response["data"] as ArrayNode } fun removeOneGuildPatron(userId: Long) { val response = executeRequest(defaultRequest("patrons/oneguild/$userId").delete()) - if (!response.get("success").asBoolean()) { + if (!response["success"].asBoolean()) { logger.error("Failed to remove one guild patron\n" + - "Response: {}", response.get("error").toString()) + "Response: {}", response["error"].toString()) } } fun createBan(json: JsonNode) { val response = postJSON("bans", json) - if (!response.get("success").asBoolean()) { + if (!response["success"].asBoolean()) { logger.error("Failed to create a ban\n" + - "Response: {}", response.get("error").toString()) + "Response: {}", response["error"].toString()) } } @@ -240,43 +240,43 @@ class DuncteApis(private val apiKey: String, private val mapper: ObjectMapper) { val response = postJSON("warns", json) - if (!response.get("success").asBoolean()) { + if (!response["success"].asBoolean()) { logger.error("Failed to create a warning\n" + - "Response: {}", response.get("error").toString()) + "Response: {}", response["error"].toString()) } } fun createMute(json: JsonNode): JsonNode { val response = postJSON("mutes", json) - if (!response.get("success").asBoolean()) { + if (!response["success"].asBoolean()) { logger.error("Failed to create a mute\n" + - "Response: {}", response.get("error").toString()) + "Response: {}", response["error"].toString()) } - return response.get("data") + return response["data"] } fun getWarningsForUser(userId: Long, guildId: Long): ArrayNode { val response = executeRequest(defaultRequest("warns/$userId/$guildId")) - return response.get("data") as ArrayNode + return response["data"] as ArrayNode } fun removeLatestWarningForUser(userId: Long, guildId: Long): JsonNode? { val response = executeRequest(defaultRequest("warns/$userId/$guildId/latest").delete()) - if (!response.get("success").asBoolean() && response.get("error").get("type").asText() == "WarningNotFoundException") { + if (!response["success"].asBoolean() && response["error"]["type"].asText() == "WarningNotFoundException") { return null } - return response.get("data") + return response["data"] } fun getExpiredBansAndMutes(): JsonNode { val response = executeRequest(defaultRequest("expiredbansandmutes")) - return response.get("data") + return response["data"] } fun purgeBans(ids: List) { @@ -287,9 +287,9 @@ class DuncteApis(private val apiKey: String, private val mapper: ObjectMapper) { val response = deleteJSON("bans", json) - if (!response.get("success").asBoolean()) { + if (!response["success"].asBoolean()) { logger.error("Failed to purge bans\n" + - "Response: {}", response.get("error").toString()) + "Response: {}", response["error"].toString()) } } @@ -301,9 +301,9 @@ class DuncteApis(private val apiKey: String, private val mapper: ObjectMapper) { val response = deleteJSON("mutes", json) - if (!response.get("success").asBoolean()) { + if (!response["success"].asBoolean()) { logger.error("Failed to purge mutes\n" + - "Response: {}", response.get("error").toString()) + "Response: {}", response["error"].toString()) } } @@ -320,9 +320,9 @@ class DuncteApis(private val apiKey: String, private val mapper: ObjectMapper) { val response = postJSON("vcautoroles", json) - if (!response.get("success").asBoolean()) { + if (!response["success"].asBoolean()) { logger.error("Failed to set vc autorole\n" + - "Response: {}", response.get("error").toString()) + "Response: {}", response["error"].toString()) } } @@ -334,9 +334,9 @@ class DuncteApis(private val apiKey: String, private val mapper: ObjectMapper) { val response = postJSON("vcautoroles/$guildId", json) - if (!response.get("success").asBoolean()) { + if (!response["success"].asBoolean()) { logger.error("Failed to set vc autorole in batch\n" + - "Response: {}", response.get("error").toString()) + "Response: {}", response["error"].toString()) } } @@ -344,9 +344,9 @@ class DuncteApis(private val apiKey: String, private val mapper: ObjectMapper) { val request = defaultRequest("vcautoroles/$voiceChannelId").delete() val response = executeRequest(request) - if (!response.get("success").asBoolean()) { + if (!response["success"].asBoolean()) { logger.error("Failed to remove vc autorole\n" + - "Response: {}", response.get("error").toString()) + "Response: {}", response["error"].toString()) } } @@ -354,9 +354,9 @@ class DuncteApis(private val apiKey: String, private val mapper: ObjectMapper) { val request = defaultRequest("vcautoroles/guild/$guildId").delete() val response = executeRequest(request) - if (!response.get("success").asBoolean()) { + if (!response["success"].asBoolean()) { logger.error("Failed to remove vc autorole\n" + - "Response: {}", response.get("error").toString()) + "Response: {}", response["error"].toString()) } } @@ -369,30 +369,30 @@ class DuncteApis(private val apiKey: String, private val mapper: ObjectMapper) { fun getPronouns(userId: Long): JsonNode? { val json = executeRequest(defaultRequest("pronouns/$userId")) - if (!json.get("success").asBoolean()) { + if (!json["success"].asBoolean()) { return null } - return json.get("data") + return json["data"] } fun getLove(name: String, name2: String): JsonNode? { val json = executeRequest(defaultRequest("love/${name.enc()}/${name2.enc()}", false)) - if (!json.get("success").asBoolean()) { + if (!json["success"].asBoolean()) { logger.error("Failed to get love\n" + - "Response: {}", json.get("error").toString()) + "Response: {}", json["error"].toString()) return null } - return json.get("data") + return json["data"] } fun getMeguminQuote(): String { val json = executeRequest(defaultRequest("megumin", false)) - return json.get("data").get("quote").asText() + return json["data"]["quote"].asText() } fun setPronouns(userId: Long, pronouns: String, singular: Boolean) { @@ -402,9 +402,9 @@ class DuncteApis(private val apiKey: String, private val mapper: ObjectMapper) { val response = postJSON("pronouns/$userId", json) - if (!response.get("success").asBoolean()) { + if (!response["success"].asBoolean()) { logger.error("Failed to create a pronoun\n" + - "Response: {}", response.get("error").toString()) + "Response: {}", response["error"].toString()) } } @@ -451,17 +451,17 @@ class DuncteApis(private val apiKey: String, private val mapper: ObjectMapper) { fun createTag(tag: ObjectNode): Pair { val response = postJSON("tags", tag) - if (!response.get("success").asBoolean()) { - val error = response.get("error") as ObjectNode + if (!response["success"].asBoolean()) { + val error = response["error"] as ObjectNode - if (error.get("type").asText() == "ValidationException") { + if (error["type"].asText() == "ValidationException") { return Pair(false, buildValidationErrorString(error)) } logger.error("Failed to create a tag\n" + "Response: {}", error.toString()) - return Pair(false, error.get("message").asText()) + return Pair(false, error["message"].asText()) } return Pair(true, "") @@ -470,13 +470,13 @@ class DuncteApis(private val apiKey: String, private val mapper: ObjectMapper) { fun deleteTag(tagName: String): Pair { val response = executeRequest(defaultRequest("tags/$tagName").delete()) - if (!response.get("success").asBoolean()) { - val error = response.get("error") + if (!response["success"].asBoolean()) { + val error = response["error"] logger.error("Failed to create a tag\n" + "Response: {}", error.toString()) - return Pair(false, error.get("message").asText()) + return Pair(false, error["message"].asText()) } return Pair(true, "") @@ -495,8 +495,8 @@ class DuncteApis(private val apiKey: String, private val mapper: ObjectMapper) { val response = postJSON("reminders", obj) - if (!response.get("success").asBoolean()) { - val error = response.get("error") + if (!response["success"].asBoolean()) { + val error = response["error"] logger.error("Failed to create a reminder\n" + "Response: {}", error.toString()) @@ -510,8 +510,8 @@ class DuncteApis(private val apiKey: String, private val mapper: ObjectMapper) { fun getExpiredReminders(): JsonNode { val response = executeRequest(defaultRequest("reminders/expired")) - if (!response.get("success").asBoolean()) { - val error = response.get("error") + if (!response["success"].asBoolean()) { + val error = response["error"] logger.error("Failed to get expired reminders\n" + "Response: {}", error.toString()) @@ -519,7 +519,7 @@ class DuncteApis(private val apiKey: String, private val mapper: ObjectMapper) { return mapper.createArrayNode() } - return response.get("data") + return response["data"] } fun purgeReminders(ids: List) { @@ -530,22 +530,22 @@ class DuncteApis(private val apiKey: String, private val mapper: ObjectMapper) { val response = deleteJSON("reminders/purge", json) - if (!response.get("success").asBoolean()) { + if (!response["success"].asBoolean()) { logger.error("Failed to purge mutes\n" + - "Response: {}", response.get("error").toString()) + "Response: {}", response["error"].toString()) } } fun getAnimal(type: String): JsonNode { - return executeDefaultGetRequest("animal/$type", false).get("data") + return executeDefaultGetRequest("animal/$type", false)["data"] } private fun buildValidationErrorString(error: ObjectNode): String { - val errors = error.get("errors") + val errors = error["errors"] return buildString { errors.fieldNames().forEach { - errors.get(it).forEach { er -> + errors[it].forEach { er -> appendln(er.toString()) } } @@ -555,21 +555,21 @@ class DuncteApis(private val apiKey: String, private val mapper: ObjectMapper) { private fun paginateData(path: String): ArrayNode { val res = executeRequest(defaultRequest("$path?page=1")) - val page1 = res.get("data") + val page1 = res["data"] - val data = page1.get("data") as ArrayNode + val data = page1["data"] as ArrayNode - val totalPages = page1.get("last_page").asInt() + 1 + val totalPages = page1["last_page"].asInt() + 1 for (i in 2 until totalPages) { - val page = executeRequest(defaultRequest("$path?page=$i")).get("data") + val page = executeRequest(defaultRequest("$path?page=$i"))["data"] - val pageData = page.get("data") as ArrayNode + val pageData = page["data"] as ArrayNode data.addAll(pageData) /*for (i2 in 0 until pageData.length()) { - data.addAll(pageData.get(i2)) + data.addAll(pageData[i2]) }*/ } @@ -585,14 +585,14 @@ class DuncteApis(private val apiKey: String, private val mapper: ObjectMapper) { } private fun parseTripleResponse(response: JsonNode): Triple { - val success = response.get("success").asBoolean() + val success = response["success"].asBoolean() if (success) { return Triple(first = true, second = false, third = false) } - val error = response.get("error") - val type = error.get("type").asText() + val error = response["error"] + val type = error["type"].asText() if (type == "AmountException") { return Triple(first = false, second = false, third = true) @@ -602,10 +602,10 @@ class DuncteApis(private val apiKey: String, private val mapper: ObjectMapper) { return Triple(first = false, second = false, third = false) } - val errors = response.get("error").get("errors") + val errors = response["error"]["errors"] for (key in errors.fieldNames()) { - errors.get(key).forEach { reason -> + errors[key].forEach { reason -> if (reason.asText().contains("The invoke has already been taken.")) { return Triple(first = false, second = true, third = false) } diff --git a/src/main/kotlin/ml/duncte123/skybot/utils/EarthUtils.kt b/src/main/kotlin/ml/duncte123/skybot/utils/EarthUtils.kt index 9ddd14c0e..4f0a3393f 100644 --- a/src/main/kotlin/ml/duncte123/skybot/utils/EarthUtils.kt +++ b/src/main/kotlin/ml/duncte123/skybot/utils/EarthUtils.kt @@ -234,11 +234,11 @@ class EarthUtils { val sort = if (all) "/.json?sort=all&t=day&limit=400" else "top/.json?sort=top&t=day&limit=400" WebUtils.ins.getJSONObject("https://www.reddit.com/r/$reddit/$sort").async { - val posts = it.get("data").get("children").filter { filter -> - event.channel.isNSFW || !filter.get("data").get("over_18").asBoolean() + val posts = it["data"]["children"].filter { filter -> + event.channel.isNSFW || !filter["data"]["over_18"].asBoolean() }.filter { filter -> - filter.get("data").get("selftext").asText().length <= 550 - && filter.get("data").get("title").asText().length <= 256 + filter["data"]["selftext"].asText().length <= 550 + && filter["data"]["title"].asText().length <= 256 } if (posts.isEmpty()) { @@ -249,24 +249,24 @@ class EarthUtils { } // We don't need to check for a contains because default value will be 0 - if (index.get(event.guild.idLong) >= posts.size) { + if (index[event.guild.idLong] >= posts.size) { index.put(event.guild.idLong, 0) } - val postI = index.get(event.guild.idLong) + val postI = index[event.guild.idLong] var rand = ThreadLocalRandom.current().nextInt(0, posts.size) if (postI == rand) { rand = ThreadLocalRandom.current().nextInt(0, posts.size) } - val post = posts[rand].get("data") + val post = posts[rand]["data"] index.put(event.guild.idLong, rand) - val title: String = post.get("title").asText() - val text: String = post.get("selftext").asText("") - val url: String = post.get("id").asText() + val title: String = post["title"].asText() + val text: String = post["selftext"].asText("") + val url: String = post["id"].asText() val embed = defaultEmbed().setTitle(title, "https://redd.it/$url") if (text.isNotEmpty()) { @@ -274,11 +274,11 @@ class EarthUtils { } if (post.has("preview")) { - val imagesO = post.get("preview") - val images = imagesO.get("images") + val imagesO = post["preview"] + val images = imagesO["images"] if (images != null) { - val image = images.get(0).get("source").get("url").asText() + val image = images[0]["source"]["url"].asText() embed.setImage(image.replaceFirst("preview", "i")) } } diff --git a/src/main/kotlin/ml/duncte123/skybot/web/controllers/DataController.kt b/src/main/kotlin/ml/duncte123/skybot/web/controllers/DataController.kt index 0570fdd39..fdebcc4ec 100644 --- a/src/main/kotlin/ml/duncte123/skybot/web/controllers/DataController.kt +++ b/src/main/kotlin/ml/duncte123/skybot/web/controllers/DataController.kt @@ -41,9 +41,9 @@ object DataController { println(updateData) - val expiredBans = updateData.get("unbans") - val expiredMutes = updateData.get("unmutes") - val expiredReminders = updateData.get("reminders") + val expiredBans = updateData["unbans"] + val expiredMutes = updateData["unmutes"] + val expiredReminders = updateData["reminders"] val bans: List = jackson.readValue(expiredBans.traverse(), object : TypeReference>() {}) val mutes: List = jackson.readValue(expiredMutes.traverse(), object : TypeReference>() {}) diff --git a/src/main/kotlin/ml/duncte123/skybot/web/controllers/OneGuildRegister.kt b/src/main/kotlin/ml/duncte123/skybot/web/controllers/OneGuildRegister.kt index 67c9fbdd5..a38848668 100644 --- a/src/main/kotlin/ml/duncte123/skybot/web/controllers/OneGuildRegister.kt +++ b/src/main/kotlin/ml/duncte123/skybot/web/controllers/OneGuildRegister.kt @@ -69,7 +69,7 @@ object OneGuildRegister { val cap = WebHelpers.verifyCapcha(captcha, variables.config.apis.chapta.secret, mapper) - if (!cap.get("success").asBoolean()) { + if (!cap["success"].asBoolean()) { return renderPage(WebVariables().put("message", "Captcha error: Please try again later"), variables.config) } diff --git a/src/main/kotlin/ml/duncte123/skybot/web/controllers/api/CustomCommands.kt b/src/main/kotlin/ml/duncte123/skybot/web/controllers/api/CustomCommands.kt index aaab403c8..a42a4b622 100644 --- a/src/main/kotlin/ml/duncte123/skybot/web/controllers/api/CustomCommands.kt +++ b/src/main/kotlin/ml/duncte123/skybot/web/controllers/api/CustomCommands.kt @@ -87,9 +87,9 @@ object CustomCommands { .put("code", response.status()) } - val invoke = commandData.get("name").asText() - val message = commandData.get("message").asText() - val autoresponse = commandData.get("autoresponse").asBoolean(false) + val invoke = commandData["name"].asText() + val message = commandData["message"].asText() + val autoresponse = commandData["autoresponse"].asBoolean(false) val manager = variables.commandManager if (!commandExists(invoke, guild.idLong, manager)) { @@ -131,7 +131,7 @@ object CustomCommands { .put("code", response.status()) } - val invoke = commandData.get("name").asText().replace("\\s".toRegex(), "") + val invoke = commandData["name"].asText().replace("\\s".toRegex(), "") if (invoke.length > 25) { return mapper.createObjectNode() @@ -140,7 +140,7 @@ object CustomCommands { .put("code", response.status()) } - val message = commandData.get("message").asText() + val message = commandData["message"].asText() if (message.length > 4000) { return mapper.createObjectNode() @@ -160,7 +160,7 @@ object CustomCommands { .put("code", response.status()) } - val autoresponse = commandData.get("autoresponse").asBoolean(false) + val autoresponse = commandData["autoresponse"].asBoolean(false) val result = registerCustomCommand(invoke, message, guild.idLong, autoresponse, manager) @@ -205,7 +205,7 @@ object CustomCommands { .put("code", response.status()) } - val invoke = commandData.get("name").asText() + val invoke = commandData["name"].asText() val manager = variables.commandManager diff --git a/src/main/kotlin/ml/duncte123/skybot/web/controllers/api/Suggest.kt b/src/main/kotlin/ml/duncte123/skybot/web/controllers/api/Suggest.kt index 212ed3686..2dbf188f8 100644 --- a/src/main/kotlin/ml/duncte123/skybot/web/controllers/api/Suggest.kt +++ b/src/main/kotlin/ml/duncte123/skybot/web/controllers/api/Suggest.kt @@ -22,6 +22,7 @@ import com.fasterxml.jackson.databind.JsonNode import com.fasterxml.jackson.databind.ObjectMapper import ml.duncte123.skybot.objects.config.DunctebotConfig import ml.duncte123.skybot.web.WebHelpers +import ml.duncte123.skybot.web.WebHelpers.addTrelloCard import spark.Request import spark.Response @@ -44,10 +45,10 @@ object Suggest { .put("code", response.status()) } - val captcha = jsonBody.get("g-recaptcha-response").asText() - val name = jsonBody.get("name").asText("") - val suggestion = jsonBody.get("sug").asText("") - val description = jsonBody.get("desc").asText("") + val captcha = jsonBody["g-recaptcha-response"].asText() + val name = jsonBody["name"].asText("") + val suggestion = jsonBody["sug"].asText("") + val description = jsonBody["desc"].asText("") if (name.isNullOrEmpty() || suggestion.isNullOrEmpty()) { response.status(400) @@ -60,7 +61,7 @@ object Suggest { val cap = WebHelpers.verifyCapcha(captcha, config.apis.chapta.secret, mapper) - if (!cap.get("success").asBoolean()) { + if (!cap["success"].asBoolean()) { return mapper.createObjectNode() .put("status", "failure") .put("message", "captcha_failed") @@ -70,8 +71,7 @@ object Suggest { val extraDesc = if (!description.isNullOrEmpty()) "$description\n\n" else "" val descText = "${extraDesc}Suggested by: $name\nSuggested from website" - val url = WebHelpers.addTrelloCard(suggestion.toString(), descText, config.apis.trello, mapper) - .get("shortUrl").asText() + val url = addTrelloCard(suggestion.toString(), descText, config.apis.trello, mapper)["shortUrl"].asText() return mapper.createObjectNode() .put("status", "success")