diff --git a/chatbot/src/main/kotlin/space/mori/chzzk_bot/chatbot/chzzk/ChzzkHandler.kt b/chatbot/src/main/kotlin/space/mori/chzzk_bot/chatbot/chzzk/ChzzkHandler.kt index 65463c3..c9cddbb 100644 --- a/chatbot/src/main/kotlin/space/mori/chzzk_bot/chatbot/chzzk/ChzzkHandler.kt +++ b/chatbot/src/main/kotlin/space/mori/chzzk_bot/chatbot/chzzk/ChzzkHandler.kt @@ -29,7 +29,7 @@ object ChzzkHandler { private val logger = LoggerFactory.getLogger(this::class.java) lateinit var botUid: String @Volatile private var running: Boolean = false - val dispatcher: CoroutinesEventBus by inject(CoroutinesEventBus::class.java) + private val dispatcher: CoroutinesEventBus by inject(CoroutinesEventBus::class.java) fun addUser(chzzkChannel: ChzzkChannel, user: User) { handlers.add(UserHandler(chzzkChannel, logger, user, streamStartTime = null)) diff --git a/chatbot/src/main/kotlin/space/mori/chzzk_bot/chatbot/chzzk/MessageHandler.kt b/chatbot/src/main/kotlin/space/mori/chzzk_bot/chatbot/chzzk/MessageHandler.kt index d96943e..26b04ad 100644 --- a/chatbot/src/main/kotlin/space/mori/chzzk_bot/chatbot/chzzk/MessageHandler.kt +++ b/chatbot/src/main/kotlin/space/mori/chzzk_bot/chatbot/chzzk/MessageHandler.kt @@ -157,7 +157,7 @@ class MessageHandler( CoroutineScope(Dispatchers.Default).launch { dispatcher.post( TimerEvent( - user.token, + user.token!!, TimerType.UPTIME, getUptime(handler.streamStartTime!!) ) @@ -167,7 +167,7 @@ class MessageHandler( "삭제" -> { logger.debug("${user.token} / 삭제") CoroutineScope(Dispatchers.Default).launch { - dispatcher.post(TimerEvent(user.token, TimerType.REMOVE, "")) + dispatcher.post(TimerEvent(user.token!!, TimerType.REMOVE, "")) } } "설정" -> { @@ -191,7 +191,7 @@ class MessageHandler( val timestamp = currentTime.plus(time.toLong(), ChronoUnit.MINUTES) CoroutineScope(Dispatchers.Default).launch { - dispatcher.post(TimerEvent(user.token, TimerType.TIMER, timestamp.toString())) + dispatcher.post(TimerEvent(user.token!!, TimerType.TIMER, timestamp.toString())) } } catch (e: NumberFormatException) { listener.sendChat("!타이머/숫자 형식으로 적어주세요! 단위: 분") @@ -254,7 +254,7 @@ class MessageHandler( CoroutineScope(Dispatchers.Default).launch { dispatcher.post( SongEvent( - user.token, + user.token!!, SongType.ADD, msg.userId, msg.profile?.nickname ?: "", @@ -286,10 +286,12 @@ class MessageHandler( val session = "${UUID.randomUUID()}${UUID.randomUUID()}".replace("-", "") - bot.retrieveUserById(user.discord).queue { discordUser -> - discordUser?.openPrivateChannel()?.queue { channel -> - channel.sendMessage("여기로 접속해주세요! ||https://nabot.mori.space/songlist||.") - .queue() + user.discord?.let { + bot.retrieveUserById(it).queue { discordUser -> + discordUser?.openPrivateChannel()?.queue { channel -> + channel.sendMessage("여기로 접속해주세요! ||https://nabot.mori.space/songlist||.") + .queue() + } } } } diff --git a/chatbot/src/main/kotlin/space/mori/chzzk_bot/chatbot/discord/commands/AddCommand.kt b/chatbot/src/main/kotlin/space/mori/chzzk_bot/chatbot/discord/commands/AddCommand.kt index 52761f2..324eaa7 100644 --- a/chatbot/src/main/kotlin/space/mori/chzzk_bot/chatbot/discord/commands/AddCommand.kt +++ b/chatbot/src/main/kotlin/space/mori/chzzk_bot/chatbot/discord/commands/AddCommand.kt @@ -57,7 +57,7 @@ object AddCommand : CommandInterface { return } - val chzzkChannel = Connector.getChannel(user!!.token) + val chzzkChannel = user!!.token?.let { Connector.getChannel(it) } try { CommandService.saveCommand(user!!, label, content, failContent ?: "") diff --git a/chatbot/src/main/kotlin/space/mori/chzzk_bot/chatbot/discord/commands/AlertCommand.kt b/chatbot/src/main/kotlin/space/mori/chzzk_bot/chatbot/discord/commands/AlertCommand.kt index 801586e..bf4370f 100644 --- a/chatbot/src/main/kotlin/space/mori/chzzk_bot/chatbot/discord/commands/AlertCommand.kt +++ b/chatbot/src/main/kotlin/space/mori/chzzk_bot/chatbot/discord/commands/AlertCommand.kt @@ -43,7 +43,7 @@ object AlertCommand : CommandInterface { return } - val chzzkChannel = Connector.getChannel(user!!.token) + val chzzkChannel = user!!.token?.let { Connector.getChannel(it) } try { val newUser = UserService.updateLiveAlert(user!!.id.value, channel?.guild?.idLong ?: 0L, channel?.idLong ?: 0L, content ?: "") diff --git a/chatbot/src/main/kotlin/space/mori/chzzk_bot/chatbot/discord/commands/RemoveCommand.kt b/chatbot/src/main/kotlin/space/mori/chzzk_bot/chatbot/discord/commands/RemoveCommand.kt index 377413d..23acaa7 100644 --- a/chatbot/src/main/kotlin/space/mori/chzzk_bot/chatbot/discord/commands/RemoveCommand.kt +++ b/chatbot/src/main/kotlin/space/mori/chzzk_bot/chatbot/discord/commands/RemoveCommand.kt @@ -47,7 +47,7 @@ object RemoveCommand : CommandInterface { return } - val chzzkChannel = Connector.getChannel(user!!.token) + val chzzkChannel = user!!.token?.let { Connector.getChannel(it) } try { CommandService.removeCommand(user!!, label) diff --git a/chatbot/src/main/kotlin/space/mori/chzzk_bot/chatbot/discord/commands/UpdateCommand.kt b/chatbot/src/main/kotlin/space/mori/chzzk_bot/chatbot/discord/commands/UpdateCommand.kt index e1f8e0f..c394592 100644 --- a/chatbot/src/main/kotlin/space/mori/chzzk_bot/chatbot/discord/commands/UpdateCommand.kt +++ b/chatbot/src/main/kotlin/space/mori/chzzk_bot/chatbot/discord/commands/UpdateCommand.kt @@ -51,7 +51,7 @@ object UpdateCommand : CommandInterface { return } - val chzzkChannel = Connector.getChannel(user!!.token) + val chzzkChannel = user!!.token?.let { Connector.getChannel(it) } try { CommandService.updateCommand(user!!, label, content, failContent ?: "") diff --git a/common/src/main/kotlin/space/mori/chzzk_bot/common/models/User.kt b/common/src/main/kotlin/space/mori/chzzk_bot/common/models/User.kt index 8b8067a..e0bb2d4 100644 --- a/common/src/main/kotlin/space/mori/chzzk_bot/common/models/User.kt +++ b/common/src/main/kotlin/space/mori/chzzk_bot/common/models/User.kt @@ -8,8 +8,8 @@ import org.jetbrains.exposed.dao.id.IntIdTable object Users: IntIdTable("users") { val username = varchar("username", 255) - val token = varchar("token", 64) - val discord = long("discord") + val token = varchar("token", 64).nullable() + val discord = long("discord").nullable() val naverId = varchar("naver_id", 128) val liveAlertGuild = long("live_alert_guild").nullable() val liveAlertChannel = long("live_alert_channel").nullable() 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 1578b62..764b428 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 @@ -103,6 +103,8 @@ val server = embeddedServer(Netty, port = 8080, ) { } get("/logout") { call.sessions.clear() + call.response.status(HttpStatusCode.OK) + return@get } } diff --git a/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/routes/ApiRoutes.kt b/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/routes/ApiRoutes.kt index af8c34f..b011317 100644 --- a/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/routes/ApiRoutes.kt +++ b/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/routes/ApiRoutes.kt @@ -93,7 +93,7 @@ fun Routing.apiRoutes() { user = UserService.saveUser(session.nickname, session.id) } val songConfig = SongConfigService.getConfig(user) - val status = getStreamInfo(user.token) + val status = getStreamInfo(user.token!!) if(status.content == null) { call.respondText(user.naverId, status = HttpStatusCode.NotFound) diff --git a/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/routes/WSSongListRoutes.kt b/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/routes/WSSongListRoutes.kt index b9c0019..6be3ca0 100644 --- a/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/routes/WSSongListRoutes.kt +++ b/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/routes/WSSongListRoutes.kt @@ -49,13 +49,13 @@ fun Routing.wsSongListRoutes() { val uid = user.token - addSession(uid, this) + addSession(uid!!, this) if(status[uid] == SongType.STREAM_OFF) { CoroutineScope(Dispatchers.Default).launch { sendSerialized(SongResponse( SongType.STREAM_OFF.value, - user.token, + uid, null, null, null, @@ -83,7 +83,7 @@ fun Routing.wsSongListRoutes() { CoroutineScope(Dispatchers.Default).launch { SongListService.saveSong( user, - user.token, + user.token!!, data.url, youtubeVideo.name, youtubeVideo.author, @@ -92,7 +92,7 @@ fun Routing.wsSongListRoutes() { ) dispatcher.post( SongEvent( - user.token, + user.token!!, SongType.ADD, user.token, user.username, @@ -110,7 +110,7 @@ fun Routing.wsSongListRoutes() { } else if(data.type == SongType.REMOVE.value && data.url != null) { dispatcher.post(SongEvent( - user.token, + user.token!!, SongType.REMOVE, null, null, @@ -123,7 +123,7 @@ fun Routing.wsSongListRoutes() { val song = SongListService.getSong(user)[0] SongListService.deleteSong(user, song.uid, song.name) dispatcher.post(SongEvent( - user.token, + user.token!!, SongType.NEXT, null, null,