mirror of
https://github.com/dalbodeule/chibot-chzzk-bot.git
synced 2025-08-07 21:01:14 +00:00
debug on loading (3x)
This commit is contained in:
@@ -1,7 +1,6 @@
|
|||||||
package space.mori.chzzk_bot.common.services
|
package space.mori.chzzk_bot.common.services
|
||||||
|
|
||||||
import org.jetbrains.exposed.dao.load
|
import org.jetbrains.exposed.dao.load
|
||||||
import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq
|
|
||||||
import org.jetbrains.exposed.sql.transactions.transaction
|
import org.jetbrains.exposed.sql.transactions.transaction
|
||||||
import space.mori.chzzk_bot.common.models.User
|
import space.mori.chzzk_bot.common.models.User
|
||||||
import space.mori.chzzk_bot.common.models.Users
|
import space.mori.chzzk_bot.common.models.Users
|
||||||
@@ -35,7 +34,7 @@ object UserService {
|
|||||||
|
|
||||||
fun getUser(id: Int): User? {
|
fun getUser(id: Int): User? {
|
||||||
return transaction {
|
return transaction {
|
||||||
val user = User.findById(id)
|
val user = User.find{ Users.id eq id }.firstOrNull()
|
||||||
user?.load(User::subordinates, User::managers)
|
user?.load(User::subordinates, User::managers)
|
||||||
user
|
user
|
||||||
}
|
}
|
||||||
@@ -43,9 +42,7 @@ object UserService {
|
|||||||
|
|
||||||
fun getUser(discordID: Long): User? {
|
fun getUser(discordID: Long): User? {
|
||||||
return transaction {
|
return transaction {
|
||||||
val users = User.find(Users.discord eq discordID)
|
val user = User.find{ Users.discord eq discordID }.firstOrNull()
|
||||||
|
|
||||||
val user = users.firstOrNull()
|
|
||||||
user?.load(User::subordinates, User::managers)
|
user?.load(User::subordinates, User::managers)
|
||||||
user
|
user
|
||||||
}
|
}
|
||||||
@@ -53,9 +50,7 @@ object UserService {
|
|||||||
|
|
||||||
fun getUser(chzzkID: String): User? {
|
fun getUser(chzzkID: String): User? {
|
||||||
return transaction {
|
return transaction {
|
||||||
val users = User.find(Users.token eq chzzkID)
|
val user = User.find{ Users.token eq chzzkID }.firstOrNull()
|
||||||
|
|
||||||
val user = users.firstOrNull()
|
|
||||||
user?.load(User::subordinates, User::managers)
|
user?.load(User::subordinates, User::managers)
|
||||||
user
|
user
|
||||||
}
|
}
|
||||||
@@ -63,9 +58,7 @@ object UserService {
|
|||||||
|
|
||||||
fun getUserWithGuildId(discordGuildId: Long): User? {
|
fun getUserWithGuildId(discordGuildId: Long): User? {
|
||||||
return transaction {
|
return transaction {
|
||||||
val users = User.find(Users.liveAlertGuild eq discordGuildId)
|
val user = User.find { Users.liveAlertGuild eq discordGuildId }.firstOrNull()
|
||||||
|
|
||||||
val user = users.firstOrNull()
|
|
||||||
user?.load(User::subordinates, User::managers)
|
user?.load(User::subordinates, User::managers)
|
||||||
user
|
user
|
||||||
}
|
}
|
||||||
@@ -73,9 +66,7 @@ object UserService {
|
|||||||
|
|
||||||
fun getUserWithNaverId(naverId: String): User? {
|
fun getUserWithNaverId(naverId: String): User? {
|
||||||
return transaction {
|
return transaction {
|
||||||
val users = User.find(Users.naverId eq naverId)
|
val user = User.find{ Users.naverId eq naverId }.firstOrNull()
|
||||||
|
|
||||||
val user = users.firstOrNull()
|
|
||||||
user?.load(User::subordinates, User::managers)
|
user?.load(User::subordinates, User::managers)
|
||||||
user
|
user
|
||||||
}
|
}
|
||||||
|
@@ -10,6 +10,7 @@ import kotlinx.coroutines.CoroutineScope
|
|||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
|
import org.jetbrains.exposed.sql.transactions.transaction
|
||||||
import org.koin.java.KoinJavaComponent.inject
|
import org.koin.java.KoinJavaComponent.inject
|
||||||
import space.mori.chzzk_bot.common.events.CommandReloadEvent
|
import space.mori.chzzk_bot.common.events.CommandReloadEvent
|
||||||
import space.mori.chzzk_bot.common.events.CoroutinesEventBus
|
import space.mori.chzzk_bot.common.events.CoroutinesEventBus
|
||||||
@@ -54,7 +55,10 @@ fun Routing.apiCommandRoutes() {
|
|||||||
return@put
|
return@put
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!user.managers.any { it.naverId == session?.id } && user.naverId != session?.id) {
|
val managers = transaction {
|
||||||
|
user.managers
|
||||||
|
}
|
||||||
|
if(!managers.any { it.naverId == session?.id } && user.naverId != session?.id) {
|
||||||
call.respond(HttpStatusCode.BadRequest, "User does not exist")
|
call.respond(HttpStatusCode.BadRequest, "User does not exist")
|
||||||
return@put
|
return@put
|
||||||
}
|
}
|
||||||
@@ -84,7 +88,10 @@ fun Routing.apiCommandRoutes() {
|
|||||||
return@post
|
return@post
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!user.managers.any { it.naverId == session?.id } && user.naverId != session?.id) {
|
val managers = transaction {
|
||||||
|
user.managers
|
||||||
|
}
|
||||||
|
if(!managers.any { it.naverId == session?.id } && user.naverId != session?.id) {
|
||||||
call.respond(HttpStatusCode.BadRequest, "User does not exist")
|
call.respond(HttpStatusCode.BadRequest, "User does not exist")
|
||||||
return@post
|
return@post
|
||||||
}
|
}
|
||||||
@@ -119,7 +126,10 @@ fun Routing.apiCommandRoutes() {
|
|||||||
return@delete
|
return@delete
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!user.managers?.any { it.naverId == session?.id }!! ?: true && user.naverId != session?.id) {
|
val managers = transaction {
|
||||||
|
user.managers
|
||||||
|
}
|
||||||
|
if(!managers.any { it.naverId == session?.id } && user.naverId != session?.id) {
|
||||||
call.respond(HttpStatusCode.BadRequest, "User does not exist")
|
call.respond(HttpStatusCode.BadRequest, "User does not exist")
|
||||||
return@delete
|
return@delete
|
||||||
}
|
}
|
||||||
|
@@ -7,6 +7,7 @@ import io.ktor.server.response.*
|
|||||||
import io.ktor.server.routing.*
|
import io.ktor.server.routing.*
|
||||||
import io.ktor.server.sessions.*
|
import io.ktor.server.sessions.*
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
|
import org.jetbrains.exposed.sql.transactions.transaction
|
||||||
import org.koin.java.KoinJavaComponent.inject
|
import org.koin.java.KoinJavaComponent.inject
|
||||||
import space.mori.chzzk_bot.common.events.CoroutinesEventBus
|
import space.mori.chzzk_bot.common.events.CoroutinesEventBus
|
||||||
import space.mori.chzzk_bot.common.services.UserService
|
import space.mori.chzzk_bot.common.services.UserService
|
||||||
@@ -29,7 +30,11 @@ fun Route.apiDiscordRoutes() {
|
|||||||
call.respond(HttpStatusCode.BadRequest, "User does not exist")
|
call.respond(HttpStatusCode.BadRequest, "User does not exist")
|
||||||
return@get
|
return@get
|
||||||
}
|
}
|
||||||
if(!user.managers?.any { it.naverId == session?.id }!! ?: true && user.naverId != session?.id) {
|
|
||||||
|
val managers = transaction {
|
||||||
|
user.managers
|
||||||
|
}
|
||||||
|
if(!managers.any { it.naverId == session?.id } && user.naverId != session?.id) {
|
||||||
call.respond(HttpStatusCode.BadRequest, "User does not exist")
|
call.respond(HttpStatusCode.BadRequest, "User does not exist")
|
||||||
return@get
|
return@get
|
||||||
}
|
}
|
||||||
@@ -58,7 +63,11 @@ fun Route.apiDiscordRoutes() {
|
|||||||
call.respond(HttpStatusCode.BadRequest, "User does not exist")
|
call.respond(HttpStatusCode.BadRequest, "User does not exist")
|
||||||
return@post
|
return@post
|
||||||
}
|
}
|
||||||
if(!user.managers?.any { it.naverId == session?.id }!! ?: true && user.naverId != session?.id) {
|
|
||||||
|
val managers = transaction {
|
||||||
|
user.managers
|
||||||
|
}
|
||||||
|
if(!managers.any { it.naverId == session?.id } && user.naverId != session?.id) {
|
||||||
call.respond(HttpStatusCode.BadRequest, "User does not exist")
|
call.respond(HttpStatusCode.BadRequest, "User does not exist")
|
||||||
return@post
|
return@post
|
||||||
}
|
}
|
||||||
|
@@ -10,6 +10,7 @@ import kotlinx.coroutines.CoroutineScope
|
|||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
|
import org.jetbrains.exposed.sql.transactions.transaction
|
||||||
import org.koin.java.KoinJavaComponent.inject
|
import org.koin.java.KoinJavaComponent.inject
|
||||||
import space.mori.chzzk_bot.common.events.CoroutinesEventBus
|
import space.mori.chzzk_bot.common.events.CoroutinesEventBus
|
||||||
import space.mori.chzzk_bot.common.events.UserRegisterEvent
|
import space.mori.chzzk_bot.common.events.UserRegisterEvent
|
||||||
@@ -18,7 +19,7 @@ import space.mori.chzzk_bot.common.services.UserService
|
|||||||
import space.mori.chzzk_bot.common.utils.getStreamInfo
|
import space.mori.chzzk_bot.common.utils.getStreamInfo
|
||||||
import space.mori.chzzk_bot.common.utils.getUserInfo
|
import space.mori.chzzk_bot.common.utils.getUserInfo
|
||||||
import space.mori.chzzk_bot.webserver.UserSession
|
import space.mori.chzzk_bot.webserver.UserSession
|
||||||
import space.mori.chzzk_bot.webserver.utils.ChzzkUsercache
|
import space.mori.chzzk_bot.webserver.utils.ChzzkUserCache
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
data class GetUserDTO(
|
data class GetUserDTO(
|
||||||
@@ -68,8 +69,8 @@ fun Routing.apiRoutes() {
|
|||||||
call.respondText("Require UID", status = HttpStatusCode.NotFound)
|
call.respondText("Require UID", status = HttpStatusCode.NotFound)
|
||||||
return@get
|
return@get
|
||||||
}
|
}
|
||||||
val user = getStreamInfo(uid)
|
val user = ChzzkUserCache.getCachedUser(uid)
|
||||||
if(user.content == null) {
|
if(user?.content == null) {
|
||||||
call.respondText("User not found", status = HttpStatusCode.NotFound)
|
call.respondText("User not found", status = HttpStatusCode.NotFound)
|
||||||
return@get
|
return@get
|
||||||
} else {
|
} else {
|
||||||
@@ -117,10 +118,12 @@ fun Routing.apiRoutes() {
|
|||||||
songConfig.streamerOnly,
|
songConfig.streamerOnly,
|
||||||
songConfig.disabled
|
songConfig.disabled
|
||||||
))
|
))
|
||||||
val subordinates = user.subordinates
|
|
||||||
println(subordinates)
|
val subordinates = transaction {
|
||||||
|
user.subordinates
|
||||||
|
}
|
||||||
returnUsers.addAll(subordinates.map {
|
returnUsers.addAll(subordinates.map {
|
||||||
val subStatus = it.token?.let { token -> ChzzkUsercache.getCachedUser(token) }
|
val subStatus = it.token?.let { token -> ChzzkUserCache.getCachedUser(token) }
|
||||||
return@map if (it.token == null || subStatus?.content == null) {
|
return@map if (it.token == null || subStatus?.content == null) {
|
||||||
null
|
null
|
||||||
} else {
|
} else {
|
||||||
|
@@ -7,6 +7,7 @@ import io.ktor.server.response.*
|
|||||||
import io.ktor.server.routing.*
|
import io.ktor.server.routing.*
|
||||||
import io.ktor.server.sessions.*
|
import io.ktor.server.sessions.*
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
|
import org.jetbrains.exposed.sql.transactions.transaction
|
||||||
import space.mori.chzzk_bot.common.events.TimerType
|
import space.mori.chzzk_bot.common.events.TimerType
|
||||||
import space.mori.chzzk_bot.common.services.TimerConfigService
|
import space.mori.chzzk_bot.common.services.TimerConfigService
|
||||||
import space.mori.chzzk_bot.common.services.UserService
|
import space.mori.chzzk_bot.common.services.UserService
|
||||||
@@ -27,7 +28,10 @@ fun Routing.apiTimerRoutes() {
|
|||||||
return@get
|
return@get
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!user.managers.any { it.naverId == session?.id } && user.naverId != session?.id) {
|
val managers = transaction {
|
||||||
|
user.managers
|
||||||
|
}
|
||||||
|
if(!managers.any { it.naverId == session?.id } && user.naverId != session?.id) {
|
||||||
call.respond(HttpStatusCode.BadRequest, "User does not exist")
|
call.respond(HttpStatusCode.BadRequest, "User does not exist")
|
||||||
return@get
|
return@get
|
||||||
}
|
}
|
||||||
@@ -51,7 +55,10 @@ fun Routing.apiTimerRoutes() {
|
|||||||
return@put
|
return@put
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!user.managers.any { it.naverId == session?.id } && user.naverId != session?.id) {
|
val managers = transaction {
|
||||||
|
user.managers
|
||||||
|
}
|
||||||
|
if(!managers.any { it.naverId == session?.id } && user.naverId != session?.id) {
|
||||||
call.respond(HttpStatusCode.BadRequest, "User does not exist")
|
call.respond(HttpStatusCode.BadRequest, "User does not exist")
|
||||||
return@put
|
return@put
|
||||||
}
|
}
|
||||||
|
@@ -9,7 +9,7 @@ import space.mori.chzzk_bot.common.utils.getStreamInfo
|
|||||||
import java.time.Instant
|
import java.time.Instant
|
||||||
import java.util.concurrent.ConcurrentHashMap
|
import java.util.concurrent.ConcurrentHashMap
|
||||||
|
|
||||||
object ChzzkUsercache {
|
object ChzzkUserCache {
|
||||||
private val cache = ConcurrentHashMap<String, CachedUser>()
|
private val cache = ConcurrentHashMap<String, CachedUser>()
|
||||||
private const val EXP_SECONDS = 600L
|
private const val EXP_SECONDS = 600L
|
||||||
private val mutex = Mutex()
|
private val mutex = Mutex()
|
||||||
|
Reference in New Issue
Block a user