@@ -12,50 +12,89 @@ import ru.raysmith.tgbot.network.API
1212
1313// TODO [docs] methods
1414/* * Represent an object that can send messages */
15- interface ISender : ChatIdHolder , API , BotHolder {
15+ interface ISender : ChatDataHolder , API , BotHolder {
1616
17- // TODO add messageThreadId to ChatIdHolder; rename to ChatDataHolder; add messageThreadId arg to all methods
17+ @MessageDsl
18+ suspend fun send (text : String ) = send { this .text = text }
19+ suspend fun sendWithEntities (message : suspend (@MessageDsl MessageText ).() -> Unit ) = send {
20+ textWithEntities { message() }
21+ }
1822
1923 suspend fun send (chatId : ChatId = getChatIdOrThrow(), message : suspend TextMessage .() -> Unit ): Message {
20- return TextMessage (bot).apply { message() }.send(chatId)
24+ return TextMessage (bot).apply {
25+ this .messageThreadId = getMessageThreadId()
26+ message()
27+ }.send(chatId)
2128 }
2229
2330 suspend fun sendPhoto (chatId : ChatId = getChatIdOrThrow(), message : suspend PhotoMessage .() -> Unit ): Message {
24- return PhotoMessage (bot).apply { message() }.send(chatId)
31+ return PhotoMessage (bot).apply {
32+ this .messageThreadId = getMessageThreadId()
33+ message()
34+ }.send(chatId)
2535 }
2636
2737 suspend fun sendAudio (chatId : ChatId = getChatIdOrThrow(), message : suspend AudioMessage .() -> Unit ): Message {
28- return AudioMessage (bot).apply { message() }.send(chatId)
38+ return AudioMessage (bot).apply {
39+ this .messageThreadId = getMessageThreadId()
40+ message()
41+ }.send(chatId)
2942 }
3043
31- suspend fun sendDocument (chatId : ChatId = getChatIdOrThrow(), message : suspend DocumentMessage .() -> Unit ): Message {
32- return DocumentMessage (bot).apply { message() }.send(chatId)
44+ suspend fun sendDocument (
45+ chatId : ChatId = getChatIdOrThrow(),
46+ message : suspend DocumentMessage .() -> Unit
47+ ): Message {
48+ return DocumentMessage (bot).apply {
49+ this .messageThreadId = getMessageThreadId()
50+ message()
51+ }.send(chatId)
3352 }
3453
3554 suspend fun sendVideo (chatId : ChatId = getChatIdOrThrow(), message : suspend VideoMessage .() -> Unit ): Message {
36- return VideoMessage (bot).apply { message() }.send(chatId)
55+ return VideoMessage (bot).apply {
56+ this .messageThreadId = getMessageThreadId()
57+ message()
58+ }.send(chatId)
3759 }
3860
39- suspend fun sendAnimation (chatId : ChatId = getChatIdOrThrow(), message : suspend AnimationMessage .() -> Unit ): Message {
40- return AnimationMessage (bot).apply { message() }.send(chatId)
61+ suspend fun sendAnimation (
62+ chatId : ChatId = getChatIdOrThrow(),
63+ message : suspend AnimationMessage .() -> Unit
64+ ): Message {
65+ return AnimationMessage (bot).apply {
66+ this .messageThreadId = getMessageThreadId()
67+ message()
68+ }.send(chatId)
4169 }
4270
4371 suspend fun sendVoice (chatId : ChatId = getChatIdOrThrow(), message : suspend VoiceMessage .() -> Unit ): Message {
44- return VoiceMessage (bot).apply { message() }.send(chatId)
72+ return VoiceMessage (bot).apply {
73+ this .messageThreadId = getMessageThreadId()
74+ message()
75+ }.send(chatId)
4576 }
4677
47- suspend fun sendVideoNote (chatId : ChatId = getChatIdOrThrow(), message : suspend VideoNoteMessage .() -> Unit ): Message {
48- return VideoNoteMessage (bot).apply { message() }.send(chatId)
78+ suspend fun sendVideoNote (
79+ chatId : ChatId = getChatIdOrThrow(),
80+ message : suspend VideoNoteMessage .() -> Unit
81+ ): Message {
82+ return VideoNoteMessage (bot).apply {
83+ this .messageThreadId = getMessageThreadId()
84+ message()
85+ }.send(chatId)
4986 }
5087
5188 suspend fun sendLocation (
5289 latitude : Double ,
5390 longitude : Double ,
54- messageThreadId : Int? = null,
5591 chatId : ChatId = getChatIdOrThrow(),
5692 message : suspend LocationMessage .() -> Unit
5793 ): Message {
58- return LocationMessage (latitude, longitude, bot).apply { message() }.send(chatId)
94+ return LocationMessage (latitude, longitude, bot).apply {
95+ this .messageThreadId = getMessageThreadId()
96+ message()
97+ }.send(chatId)
5998 }
6099
61100 suspend fun editMessageLiveLocation (
@@ -66,7 +105,10 @@ interface ISender : ChatIdHolder, API, BotHolder {
66105 inlineMessageId : String? = null,
67106 message : suspend LocationMessage .() -> Unit
68107 ): LiveLocationResponse {
69- return LocationMessage (latitude, longitude, bot).apply { message() }
108+ return LocationMessage (latitude, longitude, bot).apply {
109+ this .messageThreadId = getMessageThreadId()
110+ message()
111+ }
70112 .edit(chatId, messageId, inlineMessageId)
71113 }
72114
@@ -76,56 +118,90 @@ interface ISender : ChatIdHolder, API, BotHolder {
76118 inlineMessageId : String? = null,
77119 message : suspend LocationMessage .() -> Unit
78120 ): LiveLocationResponse {
79- return LocationMessage (0.0 , 0.0 , bot).apply { message() }.stop(chatId, messageId, inlineMessageId)
121+ return LocationMessage (0.0 , 0.0 , bot).apply {
122+ this .messageThreadId = getMessageThreadId()
123+ message()
124+ }.stop(chatId, messageId, inlineMessageId)
80125 }
81126
82127 suspend fun sendVenue (
83128 latitude : Double ,
84129 longitude : Double ,
85130 title : String ,
86131 address : String ,
87- messageThreadId : Int? = null,
88132 chatId : ChatId = getChatIdOrThrow(),
89133 message : suspend VenueMessage .() -> Unit
90134 ): Message {
91- return VenueMessage (latitude, longitude, title, address, bot).apply { message() }.send(chatId)
135+ return VenueMessage (latitude, longitude, title, address, bot).apply {
136+ this .messageThreadId = getMessageThreadId()
137+ message()
138+ }.send(chatId)
92139 }
93140
94141 suspend fun sendContact (
95142 phoneNumber : String ,
96143 firstName : String ,
97- messageThreadId : Int? = null,
98144 chatId : ChatId = getChatIdOrThrow(),
99145 message : suspend ContactMessage .() -> Unit
100146 ): Message {
101- return ContactMessage (phoneNumber, firstName, bot).apply { message() }.send(chatId)
147+ return ContactMessage (phoneNumber, firstName, bot).apply {
148+ this .messageThreadId = getMessageThreadId()
149+ message()
150+ }.send(chatId)
102151 }
103152
104153 suspend fun sendPoll (
105- messageThreadId : Int? = null,
106154 chatId : ChatId = getChatIdOrThrow(),
107155 message : suspend PollMessage .() -> Unit
108156 ): Message {
109- return PollMessage (bot).apply { message() }.send(chatId)
157+ return PollMessage (bot).apply {
158+ this .messageThreadId = getMessageThreadId()
159+ message()
160+ }.send(chatId)
110161 }
111162
112- suspend fun sendDice (emoji : String , chatId : ChatId = getChatIdOrThrow(), message : suspend DiceMessage .() -> Unit ): Message {
113- return DiceMessage (emoji, bot).apply { message() }.send(chatId)
163+ suspend fun sendDice (
164+ emoji : String ,
165+ chatId : ChatId = getChatIdOrThrow(),
166+ message : suspend DiceMessage .() -> Unit
167+ ): Message {
168+ return DiceMessage (emoji, bot).apply {
169+ this .messageThreadId = getMessageThreadId()
170+ message()
171+ }.send(chatId)
114172 }
115173
116- suspend fun sendChatAction (action : ChatAction , businessConnectionId : String? = null, chatId : ChatId = getChatIdOrThrow()): Boolean {
174+ suspend fun sendChatAction (
175+ action : ChatAction ,
176+ businessConnectionId : String? = null,
177+ chatId : ChatId = getChatIdOrThrow()
178+ ): Boolean {
117179 return sendChatAction(action, businessConnectionId, chatId)
118180 }
119181
120- suspend fun sendMediaGroup (chatId : ChatId = getChatIdOrThrow(), message : suspend MediaGroupMessage .() -> Unit ): List <Message > {
121- return MediaGroupMessage (bot).apply { message() }.send(chatId)
182+ suspend fun sendMediaGroup (
183+ chatId : ChatId = getChatIdOrThrow(),
184+ message : suspend MediaGroupMessage .() -> Unit
185+ ): List <Message > {
186+ return MediaGroupMessage (bot).apply {
187+ this .messageThreadId = getMessageThreadId()
188+ message()
189+ }.send(chatId)
122190 }
123191
124192 suspend fun sendSticker (chatId : ChatId = getChatIdOrThrow(), message : suspend StickerMessage .() -> Unit ): Message {
125- return StickerMessage (bot).apply { message() }.send(chatId)
193+ return StickerMessage (bot).apply {
194+ this .messageThreadId = getMessageThreadId()
195+ message()
196+ }.send(chatId)
126197 }
127198
128- suspend fun sendPaidMedia (chatId : ChatId = getChatIdOrThrow(), message : suspend PaidMediaMessage .() -> Unit ): Message {
129- return PaidMediaMessage (bot).apply { message() }.send(chatId)
199+ suspend fun sendPaidMedia (
200+ chatId : ChatId = getChatIdOrThrow(),
201+ message : suspend PaidMediaMessage .() -> Unit
202+ ): Message {
203+ return PaidMediaMessage (bot).apply {
204+ message()
205+ }.send(chatId)
130206 }
131207}
0 commit comments