mirror of
https://github.com/dalbodeule/chibot-chzzk-bot.git
synced 2025-06-09 07:18:22 +00:00
Merge pull request #89 from dalbodeule/develop
apiDiscordRoutes fix. (9x)
This commit is contained in:
commit
090cb8ade2
@ -77,56 +77,66 @@ object DiscordGuildCache {
|
|||||||
if(DiscordRatelimits.isLimited()) {
|
if(DiscordRatelimits.isLimited()) {
|
||||||
delay(DiscordRatelimits.getRateReset())
|
delay(DiscordRatelimits.getRateReset())
|
||||||
}
|
}
|
||||||
val result = applicationHttpClient.get("https://discord.com/api/guilds/${guildId}/roles") {
|
try {
|
||||||
headers {
|
val result = applicationHttpClient.get("https://discord.com/api/guilds/${guildId}/roles") {
|
||||||
append(HttpHeaders.Authorization, "Bot ${dotenv["DISCORD_TOKEN"]}")
|
headers {
|
||||||
|
append(HttpHeaders.Authorization, "Bot ${dotenv["DISCORD_TOKEN"]}")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
val rateLimit = result.headers["X-RateLimit-Limit"]?.toIntOrNull()
|
val rateLimit = result.headers["X-RateLimit-Limit"]?.toIntOrNull()
|
||||||
val remaining = result.headers["X-RateLimit-Remaining"]?.toIntOrNull()
|
val remaining = result.headers["X-RateLimit-Remaining"]?.toIntOrNull()
|
||||||
val resetAfter = result.headers["X-RateLimit-Reset-After"]?.toDoubleOrNull()?.toLong()?.plus(1L)
|
val resetAfter = result.headers["X-RateLimit-Reset-After"]?.toDoubleOrNull()?.toLong()?.plus(1L)
|
||||||
|
|
||||||
DiscordRatelimits.setRateLimit(rateLimit, remaining, resetAfter)
|
DiscordRatelimits.setRateLimit(rateLimit, remaining, resetAfter)
|
||||||
|
|
||||||
if (result.status != HttpStatusCode.OK) {
|
if (result.status != HttpStatusCode.OK) {
|
||||||
logger.error("Failed to fetch data from Discord API. Status: ${result.status} ${result.bodyAsText()}")
|
logger.error("Failed to fetch data from Discord API. Status: ${result.status} ${result.bodyAsText()}")
|
||||||
|
return emptyList()
|
||||||
|
}
|
||||||
|
|
||||||
|
val parsed = result.body<List<GuildRole>>()
|
||||||
|
|
||||||
|
parsed.forEach { println("${it.name} - ${it.id}") }
|
||||||
|
|
||||||
|
return parsed
|
||||||
|
} catch(e: Exception) {
|
||||||
|
logger.info("fetchGuildRoles error: ${e.stackTraceToString()}")
|
||||||
return emptyList()
|
return emptyList()
|
||||||
}
|
}
|
||||||
|
|
||||||
val parsed = result.body<List<GuildRole>>()
|
|
||||||
|
|
||||||
parsed.forEach { println("${it.name} - ${it.id}") }
|
|
||||||
|
|
||||||
return parsed
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun fetchGuildChannels(guildId: String): List<GuildChannel> {
|
private suspend fun fetchGuildChannels(guildId: String): List<GuildChannel> {
|
||||||
if(DiscordRatelimits.isLimited()) {
|
if(DiscordRatelimits.isLimited()) {
|
||||||
delay(DiscordRatelimits.getRateReset())
|
delay(DiscordRatelimits.getRateReset())
|
||||||
}
|
}
|
||||||
val result = applicationHttpClient.get("https://discord.com/api/guilds/${guildId}/channels") {
|
try {
|
||||||
headers {
|
val result = applicationHttpClient.get("https://discord.com/api/guilds/${guildId}/channels") {
|
||||||
append(HttpHeaders.Authorization, "Bot ${dotenv["DISCORD_TOKEN"]}")
|
headers {
|
||||||
|
append(HttpHeaders.Authorization, "Bot ${dotenv["DISCORD_TOKEN"]}")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
val rateLimit = result.headers["X-RateLimit-Limit"]?.toIntOrNull()
|
val rateLimit = result.headers["X-RateLimit-Limit"]?.toIntOrNull()
|
||||||
val remaining = result.headers["X-RateLimit-Remaining"]?.toIntOrNull()
|
val remaining = result.headers["X-RateLimit-Remaining"]?.toIntOrNull()
|
||||||
val resetAfter = result.headers["X-RateLimit-Reset-After"]?.toDoubleOrNull()?.toLong()?.plus(1L)
|
val resetAfter = result.headers["X-RateLimit-Reset-After"]?.toDoubleOrNull()?.toLong()?.plus(1L)
|
||||||
|
|
||||||
DiscordRatelimits.setRateLimit(rateLimit, remaining, resetAfter)
|
DiscordRatelimits.setRateLimit(rateLimit, remaining, resetAfter)
|
||||||
|
|
||||||
if (result.status != HttpStatusCode.OK) {
|
if (result.status != HttpStatusCode.OK) {
|
||||||
logger.error("Failed to fetch data from Discord API. Status: ${result.status} ${result.bodyAsText()}")
|
logger.error("Failed to fetch data from Discord API. Status: ${result.status} ${result.bodyAsText()}")
|
||||||
|
return emptyList()
|
||||||
|
}
|
||||||
|
|
||||||
|
val parsed = result.body<List<GuildChannel>>().filter { it.type == ChannelType.GUILD_TEXT }
|
||||||
|
|
||||||
|
parsed.forEach { println("${it.name} - ${it.id}") }
|
||||||
|
|
||||||
|
return parsed
|
||||||
|
} catch(e: Exception) {
|
||||||
|
logger.info("fetchGuildRoles error: ${e.stackTraceToString()}")
|
||||||
return emptyList()
|
return emptyList()
|
||||||
}
|
}
|
||||||
|
|
||||||
val parsed = result.body<List<GuildChannel>>().filter { it.type == ChannelType.GUILD_TEXT }
|
|
||||||
|
|
||||||
parsed.forEach { println("${it.name} - ${it.id}") }
|
|
||||||
|
|
||||||
return parsed
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun fetchAllGuilds() {
|
private suspend fun fetchAllGuilds() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user