mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI-examples.git
synced 2025-12-25 15:45:38 +00:00
Compare commits
2 Commits
11.0.0
...
c04a367375
| Author | SHA1 | Date | |
|---|---|---|---|
| c04a367375 | |||
| b660bf5f42 |
@@ -1,4 +1,5 @@
|
||||
import dev.inmo.micro_utils.coroutines.AccumulatorFlow
|
||||
import dev.inmo.micro_utils.coroutines.subscribeSafelyWithoutExceptions
|
||||
import dev.inmo.micro_utils.fsm.common.State
|
||||
import dev.inmo.tgbotapi.extensions.api.send.send
|
||||
import dev.inmo.tgbotapi.extensions.api.send.sendMessage
|
||||
@@ -8,6 +9,8 @@ import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.*
|
||||
import dev.inmo.tgbotapi.extensions.utils.extensions.parseCommandsWithArgs
|
||||
import dev.inmo.tgbotapi.extensions.utils.extensions.sameThread
|
||||
import dev.inmo.tgbotapi.extensions.utils.formatting.*
|
||||
import dev.inmo.tgbotapi.extensions.utils.textContentOrNull
|
||||
import dev.inmo.tgbotapi.extensions.utils.withContentOrNull
|
||||
import dev.inmo.tgbotapi.types.IdChatIdentifier
|
||||
import dev.inmo.tgbotapi.types.MessageThreadId
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage
|
||||
@@ -54,7 +57,8 @@ suspend fun main(args: Array<String>) {
|
||||
val content = contentMessage.content
|
||||
|
||||
when {
|
||||
content is TextContent && content.parseCommandsWithArgs().keys.contains("stop") -> StopState(it.context)
|
||||
content is TextContent && content.text == "/stop"
|
||||
|| content is TextContent && content.parseCommandsWithArgs().keys.contains("stop") -> StopState(it.context)
|
||||
else -> {
|
||||
execute(content.createResend(it.context))
|
||||
it
|
||||
@@ -72,5 +76,17 @@ suspend fun main(args: Array<String>) {
|
||||
) {
|
||||
startChain(ExpectContentOrStopState(it.chat.id, it))
|
||||
}
|
||||
|
||||
onContentMessage(
|
||||
{
|
||||
it.content.textContentOrNull() ?.text == "/start"
|
||||
}
|
||||
) {
|
||||
startChain(ExpectContentOrStopState(it.chat.id, it.withContentOrNull() ?: return@onContentMessage))
|
||||
}
|
||||
|
||||
allUpdatesFlow.subscribeSafelyWithoutExceptions(this) {
|
||||
println(it)
|
||||
}
|
||||
}.second.join()
|
||||
}
|
||||
|
||||
@@ -56,6 +56,10 @@ suspend fun main(vararg args: String) {
|
||||
} ?: chat.title
|
||||
}
|
||||
}
|
||||
is PreviewBusinessChat -> {
|
||||
reply(message, "Hi, " + "${chat.original.firstName} ${chat.original.lastName} (as business chat :) )".textMentionMarkdownV2(chat.original.id), MarkdownV2)
|
||||
return@onMentionWithAnyContent
|
||||
}
|
||||
is UnknownChatType -> "Unknown :(".escapeMarkdownV2Common()
|
||||
}
|
||||
reply(
|
||||
|
||||
@@ -10,6 +10,7 @@ import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.*
|
||||
import dev.inmo.tgbotapi.extensions.utils.shortcuts.*
|
||||
import dev.inmo.tgbotapi.extensions.utils.withContentOrNull
|
||||
import dev.inmo.tgbotapi.types.ReplyParameters
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.BusinessContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.TextContent
|
||||
import dev.inmo.tgbotapi.types.quoteEntitiesField
|
||||
import dev.inmo.tgbotapi.utils.extensions.threadIdOrNull
|
||||
@@ -22,6 +23,7 @@ suspend fun activateResenderBot(
|
||||
telegramBotWithBehaviourAndLongPolling(token, scope = CoroutineScope(currentCoroutineContext() + SupervisorJob())) {
|
||||
onContentMessage(
|
||||
subcontextUpdatesFilter = MessageFilterByChat,
|
||||
initialFilter = { it !is BusinessContentMessage<*> || !it.sentByBusinessConnectionOwner }
|
||||
) {
|
||||
val chat = it.chat
|
||||
|
||||
|
||||
@@ -9,16 +9,9 @@ import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.*
|
||||
import dev.inmo.tgbotapi.types.StickerFormat
|
||||
import dev.inmo.tgbotapi.types.StickerType
|
||||
import dev.inmo.tgbotapi.types.message.textsources.*
|
||||
import dev.inmo.tgbotapi.types.stickers.AnimatedStickerSet
|
||||
import dev.inmo.tgbotapi.types.stickers.CustomEmojiSimpleStickerSet
|
||||
import dev.inmo.tgbotapi.types.stickers.CustomEmojiStickerSet
|
||||
import dev.inmo.tgbotapi.types.stickers.CustomEmojiVideoStickerSet
|
||||
import dev.inmo.tgbotapi.types.stickers.MaskSimpleStickerSet
|
||||
import dev.inmo.tgbotapi.types.stickers.MaskStickerSet
|
||||
import dev.inmo.tgbotapi.types.stickers.MaskVideoStickerSet
|
||||
import dev.inmo.tgbotapi.types.stickers.RegularSimpleStickerSet
|
||||
import dev.inmo.tgbotapi.types.stickers.RegularStickerSet
|
||||
import dev.inmo.tgbotapi.types.stickers.RegularVideoStickerSet
|
||||
import dev.inmo.tgbotapi.types.stickers.StickerSet
|
||||
import dev.inmo.tgbotapi.types.stickers.UnknownStickerSet
|
||||
import dev.inmo.tgbotapi.utils.bold
|
||||
@@ -31,12 +24,6 @@ fun StickerSet?.buildInfo() = buildEntities {
|
||||
} else {
|
||||
bold("StickerSet name: ") + "${name}\n"
|
||||
bold("StickerSet title: ") + "${title}\n"
|
||||
bold("Sticker format: ") + when (stickerFormat) {
|
||||
StickerFormat.Animated -> "Animated"
|
||||
StickerFormat.Static -> "Static"
|
||||
is StickerFormat.Unknown -> stickerFormat.type
|
||||
StickerFormat.Video -> "Video"
|
||||
} + "\n"
|
||||
bold(
|
||||
when (stickerType) {
|
||||
StickerType.CustomEmoji -> "Custom emoji"
|
||||
|
||||
@@ -56,16 +56,19 @@ suspend fun main(args: Array<String>) {
|
||||
val newSticker = when (sticker) {
|
||||
is CustomEmojiSticker -> InputSticker.WithKeywords.CustomEmoji(
|
||||
downloadFileToTemp(sticker.fileId).asMultipartFile(),
|
||||
sticker.stickerFormat,
|
||||
listOf(sticker.emoji ?: "\uD83D\uDE0A"),
|
||||
emptyList()
|
||||
)
|
||||
is MaskSticker -> InputSticker.Mask(
|
||||
downloadFileToTemp(sticker.fileId).asMultipartFile(),
|
||||
sticker.stickerFormat,
|
||||
listOf(sticker.emoji ?: "\uD83D\uDE0A"),
|
||||
sticker.maskPosition
|
||||
)
|
||||
is RegularSticker -> InputSticker.WithKeywords.Regular(
|
||||
downloadFileToTemp(sticker.fileId).asMultipartFile(),
|
||||
sticker.stickerFormat,
|
||||
listOf(sticker.emoji ?: "\uD83D\uDE0A"),
|
||||
emptyList()
|
||||
)
|
||||
@@ -80,12 +83,11 @@ suspend fun main(args: Array<String>) {
|
||||
getStickerSet(stickerSetName).stickers.last()
|
||||
)
|
||||
}
|
||||
}.onFailure { _ ->
|
||||
}.onFailure { exception ->
|
||||
createNewStickerSet(
|
||||
it.chat.id.toChatId(),
|
||||
stickerSetName.string,
|
||||
"Sticker set by ${me.firstName}",
|
||||
it.content.media.stickerFormat,
|
||||
listOf(
|
||||
newSticker
|
||||
),
|
||||
|
||||
@@ -5,7 +5,7 @@ org.gradle.jvmargs=-Xmx2344m
|
||||
|
||||
|
||||
kotlin_version=1.9.23
|
||||
telegram_bot_api_version=11.0.0
|
||||
telegram_bot_api_version=12.0.0
|
||||
micro_utils_version=0.20.39
|
||||
serialization_version=1.6.3
|
||||
ktor_version=2.3.9
|
||||
|
||||
Reference in New Issue
Block a user