mirror of
https://github.com/InsanusMokrassar/BooruGrabberTelegramBot.git
synced 2025-09-01 14:19:24 +00:00
Initial commit
This commit is contained in:
41
src/main/kotlin/telegram_bot/App.kt
Normal file
41
src/main/kotlin/telegram_bot/App.kt
Normal file
@@ -0,0 +1,41 @@
|
||||
package telegram_bot
|
||||
|
||||
import dev.inmo.tgbotapi.bot.ktor.telegramBot
|
||||
import dev.inmo.tgbotapi.extensions.api.bot.getMe
|
||||
import dev.inmo.tgbotapi.extensions.api.send.reply
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.buildBehaviourWithLongPolling
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onCommand
|
||||
import java.io.File
|
||||
import kotlinx.coroutines.*
|
||||
import kotlinx.serialization.json.Json
|
||||
|
||||
/**
|
||||
* This method by default expects one argument in [args] field: telegram bot configuration
|
||||
*/
|
||||
suspend fun main(args: Array<String>) {
|
||||
// create json to decode config
|
||||
val json = Json { ignoreUnknownKeys = true }
|
||||
// decode config
|
||||
val config: Config = json.decodeFromString(Config.serializer(), File(args.first()).readText())
|
||||
// that is your bot
|
||||
val bot = telegramBot(config.token)
|
||||
|
||||
// that is kotlin coroutine scope which will be used in requests and parallel works under the hood
|
||||
val scope = CoroutineScope(Dispatchers.Default)
|
||||
|
||||
// here should be main logic of your bot
|
||||
bot.buildBehaviourWithLongPolling(scope) {
|
||||
// in this lambda you will be able to call methods without "bot." prefix
|
||||
val me = getMe()
|
||||
|
||||
// this method will create point to react on each /start command
|
||||
onCommand("start", requireOnlyCommandInMessage = true) {
|
||||
// simply reply :)
|
||||
reply(it, "Hello, I am ${me.firstName}")
|
||||
}
|
||||
|
||||
// That will be called on the end of bot initiation. After that println will be started long polling and bot will
|
||||
// react on your commands
|
||||
println(me)
|
||||
}.join()
|
||||
}
|
8
src/main/kotlin/telegram_bot/Config.kt
Normal file
8
src/main/kotlin/telegram_bot/Config.kt
Normal file
@@ -0,0 +1,8 @@
|
||||
package telegram_bot
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
data class Config(
|
||||
val token: String
|
||||
)
|
Reference in New Issue
Block a user