mirror of
https://github.com/dalbodeule/chibot-chzzk-bot.git
synced 2025-06-08 14:58:21 +00:00
[hotfix] connect function added.
This commit is contained in:
parent
ba9fb052cd
commit
49541f7289
@ -204,10 +204,10 @@ class UserHandler(
|
|||||||
private var user: User,
|
private var user: User,
|
||||||
var streamStartTime: LocalDateTime?,
|
var streamStartTime: LocalDateTime?,
|
||||||
) {
|
) {
|
||||||
var messageHandler: MessageHandler
|
lateinit var messageHandler: MessageHandler
|
||||||
var client: ChzzkClient
|
lateinit var client: ChzzkClient
|
||||||
var listener: ChzzkUserSession
|
lateinit var listener: ChzzkUserSession
|
||||||
var chatChannelId: String?
|
lateinit var chatChannelId: String
|
||||||
|
|
||||||
private val dispatcher: CoroutinesEventBus by inject(CoroutinesEventBus::class.java)
|
private val dispatcher: CoroutinesEventBus by inject(CoroutinesEventBus::class.java)
|
||||||
private var _isActive: Boolean
|
private var _isActive: Boolean
|
||||||
@ -223,18 +223,7 @@ class UserHandler(
|
|||||||
throw RuntimeException("AccessToken or RefreshToken is not valid.")
|
throw RuntimeException("AccessToken or RefreshToken is not valid.")
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
val tokens = user.refreshToken?.let { token -> Connector.client.refreshAccessToken(token)}
|
connect()
|
||||||
if(tokens == null) {
|
|
||||||
throw RuntimeException("AccessToken is not valid.")
|
|
||||||
}
|
|
||||||
client = Connector.getClient(tokens.first, tokens.second)
|
|
||||||
UserService.setRefreshToken(user, tokens.first, tokens.second)
|
|
||||||
chatChannelId = getChzzkChannelId(channel.channelId)
|
|
||||||
|
|
||||||
client.loginAsync().join()
|
|
||||||
listener = ChzzkSessionBuilder(client).buildUserSession()
|
|
||||||
listener.createAndConnectAsync().join()
|
|
||||||
messageHandler = MessageHandler(this@UserHandler)
|
|
||||||
|
|
||||||
listener.on(SessionChatMessageEvent::class.java) {
|
listener.on(SessionChatMessageEvent::class.java) {
|
||||||
messageHandler.handle(it.message, user)
|
messageHandler.handle(it.message, user)
|
||||||
@ -265,6 +254,21 @@ class UserHandler(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun connect() {
|
||||||
|
val tokens = user.refreshToken?.let { token -> Connector.client.refreshAccessToken(token)}
|
||||||
|
if(tokens == null) {
|
||||||
|
throw RuntimeException("AccessToken is not valid.")
|
||||||
|
}
|
||||||
|
client = Connector.getClient(tokens.first, tokens.second)
|
||||||
|
UserService.setRefreshToken(user, tokens.first, tokens.second)
|
||||||
|
chatChannelId = getChzzkChannelId(channel.channelId) ?: throw RuntimeException("Chat Channel ID is not found.")
|
||||||
|
|
||||||
|
client.loginAsync().join()
|
||||||
|
listener = ChzzkSessionBuilder(client).buildUserSession()
|
||||||
|
listener.createAndConnectAsync().join()
|
||||||
|
messageHandler = MessageHandler(this@UserHandler)
|
||||||
|
}
|
||||||
|
|
||||||
internal fun disable() {
|
internal fun disable() {
|
||||||
listener.disconnectAsync().join()
|
listener.disconnectAsync().join()
|
||||||
_isActive = false
|
_isActive = false
|
||||||
@ -283,6 +287,8 @@ class UserHandler(
|
|||||||
|
|
||||||
internal fun isActive(value: Boolean, status: ChzzkLiveDetail) {
|
internal fun isActive(value: Boolean, status: ChzzkLiveDetail) {
|
||||||
if(value) {
|
if(value) {
|
||||||
|
connect()
|
||||||
|
|
||||||
CoroutineScope(Dispatchers.Default).launch {
|
CoroutineScope(Dispatchers.Default).launch {
|
||||||
logger.info("${user.username} is live.")
|
logger.info("${user.username} is live.")
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user