Skip to content

Commit c004046

Browse files
authored
Merge pull request #7 from asundukov/asundukov-path-4-extend-user-model
Asundukov path 4 extend user model
2 parents 66043ca + 5fa7289 commit c004046

File tree

27 files changed

+153
-31
lines changed

27 files changed

+153
-31
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package io.cutebot.telegram.bot
22

3-
import io.cutebot.telegram.bot.model.RawMessage
3+
import io.cutebot.telegram.bot.model.message.RawMessage
44
import io.cutebot.telegram.client.model.TgBotCommands
55
import io.cutebot.telegram.client.model.TgChosenInlineResult
66
import io.cutebot.telegram.client.model.inline.TgAnswerInlineQuery
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: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import io.cutebot.telegram.bot.block.BotBlock
44
import io.cutebot.telegram.bot.command.Command
55
import io.cutebot.telegram.bot.commandextractor.CommandExtractor
66
import io.cutebot.telegram.bot.commandextractor.DefaultCommandExtractor
7-
import io.cutebot.telegram.bot.model.RawMessage
7+
import io.cutebot.telegram.bot.model.message.RawMessage
88
import io.cutebot.telegram.client.model.TgBotCommand
99
import io.cutebot.telegram.client.model.TgBotCommands
1010
import io.cutebot.telegram.interaction.model.ChatAnswer
@@ -21,7 +21,9 @@ abstract class CommandsStatefulBot(
2121
.toMap()
2222

2323
override fun handleMessage(message: RawMessage): ChatAnswer {
24-
if (message.text != null && commandExtractor.isCommand(message.text)) {
24+
if (message.text != null
25+
&& message.from != null && message.from.id == message.chat.id
26+
&& commandExtractor.isCommand(message.text)) {
2527
val (command, query) = commandExtractor.extractCommand(message.text)
2628

2729
val commandBlock = commandsMap[command]

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package io.cutebot.telegram.bot
22

3-
import io.cutebot.telegram.bot.model.RawMessage
3+
import io.cutebot.telegram.bot.model.message.RawMessage
44
import io.cutebot.telegram.client.model.TgChat
55
import io.cutebot.telegram.client.model.TgUser
66
import io.cutebot.telegram.interaction.model.ChatAnswer

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

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,29 @@
11
package io.cutebot.telegram.bot
22

33
import io.cutebot.telegram.bot.block.BotBlock
4-
import io.cutebot.telegram.bot.model.DocumentMessage
5-
import io.cutebot.telegram.bot.model.PhotoMessage
6-
import io.cutebot.telegram.bot.model.RawMessage
7-
import io.cutebot.telegram.bot.model.TextMessage
4+
import io.cutebot.telegram.bot.model.message.DocumentMessage
5+
import io.cutebot.telegram.bot.model.message.PhotoMessage
6+
import io.cutebot.telegram.bot.model.message.RawMessage
7+
import io.cutebot.telegram.bot.model.message.TextMessage
8+
import io.cutebot.telegram.bot.model.message.VideoMessage
9+
import io.cutebot.telegram.bot.model.settings.ChatMessagesStrategy
810
import io.cutebot.telegram.interaction.model.ChatAnswer
911

1012
abstract class StatefulBot(
11-
protected var currentBlock: BotBlock
13+
protected var currentBlock: BotBlock,
14+
private val botSettings: BotSettings = BotSettings()
1215
): Bot {
1316

1417
override fun handleMessage(message: RawMessage): ChatAnswer {
1518
return chatAnswer(message)
1619
}
1720

1821
internal fun chatAnswer(message: RawMessage): ChatAnswer {
22+
if (botSettings.chatMessagesStrategy == ChatMessagesStrategy.IGNORE
23+
&& message.from != null && message.from.id != message.chat.id) {
24+
return ChatAnswer.noAnswer()
25+
}
26+
1927
if (message.text != null) {
2028
currentBlock = currentBlock.handleText(TextMessage(message, message.text))
2129
return currentBlock.getAnswer()
@@ -31,6 +39,11 @@ abstract class StatefulBot(
3139
return currentBlock.getAnswer()
3240
}
3341

42+
if (message.video != null) {
43+
currentBlock = currentBlock.handleVideo(VideoMessage(message, message.video))
44+
return currentBlock.getAnswer()
45+
}
46+
3447
return ChatAnswer.noAnswer()
3548
}
3649

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
package io.cutebot.telegram.bot.block
22

3-
import io.cutebot.telegram.bot.model.DocumentMessage
4-
import io.cutebot.telegram.bot.model.PhotoMessage
5-
import io.cutebot.telegram.bot.model.TextMessage
3+
import io.cutebot.telegram.bot.model.message.DocumentMessage
4+
import io.cutebot.telegram.bot.model.message.PhotoMessage
5+
import io.cutebot.telegram.bot.model.message.TextMessage
6+
import io.cutebot.telegram.bot.model.message.VideoMessage
67
import io.cutebot.telegram.interaction.model.ChatAnswer
78

89
interface BotBlock {
@@ -12,5 +13,6 @@ interface BotBlock {
1213
fun handleText(message: TextMessage): BotBlock
1314
fun handlePhoto(message: PhotoMessage): BotBlock
1415
fun handleDocument(message: DocumentMessage): BotBlock
16+
fun handleVideo(message: VideoMessage): BotBlock
1517

1618
}
Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
package io.cutebot.telegram.bot.block
22

3-
import io.cutebot.telegram.bot.model.DocumentMessage
4-
import io.cutebot.telegram.bot.model.PhotoMessage
3+
import io.cutebot.telegram.bot.model.message.DocumentMessage
4+
import io.cutebot.telegram.bot.model.message.PhotoMessage
5+
import io.cutebot.telegram.bot.model.message.VideoMessage
56

67
interface BotTextBlock: BotBlock {
78
override fun handlePhoto(message: PhotoMessage): BotBlock {
@@ -11,4 +12,8 @@ interface BotTextBlock: BotBlock {
1112
override fun handleDocument(message: DocumentMessage): BotBlock {
1213
return this
1314
}
15+
16+
override fun handleVideo(message: VideoMessage): BotBlock {
17+
return this
18+
}
1419
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package io.cutebot.telegram.bot.block
22

3-
import io.cutebot.telegram.bot.model.TextMessage
3+
import io.cutebot.telegram.bot.model.message.TextMessage
44
import io.cutebot.telegram.interaction.model.ChatAnswer
55

66
class DoNothingBotBlock: BotTextBlock {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package io.cutebot.telegram.bot.command
22

33
import io.cutebot.telegram.bot.block.BotBlock
4-
import io.cutebot.telegram.bot.model.RawMessage
4+
import io.cutebot.telegram.bot.model.message.RawMessage
55

66
interface Command {
77
/**

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package io.cutebot.telegram.bot.command
22

33
import io.cutebot.telegram.bot.block.BotBlock
4-
import io.cutebot.telegram.bot.model.RawMessage
4+
import io.cutebot.telegram.bot.model.message.RawMessage
55

66
class RedirectCommand(
77
private val botBlock: BotBlock,

0 commit comments

Comments
 (0)