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,17 +70,26 @@ fun Routing.wsSongListRoutes() {
for (frame in incoming) {
when(frame) {
is Frame.Text -> {
if(frame.readText() == "ping") {
if (frame.readText() == "ping") {
send("pong")
}
} else {
val data = frame.readText().let { Json.decodeFromString<SongRequest>(it) }
if(data.maxQueue != null && data.maxQueue > 0) SongConfigService.updateQueueLimit(user, data.maxQueue)
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.maxQueue != null && data.maxQueue > 0) SongConfigService.updateQueueLimit(
user,
data.maxQueue
)
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 {
val youtubeVideo = getYoutubeVideo(data.url)
if (youtubeVideo != null) {
@ -108,12 +117,12 @@ fun Routing.wsSongListRoutes() {
)
}
}
} catch(e: Exception) {
} catch (e: Exception) {
logger.debug("SongType.ADD Error: $uid $e")
}
}
else if(data.type == SongType.REMOVE.value && data.url != null) {
dispatcher.post(SongEvent(
} else if (data.type == SongType.REMOVE.value && data.url != null) {
dispatcher.post(
SongEvent(
user.token!!,
SongType.REMOVE,
null,
@ -122,15 +131,17 @@ fun Routing.wsSongListRoutes() {
null,
0,
data.url
))
} else if(data.type == SongType.NEXT.value) {
)
)
} else if (data.type == SongType.NEXT.value) {
val songList = SongListService.getSong(user)
if(songList.isNotEmpty()) {
if (songList.isNotEmpty()) {
val song = songList[0]
SongListService.deleteSong(user, song.uid, song.name)
}
dispatcher.post(SongEvent(
dispatcher.post(
SongEvent(
user.token!!,
SongType.NEXT,
null,
@ -139,7 +150,9 @@ fun Routing.wsSongListRoutes() {
null,
null,
null
))
)
)
}
}
}
is Frame.Ping -> send(Frame.Pong(frame.data))