Skip to content

Commit f3fcf57

Browse files
author
Andrey Sundukov
committed
add bot settings
1 parent 7a9dd63 commit f3fcf57

File tree

5 files changed

+28
-2
lines changed

5 files changed

+28
-2
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
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+
)

kotlin-telegram-framework/src/main/kotlin/io/cutebot/telegram/bot/CommandsStatefulBot.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ import io.cutebot.telegram.bot.command.Command
55
import io.cutebot.telegram.bot.commandextractor.CommandExtractor
66
import io.cutebot.telegram.bot.commandextractor.DefaultCommandExtractor
77
import 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
811
import io.cutebot.telegram.client.model.TgBotCommand
912
import io.cutebot.telegram.client.model.TgBotCommands
1013
import 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]

kotlin-telegram-framework/src/main/kotlin/io/cutebot/telegram/bot/StatefulBot.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,24 @@ import io.cutebot.telegram.bot.model.DocumentMessage
55
import io.cutebot.telegram.bot.model.PhotoMessage
66
import io.cutebot.telegram.bot.model.RawMessage
77
import io.cutebot.telegram.bot.model.TextMessage
8+
import io.cutebot.telegram.bot.model.settings.ChatMessagesStrategy
89
import io.cutebot.telegram.interaction.model.ChatAnswer
910

1011
abstract 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()

kotlin-telegram-framework/src/main/kotlin/io/cutebot/telegram/bot/model/PhotoMessage.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff 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
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package io.cutebot.telegram.bot.model.settings
2+
3+
enum class ChatMessagesStrategy {
4+
IGNORE,
5+
ALL
6+
}

0 commit comments

Comments
 (0)