File tree Expand file tree Collapse file tree 5 files changed +28
-2
lines changed
kotlin-telegram-framework/src/main/kotlin/io/cutebot/telegram/bot Expand file tree Collapse file tree 5 files changed +28
-2
lines changed Original file line number Diff line number Diff line change 1+ package io.cutebot.telegram.bot
2+
3+ import io.cutebot.telegram.bot.model.settings.ChatMessagesStrategy
4+
5+ data class BotSettings (
6+ val chatMessagesStrategy : ChatMessagesStrategy = ChatMessagesStrategy .IGNORE
7+ )
Original file line number Diff line number Diff line change @@ -5,6 +5,9 @@ import io.cutebot.telegram.bot.command.Command
55import io.cutebot.telegram.bot.commandextractor.CommandExtractor
66import io.cutebot.telegram.bot.commandextractor.DefaultCommandExtractor
77import io.cutebot.telegram.bot.model.RawMessage
8+ import io.cutebot.telegram.bot.model.settings.ChatMessagesStrategy
9+ import io.cutebot.telegram.bot.model.settings.ChatMessagesStrategy.ALL
10+ import io.cutebot.telegram.bot.model.settings.ChatMessagesStrategy.IGNORE
811import io.cutebot.telegram.client.model.TgBotCommand
912import io.cutebot.telegram.client.model.TgBotCommands
1013import io.cutebot.telegram.interaction.model.ChatAnswer
@@ -21,7 +24,9 @@ abstract class CommandsStatefulBot(
2124 .toMap()
2225
2326 override fun handleMessage (message : RawMessage ): ChatAnswer {
24- if (message.text != null && commandExtractor.isCommand(message.text)) {
27+ if (message.text != null
28+ && message.from != null && message.from.id == message.chat.id
29+ && commandExtractor.isCommand(message.text)) {
2530 val (command, query) = commandExtractor.extractCommand(message.text)
2631
2732 val commandBlock = commandsMap[command]
Original file line number Diff line number Diff line change @@ -5,17 +5,24 @@ import io.cutebot.telegram.bot.model.DocumentMessage
55import io.cutebot.telegram.bot.model.PhotoMessage
66import io.cutebot.telegram.bot.model.RawMessage
77import io.cutebot.telegram.bot.model.TextMessage
8+ import io.cutebot.telegram.bot.model.settings.ChatMessagesStrategy
89import io.cutebot.telegram.interaction.model.ChatAnswer
910
1011abstract class StatefulBot (
11- protected var currentBlock : BotBlock
12+ protected var currentBlock : BotBlock ,
13+ private val botSettings : BotSettings = BotSettings ()
1214): Bot {
1315
1416 override fun handleMessage (message : RawMessage ): ChatAnswer {
1517 return chatAnswer(message)
1618 }
1719
1820 internal fun chatAnswer (message : RawMessage ): ChatAnswer {
21+ if (botSettings.chatMessagesStrategy == ChatMessagesStrategy .IGNORE
22+ && message.from != null && message.from.id != message.chat.id) {
23+ return ChatAnswer .noAnswer()
24+ }
25+
1926 if (message.text != null ) {
2027 currentBlock = currentBlock.handleText(TextMessage (message, message.text))
2128 return currentBlock.getAnswer()
Original file line number Diff line number Diff line change @@ -7,4 +7,5 @@ class PhotoMessage(
77 photos : List <TgPhotoSize >
88): Message(message) {
99 val photo: Photo = Photo (photos, message.telegramApi, message.botToken)
10+ val message: String = message.caption ? : " "
1011}
Original file line number Diff line number Diff line change 1+ package io.cutebot.telegram.bot.model.settings
2+
3+ enum class ChatMessagesStrategy {
4+ IGNORE ,
5+ ALL
6+ }
You can’t perform that action at this time.
0 commit comments