This commit is contained in:
dalbodeule 2024-08-15 19:53:40 +09:00
parent 1bea333d9d
commit 8a3c64ab46
No known key found for this signature in database
GPG Key ID: EFA860D069C9FA65

View File

@ -70,76 +70,89 @@ fun Routing.wsSongListRoutes() {
for (frame in incoming) { for (frame in incoming) {
when(frame) { when(frame) {
is Frame.Text -> { is Frame.Text -> {
if(frame.readText() == "ping") { if (frame.readText() == "ping") {
send("pong") send("pong")
} } else {
val data = frame.readText().let { Json.decodeFromString<SongRequest>(it) } val data = frame.readText().let { Json.decodeFromString<SongRequest>(it) }
if(data.maxQueue != null && data.maxQueue > 0) SongConfigService.updateQueueLimit(user, data.maxQueue) if (data.maxQueue != null && data.maxQueue > 0) SongConfigService.updateQueueLimit(
if(data.maxUserLimit != null && data.maxUserLimit > 0) SongConfigService.updatePersonalLimit(user, data.maxUserLimit) user,
if(data.isStreamerOnly != null) SongConfigService.updateStreamerOnly(user, data.isStreamerOnly) data.maxQueue
if(data.isDisabled != null) SongConfigService.updateDisabled(user, data.isDisabled) )
if (data.maxUserLimit != null && data.maxUserLimit > 0) SongConfigService.updatePersonalLimit(
user,
data.maxUserLimit
)
if (data.isStreamerOnly != null) SongConfigService.updateStreamerOnly(
user,
data.isStreamerOnly
)
if (data.isDisabled != null) SongConfigService.updateDisabled(user, data.isDisabled)
if(data.type == SongType.ADD.value && data.url != null) { if (data.type == SongType.ADD.value && data.url != null) {
try { try {
val youtubeVideo = getYoutubeVideo(data.url) val youtubeVideo = getYoutubeVideo(data.url)
if (youtubeVideo != null) { if (youtubeVideo != null) {
CoroutineScope(Dispatchers.Default).launch { CoroutineScope(Dispatchers.Default).launch {
SongListService.saveSong( SongListService.saveSong(
user, user,
user.token!!,
data.url,
youtubeVideo.name,
youtubeVideo.author,
youtubeVideo.length,
user.username
)
dispatcher.post(
SongEvent(
user.token!!, user.token!!,
SongType.ADD, data.url,
user.token,
user.username,
youtubeVideo.name, youtubeVideo.name,
youtubeVideo.author, youtubeVideo.author,
youtubeVideo.length, youtubeVideo.length,
youtubeVideo.url user.username
) )
) dispatcher.post(
SongEvent(
user.token!!,
SongType.ADD,
user.token,
user.username,
youtubeVideo.name,
youtubeVideo.author,
youtubeVideo.length,
youtubeVideo.url
)
)
}
} }
} catch (e: Exception) {
logger.debug("SongType.ADD Error: $uid $e")
}
} else if (data.type == SongType.REMOVE.value && data.url != null) {
dispatcher.post(
SongEvent(
user.token!!,
SongType.REMOVE,
null,
null,
null,
null,
0,
data.url
)
)
} else if (data.type == SongType.NEXT.value) {
val songList = SongListService.getSong(user)
if (songList.isNotEmpty()) {
val song = songList[0]
SongListService.deleteSong(user, song.uid, song.name)
} }
} catch(e: Exception) {
logger.debug("SongType.ADD Error: $uid $e")
}
}
else if(data.type == SongType.REMOVE.value && data.url != null) {
dispatcher.post(SongEvent(
user.token!!,
SongType.REMOVE,
null,
null,
null,
null,
0,
data.url
))
} else if(data.type == SongType.NEXT.value) {
val songList = SongListService.getSong(user)
if(songList.isNotEmpty()) {
val song = songList[0]
SongListService.deleteSong(user, song.uid, song.name)
}
dispatcher.post(SongEvent( dispatcher.post(
user.token!!, SongEvent(
SongType.NEXT, user.token!!,
null, SongType.NEXT,
null, null,
null, null,
null, null,
null, null,
null null,
)) null
)
)
}
} }
} }
is Frame.Ping -> send(Frame.Pong(frame.data)) is Frame.Ping -> send(Frame.Pong(frame.data))