mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI-examples.git
synced 2024-11-24 02:58:49 +00:00
add DeepLinkBot
This commit is contained in:
parent
a8c5d403c6
commit
9fa3690db6
9
DeepLinksBot/README.md
Normal file
9
DeepLinksBot/README.md
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# DeepLinksBot
|
||||||
|
|
||||||
|
This bot will send you deeplink to this bot when you send some text message and react on the `start` button
|
||||||
|
|
||||||
|
## Launch
|
||||||
|
|
||||||
|
```bash
|
||||||
|
../gradlew run --args="BOT_TOKEN"
|
||||||
|
```
|
21
DeepLinksBot/build.gradle
Normal file
21
DeepLinksBot/build.gradle
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
buildscript {
|
||||||
|
repositories {
|
||||||
|
mavenCentral()
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
apply plugin: 'kotlin'
|
||||||
|
apply plugin: 'application'
|
||||||
|
|
||||||
|
mainClassName="DeepLinksBotKt"
|
||||||
|
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
||||||
|
|
||||||
|
implementation "dev.inmo:tgbotapi:$telegram_bot_api_version"
|
||||||
|
}
|
39
DeepLinksBot/src/main/kotlin/DeepLinksBot.kt
Normal file
39
DeepLinksBot/src/main/kotlin/DeepLinksBot.kt
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
import dev.inmo.micro_utils.coroutines.subscribeSafelySkippingExceptions
|
||||||
|
import dev.inmo.micro_utils.coroutines.subscribeSafelyWithoutExceptions
|
||||||
|
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.expectations.waitDeepLinks
|
||||||
|
import dev.inmo.tgbotapi.extensions.behaviour_builder.telegramBotWithBehaviourAndLongPolling
|
||||||
|
import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.*
|
||||||
|
import dev.inmo.tgbotapi.extensions.utils.formatting.makeTelegramDeepLink
|
||||||
|
import dev.inmo.tgbotapi.types.message.textsources.BotCommandTextSource
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This bot will send you deeplink to this bot when you send some text message and react on the `start` button
|
||||||
|
*/
|
||||||
|
suspend fun main(vararg args: String) {
|
||||||
|
val botToken = args.first()
|
||||||
|
|
||||||
|
telegramBotWithBehaviourAndLongPolling(botToken) {
|
||||||
|
val me = bot.getMe()
|
||||||
|
println(me)
|
||||||
|
|
||||||
|
onText(
|
||||||
|
initialFilter = { it.content.textSources.none { it is BotCommandTextSource } } // excluding messages with commands
|
||||||
|
) {
|
||||||
|
reply(it, makeTelegramDeepLink(me.username, it.content.text))
|
||||||
|
}
|
||||||
|
|
||||||
|
onCommand("start", requireOnlyCommandInMessage = true) { // handling of `start` without args
|
||||||
|
reply(it, "Hi :) Send me any text and I will try hard to create deeplink for you")
|
||||||
|
}
|
||||||
|
onDeepLink { (it, deepLink) ->
|
||||||
|
reply(it, "Ok, I got deep link \"${deepLink}\" in trigger")
|
||||||
|
}
|
||||||
|
waitDeepLinks().subscribeSafelyWithoutExceptions(this) { (it, deepLink) ->
|
||||||
|
reply(it, "Ok, I got deep link \"${deepLink}\" in waiter")
|
||||||
|
println(triggersHolder.handleableCommandsHolder.handleable)
|
||||||
|
}
|
||||||
|
}.second.join()
|
||||||
|
}
|
@ -11,7 +11,7 @@ buildscript {
|
|||||||
apply plugin: 'kotlin'
|
apply plugin: 'kotlin'
|
||||||
apply plugin: 'application'
|
apply plugin: 'application'
|
||||||
|
|
||||||
mainClassName="HelloBotKt"
|
mainClassName="GetMeBotKt"
|
||||||
|
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
@ -5,7 +5,7 @@ org.gradle.jvmargs=-Xmx768m
|
|||||||
|
|
||||||
|
|
||||||
kotlin_version=1.7.10
|
kotlin_version=1.7.10
|
||||||
telegram_bot_api_version=3.1.1
|
telegram_bot_api_version=3.2.0
|
||||||
micro_utils_version=0.12.1
|
micro_utils_version=0.12.4
|
||||||
serialization_version=1.4.0-RC
|
serialization_version=1.4.0
|
||||||
ktor_version=2.1.0
|
ktor_version=2.1.0
|
||||||
|
@ -6,6 +6,8 @@ include ":HelloBot"
|
|||||||
|
|
||||||
include ":GetMeBot"
|
include ":GetMeBot"
|
||||||
|
|
||||||
|
include ":DeepLinksBot"
|
||||||
|
|
||||||
include ":FilesLoaderBot"
|
include ":FilesLoaderBot"
|
||||||
|
|
||||||
include ":ResenderBot:ResenderBotLib"
|
include ":ResenderBot:ResenderBotLib"
|
||||||
|
Loading…
Reference in New Issue
Block a user