Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 19 additions & 19 deletions src/main/kotlin/ml/duncte123/skybot/adapters/WebDatabaseAdapter.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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)
Expand All @@ -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)
Expand Down Expand Up @@ -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()
))
}
}
Expand All @@ -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()
))
}

Expand All @@ -293,8 +293,8 @@ class WebDatabaseAdapter(private val apis: DuncteApis, private val jackson: Obje
override fun getExpiredBansAndMutes(callback: (List<Ban>, List<Mute>) -> 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<Ban> = jackson.readValue(storedBans.traverse(), object : TypeReference<List<Ban>>() {})
val mutes: List<Mute> = jackson.readValue(storedMutes.traverse(), object : TypeReference<List<Mute>>() {})
Expand All @@ -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()
))
}

Expand Down Expand Up @@ -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)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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()))
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
12 changes: 7 additions & 5 deletions src/main/kotlin/ml/duncte123/skybot/commands/fun/ImageCommand.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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()
)
}
}
Expand Down
12 changes: 6 additions & 6 deletions src/main/kotlin/ml/duncte123/skybot/commands/fun/KpopCommand.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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()
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
Expand All @@ -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) {
Expand Down
36 changes: 17 additions & 19 deletions src/main/kotlin/ml/duncte123/skybot/commands/music/LyricsCommand.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -54,7 +53,6 @@ class LyricsCommand : MusicCommand() {
return
}


val mng = ctx.audioUtils.getMusicManager(ctx.guild)
val player = mng.player

Expand All @@ -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 {
Expand All @@ -87,37 +85,37 @@ 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)
formData.append("client_secret", config.client_secret)
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()
)
}
}
}
}
18 changes: 10 additions & 8 deletions src/main/kotlin/ml/duncte123/skybot/commands/nsfw/NSFWCommands.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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()))
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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())

Expand Down
4 changes: 2 additions & 2 deletions src/main/kotlin/ml/duncte123/skybot/extensions/AudioTrack.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Loading