mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI-examples.git
synced 2026-01-06 13:29:12 +00:00
Compare commits
1 Commits
3c6de57851
...
ca8e9e9c69
| Author | SHA1 | Date | |
|---|---|---|---|
| ca8e9e9c69 |
@@ -1,9 +0,0 @@
|
|||||||
# ReactionsInfoBot
|
|
||||||
|
|
||||||
This bot will resend messages with links with all variants of `LinkPreviewOptions`
|
|
||||||
|
|
||||||
## Launch
|
|
||||||
|
|
||||||
```bash
|
|
||||||
../gradlew run --args="BOT_TOKEN"
|
|
||||||
```
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
buildscript {
|
|
||||||
repositories {
|
|
||||||
mavenCentral()
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
apply plugin: 'kotlin'
|
|
||||||
apply plugin: 'application'
|
|
||||||
|
|
||||||
mainClassName="LinkPreviewsBotKt"
|
|
||||||
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
||||||
|
|
||||||
implementation "dev.inmo:tgbotapi:$telegram_bot_api_version"
|
|
||||||
}
|
|
||||||
@@ -1,93 +0,0 @@
|
|||||||
import dev.inmo.kslog.common.KSLog
|
|
||||||
import dev.inmo.kslog.common.LogLevel
|
|
||||||
import dev.inmo.kslog.common.defaultMessageFormatter
|
|
||||||
import dev.inmo.kslog.common.setDefaultKSLog
|
|
||||||
import dev.inmo.tgbotapi.bot.ktor.telegramBot
|
|
||||||
import dev.inmo.tgbotapi.extensions.api.chat.get.getChat
|
|
||||||
import dev.inmo.tgbotapi.extensions.api.send.copyMessage
|
|
||||||
import dev.inmo.tgbotapi.extensions.api.send.reply
|
|
||||||
import dev.inmo.tgbotapi.extensions.api.send.send
|
|
||||||
import dev.inmo.tgbotapi.extensions.api.send.setMessageReaction
|
|
||||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.buildBehaviourWithLongPolling
|
|
||||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onChatMessageReactionUpdatedByUser
|
|
||||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onChatMessageReactionsCountUpdated
|
|
||||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onContentMessage
|
|
||||||
import dev.inmo.tgbotapi.extensions.utils.textLinkTextSourceOrNull
|
|
||||||
import dev.inmo.tgbotapi.extensions.utils.uRLTextSourceOrNull
|
|
||||||
import dev.inmo.tgbotapi.extensions.utils.withContentOrNull
|
|
||||||
import dev.inmo.tgbotapi.types.LinkPreviewOptions
|
|
||||||
import dev.inmo.tgbotapi.types.chat.ExtendedChat
|
|
||||||
import dev.inmo.tgbotapi.types.message.content.TextContent
|
|
||||||
import dev.inmo.tgbotapi.types.message.content.TextedContent
|
|
||||||
import dev.inmo.tgbotapi.types.reactions.Reaction
|
|
||||||
import dev.inmo.tgbotapi.utils.customEmoji
|
|
||||||
import dev.inmo.tgbotapi.utils.regular
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This bot will reply with the same
|
|
||||||
*/
|
|
||||||
suspend fun main(vararg args: String) {
|
|
||||||
val botToken = args.first()
|
|
||||||
val isDebug = args.getOrNull(1) == "debug"
|
|
||||||
|
|
||||||
if (isDebug) {
|
|
||||||
setDefaultKSLog(
|
|
||||||
KSLog { level: LogLevel, tag: String?, message: Any, throwable: Throwable? ->
|
|
||||||
println(defaultMessageFormatter(level, tag, message, throwable))
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
val bot = telegramBot(botToken)
|
|
||||||
|
|
||||||
bot.buildBehaviourWithLongPolling {
|
|
||||||
onContentMessage {
|
|
||||||
val url = it.withContentOrNull<TextedContent>() ?.let {
|
|
||||||
it.content.textSources.firstNotNullOfOrNull {
|
|
||||||
it.textLinkTextSourceOrNull() ?.url ?: it.uRLTextSourceOrNull() ?.source
|
|
||||||
}
|
|
||||||
} ?: null.apply {
|
|
||||||
reply(it) {
|
|
||||||
regular("I am support only content with text contains url only")
|
|
||||||
}
|
|
||||||
} ?: return@onContentMessage
|
|
||||||
it.withContentOrNull<TextedContent>() ?.let {
|
|
||||||
send(
|
|
||||||
it.chat,
|
|
||||||
it.content.textSources,
|
|
||||||
linkPreviewOptions = LinkPreviewOptions.Disabled
|
|
||||||
)
|
|
||||||
send(
|
|
||||||
it.chat,
|
|
||||||
it.content.textSources,
|
|
||||||
linkPreviewOptions = LinkPreviewOptions.Large(url, showAboveText = true)
|
|
||||||
)
|
|
||||||
send(
|
|
||||||
it.chat,
|
|
||||||
it.content.textSources,
|
|
||||||
linkPreviewOptions = LinkPreviewOptions.Large(url, showAboveText = false)
|
|
||||||
)
|
|
||||||
send(
|
|
||||||
it.chat,
|
|
||||||
it.content.textSources,
|
|
||||||
linkPreviewOptions = LinkPreviewOptions.Small(url, showAboveText = true)
|
|
||||||
)
|
|
||||||
send(
|
|
||||||
it.chat,
|
|
||||||
it.content.textSources,
|
|
||||||
linkPreviewOptions = LinkPreviewOptions.Small(url, showAboveText = false)
|
|
||||||
)
|
|
||||||
send(
|
|
||||||
it.chat,
|
|
||||||
it.content.textSources,
|
|
||||||
linkPreviewOptions = LinkPreviewOptions.Default(url, showAboveText = true)
|
|
||||||
)
|
|
||||||
send(
|
|
||||||
it.chat,
|
|
||||||
it.content.textSources,
|
|
||||||
linkPreviewOptions = LinkPreviewOptions.Default(url, showAboveText = false)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}.join()
|
|
||||||
}
|
|
||||||
@@ -3,14 +3,11 @@ import dev.inmo.kslog.common.LogLevel
|
|||||||
import dev.inmo.kslog.common.defaultMessageFormatter
|
import dev.inmo.kslog.common.defaultMessageFormatter
|
||||||
import dev.inmo.kslog.common.setDefaultKSLog
|
import dev.inmo.kslog.common.setDefaultKSLog
|
||||||
import dev.inmo.tgbotapi.bot.ktor.telegramBot
|
import dev.inmo.tgbotapi.bot.ktor.telegramBot
|
||||||
import dev.inmo.tgbotapi.extensions.api.chat.get.getChat
|
|
||||||
import dev.inmo.tgbotapi.extensions.api.send.reply
|
import dev.inmo.tgbotapi.extensions.api.send.reply
|
||||||
import dev.inmo.tgbotapi.extensions.api.send.setMessageReaction
|
import dev.inmo.tgbotapi.extensions.api.send.setMessageReaction
|
||||||
import dev.inmo.tgbotapi.extensions.api.send.setMessageReactions
|
import dev.inmo.tgbotapi.extensions.api.send.setMessageReactions
|
||||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.buildBehaviourWithLongPolling
|
import dev.inmo.tgbotapi.extensions.behaviour_builder.buildBehaviourWithLongPolling
|
||||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onChatMessageReactionUpdatedByUser
|
import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onChatMessageReactionUpdatedByUser
|
||||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onChatMessageReactionsCountUpdated
|
|
||||||
import dev.inmo.tgbotapi.types.chat.ExtendedChat
|
|
||||||
import dev.inmo.tgbotapi.types.reactions.Reaction
|
import dev.inmo.tgbotapi.types.reactions.Reaction
|
||||||
import dev.inmo.tgbotapi.utils.customEmoji
|
import dev.inmo.tgbotapi.utils.customEmoji
|
||||||
import dev.inmo.tgbotapi.utils.regular
|
import dev.inmo.tgbotapi.utils.regular
|
||||||
@@ -59,10 +56,5 @@ suspend fun main(vararg args: String) {
|
|||||||
it.messageId,
|
it.messageId,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
onChatMessageReactionsCountUpdated {
|
|
||||||
val extendedChat: ExtendedChat = getChat(it.chat)
|
|
||||||
println(extendedChat)
|
|
||||||
println(it)
|
|
||||||
}
|
|
||||||
}.join()
|
}.join()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ org.gradle.jvmargs=-Xmx2344m
|
|||||||
|
|
||||||
|
|
||||||
kotlin_version=1.9.22
|
kotlin_version=1.9.22
|
||||||
telegram_bot_api_version=10.0.0-branch_10.0.0-build2047
|
telegram_bot_api_version=10.0.0-branch_10.0.0-build2039
|
||||||
micro_utils_version=0.20.25
|
micro_utils_version=0.20.25
|
||||||
serialization_version=1.6.2
|
serialization_version=1.6.2
|
||||||
ktor_version=2.3.7
|
ktor_version=2.3.7
|
||||||
|
|||||||
@@ -43,5 +43,3 @@ include ":StickerSetHandler"
|
|||||||
include ":InlineQueriesBot"
|
include ":InlineQueriesBot"
|
||||||
|
|
||||||
include ":ReactionsInfoBot"
|
include ":ReactionsInfoBot"
|
||||||
|
|
||||||
include ":LinkPreviewsBot"
|
|
||||||
|
|||||||
Reference in New Issue
Block a user