From e7bdb360fca85081b0cefc858bee8b7ced9e69c7 Mon Sep 17 00:00:00 2001 From: dalbodeule <11470513+dalbodeule@users.noreply.github.com> Date: Thu, 15 Aug 2024 07:29:27 +0900 Subject: [PATCH] apiDiscordRoutes fix. (4x) - fix server insights. --- .../webserver/utils/DiscordGuildCache.kt | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/utils/DiscordGuildCache.kt b/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/utils/DiscordGuildCache.kt index 7cfff9d..30b6555 100644 --- a/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/utils/DiscordGuildCache.kt +++ b/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/utils/DiscordGuildCache.kt @@ -8,7 +8,7 @@ import kotlinx.coroutines.delay import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.withLock import kotlinx.serialization.Serializable -import space.mori.chzzk_bot.common.utils.logger +import org.slf4j.LoggerFactory import space.mori.chzzk_bot.webserver.* import java.time.Instant import java.util.concurrent.ConcurrentHashMap @@ -17,6 +17,7 @@ object DiscordGuildCache { private val cache = ConcurrentHashMap() private const val EXP_SECONDS = 600L private val mutex = Mutex() + private val logger = LoggerFactory.getLogger(this::class.java) suspend fun getCachedGuilds(guildId: String): Guild? { val now = Instant.now() @@ -27,11 +28,16 @@ object DiscordGuildCache { if(guild == null || guild.timestamp.plusSeconds(EXP_SECONDS).isBefore(now) || !guild.isBotAvailable) { fetchAllGuilds() } - if(guild?.guild?.roles?.isEmpty() == true) { - guild.guild.roles = fetchGuildRoles(guildId) - } - if(guild?.guild?.channel?.isEmpty() == true) { - guild.guild.channel = fetchGuildChannels(guildId) + try { + if (guild?.guild?.roles?.isEmpty() == true) { + guild.guild.roles = fetchGuildRoles(guildId) + } + if (guild?.guild?.channel?.isEmpty() == true) { + guild.guild.channel = fetchGuildChannels(guildId) + } + } catch(e: Exception) { + logger.info("guild fetch is failed.") + return null } } }