File tree Expand file tree Collapse file tree
acidify-milky/src/commonMain/kotlin/org/ntqqrev/acidify/milky Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11package org.ntqqrev.acidify.milky
22
33import io.ktor.server.application.*
4+ import io.ktor.server.plugins.di.*
45import kotlinx.coroutines.CoroutineScope
56import kotlinx.coroutines.channels.BufferOverflow
67import kotlinx.coroutines.flow.Flow
78import kotlinx.coroutines.flow.MutableSharedFlow
8- import kotlinx.coroutines.flow.mapNotNull
99import kotlinx.coroutines.launch
10+ import org.ntqqrev.acidify.AbstractBot
1011import org.ntqqrev.acidify.event.AcidifyEvent
1112import org.ntqqrev.acidify.milky.transform.transformAcidifyEvent
1213import org.ntqqrev.milky.Event
@@ -33,9 +34,15 @@ open class MilkyContext(
3334 )
3435
3536 internal fun pipeBotEventFlow (flow : Flow <AcidifyEvent >) = launch {
36- flow.mapNotNull { transformAcidifyEvent(it) }
37- .collect {
38- eventFlow.emit(it)
37+ val bot = application.dependencies.resolve<AbstractBot >()
38+ val logger = bot.createLogger(this @MilkyContext)
39+ flow.collect {
40+ try {
41+ val milkyEvent = transformAcidifyEvent(it) ? : return @collect
42+ eventFlow.emit(milkyEvent)
43+ } catch (e: Exception ) {
44+ logger.w(e) { " 处理事件 ${it::class .simpleName} 时发生错误" }
3945 }
46+ }
4047 }
4148}
You can’t perform that action at this time.
0 commit comments