From 1465716e728746cea6ada77331048d3b6cc750d5 Mon Sep 17 00:00:00 2001 From: dalbodeule <11470513+dalbodeule@users.noreply.github.com> Date: Fri, 16 May 2025 00:54:43 +0900 Subject: [PATCH] [hotfix] hotfix on register and activate logics. --- .../mori/chzzk_bot/chatbot/discord/Discord.kt | 2 +- .../space/mori/chzzk_bot/webserver/Main.kt | 20 ++++++++++++++++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/chatbot/src/main/kotlin/space/mori/chzzk_bot/chatbot/discord/Discord.kt b/chatbot/src/main/kotlin/space/mori/chzzk_bot/chatbot/discord/Discord.kt index b190168..af54e80 100644 --- a/chatbot/src/main/kotlin/space/mori/chzzk_bot/chatbot/discord/Discord.kt +++ b/chatbot/src/main/kotlin/space/mori/chzzk_bot/chatbot/discord/Discord.kt @@ -43,7 +43,7 @@ class Discord: ListenerAdapter() { embed.setDescription("${user.username} 님이 방송을 시작했습니다.") embed.setTimestamp(Instant.now()) embed.setAuthor(user.username, "https://chzzk.naver.com/live/${user.token}") - embed.addField("카테고리", status.categoryType.getOrNull() ?: "Unknown", true) + embed.addField("카테고리", status.liveCategoryValue, true) embed.addField("태그", status.tags.joinToString(", ") { it.trim() }, true) // embed.setImage(status.) diff --git a/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/Main.kt b/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/Main.kt index cafa8d5..aea119d 100644 --- a/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/Main.kt +++ b/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/Main.kt @@ -22,12 +22,16 @@ import io.ktor.server.websocket.* import kotlinx.coroutines.delay import kotlinx.serialization.Serializable import kotlinx.serialization.json.Json +import org.koin.java.KoinJavaComponent.inject +import space.mori.chzzk_bot.common.events.CoroutinesEventBus +import space.mori.chzzk_bot.common.events.UserRegisterEvent import space.mori.chzzk_bot.common.services.UserService import space.mori.chzzk_bot.webserver.routes.* import space.mori.chzzk_bot.webserver.utils.DiscordRatelimits import java.math.BigInteger import java.security.SecureRandom import java.time.Duration +import kotlin.getValue import kotlin.time.toKotlinDuration val dotenv = dotenv { @@ -81,6 +85,8 @@ val server = embeddedServer(Netty, port = 8080, ) { } } routing { + val dispatcher: CoroutinesEventBus by inject(CoroutinesEventBus::class.java) + route("/auth") { // discord login authenticate("auth-oauth-discord") { @@ -191,7 +197,12 @@ val server = embeddedServer(Netty, port = 8080, ) { val userInfo = getChzzkUser(tokenResponse.content.accessToken) if(userInfo.content != null) { - val user = UserService.getUser(userInfo.content.channelId) + var user = UserService.getUser(userInfo.content.channelId) + + if(user == null) { + user = UserService.saveUser(userInfo.content.channelName , userInfo.content.channelId) + } + call.sessions.set( UserSession( session.state, @@ -199,10 +210,13 @@ val server = embeddedServer(Netty, port = 8080, ) { listOf() ) ) - user?.let { UserService.setRefreshToken(it, + UserService.setRefreshToken(user, tokenResponse.content.accessToken, tokenResponse.content.refreshToken ?: "" - ) } + ) + + dispatcher.post(UserRegisterEvent(user.token)) + call.respondRedirect(getFrontendURL("")) } } catch (e: Exception) {