11using System . Linq . Expressions ;
22using Telegram . Bot ;
33using Telegram . Bot . Framework . Abstractions ;
4+ using Telegram . Bot . Types ;
45using Telegram . Bot . Types . Enums ;
56using Telegram . Bot . Types . ReplyMarkups ;
67
@@ -188,21 +189,36 @@ public async Task SendOrUpdate()
188189 protected async Task Send ( string text , ParseMode mode )
189190 {
190191 IsDirty = false ;
191- var message = await Context ! . Bot . Client . SendTextMessageAsync (
192- Context ! . GetSafeChatId ( ) ! ,
193- text ,
194- ParseMode . Html ,
195- replyMarkup : Message . Markup ,
196- cancellationToken : CancelToken ,
197- replyToMessageId : Message . ReplyToMessageId ) ;
192+ Message message ;
193+ if ( Message . PhotoUrl == null )
194+ {
195+ message = await Client . SendTextMessageAsync (
196+ Context ! . GetSafeChatId ( ) ! ,
197+ text ,
198+ ParseMode . Html ,
199+ replyMarkup : Message . Markup ,
200+ cancellationToken : CancelToken ,
201+ replyToMessageId : Message . ReplyToMessageId ) ;
202+ }
203+ else
204+ {
205+ message = await Client . SendPhotoAsync (
206+ Context ! . GetSafeChatId ( ) ! ,
207+ Message . PhotoUrl ,
208+ text ,
209+ ParseMode . Html ,
210+ replyMarkup : Message . Markup ,
211+ cancellationToken : CancelToken ,
212+ replyToMessageId : Message . ReplyToMessageId ) ;
213+ }
198214 await TryCleanLastMessageReplyKeyboard ( ) ;
199215 await TrySaveLastMessageId ( Message . Markup as InlineKeyboardMarkup , message ) ;
200216 ClearMessage ( ) ;
201217 }
202218
203219 public async Task UpdateMarkup ( InlineKeyboardMarkup markup )
204220 {
205- await Context ! . Bot . Client . EditMessageReplyMarkupAsync (
221+ await Client . EditMessageReplyMarkupAsync (
206222 Context ! . GetSafeChatId ( ) ! ,
207223 Context ! . GetSafeMessageId ( ) . GetValueOrDefault ( ) ,
208224 markup ,
@@ -214,7 +230,7 @@ public async Task Update(InlineKeyboardMarkup? markup = null, string? text = nul
214230 {
215231 var markupValue = markup ?? Message . Markup as InlineKeyboardMarkup ;
216232 IsDirty = false ;
217- var message = await Context ! . Bot . Client . EditMessageTextAsync (
233+ var message = await Client . EditMessageTextAsync (
218234 Context ! . GetSafeChatId ( ) ! ,
219235 Context ! . GetSafeMessageId ( ) . GetValueOrDefault ( ) ,
220236 text ?? Message . Message ,
@@ -233,7 +249,7 @@ protected async Task Send(string text)
233249
234250 protected async Task AnswerCallback ( string ? text = null )
235251 {
236- await Context ! . Bot . Client . AnswerCallbackQueryAsync ( Context ! . GetCallbackQuery ( ) . Id ,
252+ await Client . AnswerCallbackQueryAsync ( Context ! . GetCallbackQuery ( ) . Id ,
237253 text ,
238254 cancellationToken : CancelToken ) ;
239255 }
@@ -386,6 +402,11 @@ public void Reply(int? messageId = default)
386402 }
387403 }
388404
405+ public void Photo ( string url )
406+ {
407+ Message . SetPhotoUrl ( url ) ;
408+ }
409+
389410 public void ClearMessage ( )
390411 {
391412 Message = new MessageBuilder ( ) ;
0 commit comments