diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b1c67a..1f5c375 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## 0.0.3 +* `Bot`: + * New function `initPlaguBot` which actually will launch the bot + ## 0.0.2 * `Versions` diff --git a/bot/src/main/kotlin/dev/inmo/plagubot/App.kt b/bot/src/main/kotlin/dev/inmo/plagubot/App.kt index 6e45fbe..005d811 100644 --- a/bot/src/main/kotlin/dev/inmo/plagubot/App.kt +++ b/bot/src/main/kotlin/dev/inmo/plagubot/App.kt @@ -11,17 +11,10 @@ import kotlinx.coroutines.* import kotlinx.serialization.InternalSerializationApi import java.io.File -/** - * This method by default expects one argument in [args] field: path to config - */ -@InternalSerializationApi -suspend fun main(args: Array) { - val (configPath) = args - val file = File(configPath) - val config = configSerialFormat.decodeFromString(Config.serializer(), file.readText()) - - val scope = CoroutineScope(Dispatchers.Default) - +suspend inline fun initPlaguBot( + config: Config, + scope: CoroutineScope = CoroutineScope(Dispatchers.Default) +) { val bot = telegramBot(config.botToken) bot.startGettingFlowsUpdatesByLongPolling(scope = scope) { @@ -41,6 +34,18 @@ suspend fun main(args: Array) { } } } +} +/** + * This method by default expects one argument in [args] field: path to config + */ +@InternalSerializationApi +suspend fun main(args: Array) { + val (configPath) = args + val file = File(configPath) + val config = configSerialFormat.decodeFromString(Config.serializer(), file.readText()) + + val scope = CoroutineScope(Dispatchers.Default) + initPlaguBot(config, scope) scope.coroutineContext.job.join() }