private void ProcessBotInlineResult(ref TLMessage message, TLBotInlineResultBase resultBase, int botId) { message.InlineBotResultId = resultBase.Id; message.InlineBotResultQueryId = resultBase.QueryId; message.ViaBotId = botId; message.HasViaBotId = true; var venueMedia = resultBase.SendMessage as TLBotInlineMessageMediaVenue; if (venueMedia != null) { message.Media = new TLMessageMediaVenue { Title = venueMedia.Title, Address = venueMedia.Address, Provider = venueMedia.Provider, VenueId = venueMedia.VenueId, Geo = venueMedia.Geo }; } var geoMedia = resultBase.SendMessage as TLBotInlineMessageMediaGeo; if (geoMedia != null) { message.Media = new TLMessageMediaGeo { Geo = geoMedia.Geo }; } var contactMedia = resultBase.SendMessage as TLBotInlineMessageMediaContact; if (contactMedia != null) { message.Media = new TLMessageMediaContact { PhoneNumber = contactMedia.PhoneNumber, FirstName = contactMedia.FirstName, LastName = contactMedia.LastName, UserId = 0 }; } var mediaResult = resultBase as TLBotInlineMediaResult; if (mediaResult != null) { if (mediaResult.Type.Equals("voice", StringComparison.OrdinalIgnoreCase)) { message.Media = new TLMessageMediaDocument { Document = mediaResult.Document, Caption = string.Empty, //NotListened = !(this.With is TLChannel) }; //message.NotListened = !(this.With is TLChannel); } else if (mediaResult.Type.Equals("audio", StringComparison.OrdinalIgnoreCase)) { message.Media = new TLMessageMediaDocument { Document = mediaResult.Document, Caption = string.Empty }; } else if (mediaResult.Type.Equals("sticker", StringComparison.OrdinalIgnoreCase)) { message.Media = new TLMessageMediaDocument { Document = mediaResult.Document, Caption = string.Empty }; } else if (mediaResult.Type.Equals("file", StringComparison.OrdinalIgnoreCase)) { message.Media = new TLMessageMediaDocument { Document = mediaResult.Document, Caption = string.Empty }; } else if (mediaResult.Type.Equals("gif", StringComparison.OrdinalIgnoreCase)) { message.Media = new TLMessageMediaDocument { Document = mediaResult.Document, Caption = string.Empty }; } else if (mediaResult.Type.Equals("photo", StringComparison.OrdinalIgnoreCase)) { message.Media = new TLMessageMediaPhoto { Photo = mediaResult.Photo, Caption = string.Empty }; } } var result = resultBase as TLBotInlineResult; if (result != null) { } //var result = resultBase as TLBotInlineResult; //if (result != null) //{ // var isFile = result.Type.Equals("file", StringComparison.OrdinalIgnoreCase); // var isVoice = result.Type.Equals("voice", StringComparison.OrdinalIgnoreCase); // var isAudio = result.Type.Equals("audio", StringComparison.OrdinalIgnoreCase); // if (isFile || isAudio || isVoice) // { // var tLDocument = result.Document as TLDocument; // if (tLDocument == null) // { // string text = null; // if (result.ContentUrl != null) // { // Uri uri = new Uri(result.ContentUrl); // try // { // text = Path.GetFileName(uri.LocalPath); // } // catch (Exception) // { // } // if (text == null) // { // text = "file.ext"; // } // } // tLDocument = new TLDocument // { // Id = 0, // AccessHash = 0, // Date = 0, // MimeType = result.ContentType ?? string.Empty, // Size = 0, // Thumb = new TLPhotoSizeEmpty // { // Type = string.Empty // }, // DCId = 0, // Attributes = new TLVector<TLDocumentAttributeBase> // { // new TLDocumentAttributeFilename // { // FileName = text // } // } // }; // if (isVoice || isAudio) // { // tLDocument.Attributes.Add(new TLDocumentAttributeAudio // { // Duration = result.Duration ?? 0, // Title = result.Title, // Performer = null, // IsVoice = isVoice // }); // } // } // var documentMedia = new TLMessageMediaDocument // { // Document = tLDocument, // Caption = string.Empty // }; // message.Media = documentMedia; // documentMedia.NotListened = (isVoice && !(this.With is TLChannel)); // message.NotListened = (isVoice && !(this.With is TLChannel)); // } // else if (result.Type.Equals("gif", StringComparison.OrdinalIgnoreCase)) // { // TLDocumentBase document = result.Document; // if (document != null) // { // TLMessageMediaDocument media = new TLMessageMediaDocument // { // Document = document, // Caption = string.Empty // }; // message.Media = media; // } // } // else if (result.Type.Equals("photo", StringComparison.OrdinalIgnoreCase)) // { // Telegram.Api.Helpers.Execute.ShowDebugMessage(string.Format("w={0} h={1}\nthumb_url={2}\ncontent_url={3}", new object[] // { // result.W, // result.H, // result.ThumbUrl, // result.ContentUrl // })); // TLFileLocation location = new TLFileLocation // { // DCId = 1, // VolumeId = TLLong.Random(), // LocalId = TLInt.Random(), // Secret = TLLong.Random() // }; // TLPhotoCachedSize item2 = new TLPhotoCachedSize // { // Type = "s", // W = result.W ?? 0, // H = result.H ?? 0, // Location = location, // Bytes = new byte[0], // TempUrl = (result.ThumbUrlString ?? result.ContentUrlString) // }; // TLPhotoSize item3 = new TLPhotoSize // { // Type = "m", // W = result.W ?? 0, // H = result.H ?? 0, // Location = location, // TempUrl = result.ContentUrlString, // Size = 0 // }; // if (!string.IsNullOrEmpty(result.ThumbUrl)) // { // WebClient webClient = new WebClient(); // webClient.OpenReadAsync(new Uri(result.ThumbUrlString, 1)); // webClient.add_OpenReadCompleted(delegate (object sender, OpenReadCompletedEventArgs args) // { // if (args.get_Cancelled()) // { // return; // } // if (args.get_Error() != null) // { // return; // } // string fileName = string.Format("{0}_{1}_{2}.jpg", location.VolumeId, location.LocalId, location.Secret); // Stream result = args.get_Result(); // try // { // using (IsolatedStorageFile userStoreForApplication = IsolatedStorageFile.GetUserStoreForApplication()) // { // if (userStoreForApplication.FileExists(fileName)) // { // return; // } // using (IsolatedStorageFileStream isolatedStorageFileStream = userStoreForApplication.OpenFile(fileName, 4, 2, 1)) // { // byte[] array = new byte[131072]; // int num; // while ((num = result.Read(array, 0, 131072)) > 0) // { // long position = result.get_Position(); // result.set_Position(position - 10L); // byte[] array2 = new byte[10]; // result.Read(array2, 0, array2.Length); // isolatedStorageFileStream.Write(array, 0, num); // } // } // } // } // finally // { // if (result != null) // { // result.Dispose(); // } // } // if (!string.IsNullOrEmpty(result.ContentUrlString)) // { // webClient.OpenReadAsync(new Uri(result.ContentUrlString, 1)); // webClient.add_OpenReadCompleted(delegate (object sender2, OpenReadCompletedEventArgs args2) // { // if (args2.get_Cancelled()) // { // return; // } // if (args2.get_Error() != null) // { // return; // } // using (Stream result2 = args2.get_Result()) // { // using (IsolatedStorageFile userStoreForApplication2 = IsolatedStorageFile.GetUserStoreForApplication()) // { // if (!userStoreForApplication2.FileExists(fileName)) // { // using (IsolatedStorageFileStream isolatedStorageFileStream2 = userStoreForApplication2.OpenFile(fileName, 4, 2, 1)) // { // byte[] array3 = new byte[131072]; // int num2; // while ((num2 = result2.Read(array3, 0, 131072)) > 0) // { // isolatedStorageFileStream2.Write(array3, 0, num2); // } // } // } // } // } // }); // } // }); // } // var photo = new TLPhoto // { // Id = TLLong.Random(), // AccessHash = TLLong.Random(), // Date = TLUtils.DateToUniversalTimeTLInt(ProtoService.ClientTicksDelta, DateTime.Now), // Sizes = new TLVector<TLPhotoSizeBase> // { // item2, // item3 // } // }; // var media2 = new TLMessageMediaPhoto // { // Photo = photo, // Caption = string.Empty // }; // message.Media = media2; // } //} var sendText = resultBase.SendMessage as TLBotInlineMessageText; if (sendText != null) { message.Message = sendText.Message; message.Entities = sendText.Entities; message.HasEntities = sendText.HasEntities; //bool arg_878_0 = sendText.NoWebpage; } var sendMedia = resultBase.SendMessage as TLBotInlineMessageMediaAuto; if (sendMedia != null) { var mediaCaption = message.Media as ITLMessageMediaCaption; if (mediaCaption != null) { mediaCaption.Caption = sendMedia.Caption; } } if (resultBase.SendMessage != null && resultBase.SendMessage.ReplyMarkup != null) { message.ReplyMarkup = resultBase.SendMessage.ReplyMarkup; message.HasReplyMarkup = true; } }
public void SendBotInlineResult(TLBotInlineResultBase result) { var currentInlineBot = CurrentInlineBot; if (currentInlineBot == null) { return; } //var inlineBots = DialogDetailsViewModel.GetInlineBots(); //if (!inlineBots.Contains(currentInlineBot)) //{ // inlineBots.Insert(0, currentInlineBot); // this._cachedUsernameResults.Clear(); //} //else //{ // inlineBots.Remove(currentInlineBot); // inlineBots.Insert(0, currentInlineBot); // this._cachedUsernameResults.Clear(); //} //DialogDetailsViewModel.SaveInlineBotsAsync(); //if (_inlineBotResults == null) //{ // return; //} //TLLong arg_74_0 = this._currentInlineBotResults.QueryId; var date = TLUtils.DateToUniversalTimeTLInt(ProtoService.ClientTicksDelta, DateTime.Now); var message = TLUtils.GetMessage(SettingsHelper.UserId, Peer.ToPeer(), TLMessageState.Sending, true, true, date, string.Empty, new TLMessageMediaEmpty(), TLLong.Random(), null); if (message == null) { return; } ProcessBotInlineResult(ref message, result, currentInlineBot.Id); //if (this.Reply != null && DialogDetailsViewModel.IsWebPagePreview(this.Reply)) //{ // message._media = ((TLMessagesContainter)this.Reply).WebPageMedia; // this.Reply = this._previousReply; //} if (Reply != null) { message.HasReplyToMsgId = true; message.ReplyToMsgId = Reply.Id; message.Reply = Reply; Reply = null; } SetText(string.Empty); //this.Text = string.Empty; var previousMessage = InsertSendingMessage(message, false); //this.IsEmptyDialog = (base.Items.get_Count() == 0 && this.LazyItems.get_Count() == 0); var user = With as TLUser; if (user != null && user.IsBot && Messages.Count == 1) { RaisePropertyChanged(() => With); } CurrentInlineBot = null; InlineBotResults = null; Execute.BeginOnThreadPool(() => { CacheService.SyncSendingMessage(message, previousMessage, async(m) => { var response = await ProtoService.SendInlineBotResultAsync(message, () => { message.State = TLMessageState.Confirmed; }); if (response.IsSucceeded) { message.RaisePropertyChanged(() => message.Media); } }); }); //base.BeginOnUIThread(delegate //{ // this.ProcessScroll(); // this.RaiseStartGifPlayer(new StartGifPlayerEventArgs(message)); //}); //base.BeginOnUIThread(delegate //{ // this.ClearInlineBotResults(); // this.CurrentInlineBot = null; // base.NotifyOfPropertyChange<string>(() => this.BotInlinePlaceholder); //}); //this._debugNotifyOfPropertyChanged = false; //base.BeginOnThreadPool(delegate //{ // this.CacheService.SyncSendingMessage(message, previousMessage, delegate (TLMessageCommon m) // { // DialogDetailsViewModel.SendInternal(message, this.MTProtoService, delegate // { // }, delegate // { // this.Status = string.Empty; // }); // }); //}); }
public void SendBotInlineResult(TLBotInlineResultBase result) { _debugNotifyOfPropertyChanged = true; var currentInlineBot = CurrentInlineBot; if (currentInlineBot == null) { return; } var inlineBots = GetInlineBots(); if (!inlineBots.Contains(currentInlineBot)) { inlineBots.Insert(0, currentInlineBot); _cachedUsernameResults.Clear(); } else { inlineBots.Remove(currentInlineBot); inlineBots.Insert(0, currentInlineBot); _cachedUsernameResults.Clear(); } SaveInlineBotsAsync(); if (_currentInlineBotResults == null) { return; } var queryId = _currentInlineBotResults.QueryId; ClearInlineBotResults(); CurrentInlineBot = null; NotifyOfPropertyChange(() => BotInlinePlaceholder); Text = string.Empty; var message = GetMessage(TLString.Empty, new TLMessageMediaEmpty()) as TLMessage45; if (message == null) { return; } ProcessBotInlineResult(message, result, currentInlineBot.Id); if (message._media != null) { message.SetMedia(); } if (Reply != null && IsWebPagePreview(Reply)) { message._media = ((TLMessagesContainter)Reply).WebPageMedia; Reply = _previousReply; } BeginOnUIThread(() => { var previousMessage = InsertSendingMessage(message); IsEmptyDialog = Items.Count == 0 && (_messages == null || _messages.Count == 0) && LazyItems.Count == 0; var user = With as TLUser; if (user != null && user.IsBot && Items.Count == 1) { NotifyOfPropertyChange(() => With); } BeginOnUIThread(() => { ProcessScroll(); View.ResumeChatPlayers(); }); _debugNotifyOfPropertyChanged = false; BeginOnThreadPool(() => CacheService.SyncSendingMessage( message, previousMessage, m => SendInternal(message, MTProtoService, () => { }, () => Status = string.Empty))); }); }
private void ProcessBotInlineResult(TLMessage45 message, TLBotInlineResultBase resultBase, TLInt botId) { message.InlineBotResultId = resultBase.Id; message.InlineBotResultQueryId = resultBase.QueryId; message.ViaBotId = botId; var botInlineMessageMediaVenue = resultBase.SendMessage as TLBotInlineMessageMediaVenue; var botInlineMessageMediaGeo = resultBase.SendMessage as TLBotInlineMessageMediaGeo; if (botInlineMessageMediaVenue != null) { message._media = new TLMessageMediaVenue72 { Title = botInlineMessageMediaVenue.Title, Address = botInlineMessageMediaVenue.Address, Provider = botInlineMessageMediaVenue.Provider, VenueId = botInlineMessageMediaVenue.VenueId, VenueType = TLString.Empty, Geo = botInlineMessageMediaVenue.Geo }; } else if (botInlineMessageMediaGeo != null) { message._media = new TLMessageMediaGeo { Geo = botInlineMessageMediaGeo.Geo }; } var botInlineMessageMediaContact = resultBase.SendMessage as TLBotInlineMessageMediaContact; if (botInlineMessageMediaContact != null) { message._media = new TLMessageMediaContact82 { PhoneNumber = botInlineMessageMediaContact.PhoneNumber, FirstName = botInlineMessageMediaContact.FirstName, LastName = botInlineMessageMediaContact.LastName, UserId = new TLInt(0), VCard = TLString.Empty }; } var mediaResult = resultBase as TLBotInlineMediaResult; if (mediaResult != null) { if (TLString.Equals(mediaResult.Type, new TLString("voice"), StringComparison.OrdinalIgnoreCase) && mediaResult.Document != null) { message._media = new TLMessageMediaDocument75 { Flags = new TLInt(0), Document = mediaResult.Document, Caption = TLString.Empty, NotListened = !(With is TLChannel) }; message.NotListened = !(With is TLChannel); } else if (TLString.Equals(mediaResult.Type, new TLString("audio"), StringComparison.OrdinalIgnoreCase) && mediaResult.Document != null) { message._media = new TLMessageMediaDocument75 { Flags = new TLInt(0), Document = mediaResult.Document, Caption = TLString.Empty }; } else if (TLString.Equals(mediaResult.Type, new TLString("sticker"), StringComparison.OrdinalIgnoreCase) && mediaResult.Document != null) { message._media = new TLMessageMediaDocument75 { Flags = new TLInt(0), Document = mediaResult.Document, Caption = TLString.Empty }; } else if (TLString.Equals(mediaResult.Type, new TLString("file"), StringComparison.OrdinalIgnoreCase) && mediaResult.Document != null) { message._media = new TLMessageMediaDocument75 { Flags = new TLInt(0), Document = mediaResult.Document, Caption = TLString.Empty }; } else if (TLString.Equals(mediaResult.Type, new TLString("gif"), StringComparison.OrdinalIgnoreCase) && mediaResult.Document != null) { message._media = new TLMessageMediaDocument75 { Flags = new TLInt(0), Document = mediaResult.Document, Caption = TLString.Empty }; } else if (TLString.Equals(mediaResult.Type, new TLString("photo"), StringComparison.OrdinalIgnoreCase) && mediaResult.Photo != null) { message._media = new TLMessageMediaPhoto75 { Flags = new TLInt(0), Photo = mediaResult.Photo, Caption = TLString.Empty }; } else if (TLString.Equals(mediaResult.Type, new TLString("game"), StringComparison.OrdinalIgnoreCase)) { var game = new TLGame { Flags = new TLInt(0), Id = new TLLong(0), AccessHash = new TLLong(0), ShortName = mediaResult.Id, Title = mediaResult.Title ?? TLString.Empty, Description = mediaResult.Description ?? TLString.Empty, Photo = mediaResult.Photo ?? new TLPhotoEmpty { Id = new TLLong(0) }, Document = mediaResult.Document }; message._media = new TLMessageMediaGame { Game = game, SourceMessage = message }; } } var result = resultBase as TLBotInlineResult; if (result != null) { var isVoice = TLString.Equals(result.Type, new TLString("voice"), StringComparison.OrdinalIgnoreCase); var isAudio = TLString.Equals(result.Type, new TLString("audio"), StringComparison.OrdinalIgnoreCase); var isFile = TLString.Equals(result.Type, new TLString("file"), StringComparison.OrdinalIgnoreCase); if (isFile || isAudio || isVoice) { var document = result.Document as TLDocument22; if (document == null) { string fileName = null; if (result.ContentUrl != null) { var fileUri = new Uri(result.ContentUrlString); try { fileName = Path.GetFileName(fileUri.LocalPath); } catch (Exception ex) { } if (fileName == null) { fileName = "file.ext"; } } document = new TLDocument54 { Id = new TLLong(0), AccessHash = new TLLong(0), Date = TLUtils.DateToUniversalTimeTLInt(MTProtoService.ClientTicksDelta, DateTime.Now), FileName = new TLString(fileName), MimeType = result.ContentType ?? TLString.Empty, Size = new TLInt(0), Thumb = new TLPhotoSizeEmpty { Type = TLString.Empty }, DCId = new TLInt(0), Version = new TLInt(0) }; if (isVoice || isAudio) { var documentAttributeAudio = new TLDocumentAttributeAudio46 { Duration = result.Duration ?? new TLInt(0), Title = result.Title ?? TLString.Empty, Performer = null, Voice = isVoice }; document.Attributes.Add(documentAttributeAudio); } //message._status = MessageStatus.Failed; } var mediaDocument = new TLMessageMediaDocument75 { Flags = new TLInt(0), Document = document, Caption = TLString.Empty }; message._media = mediaDocument; mediaDocument.NotListened = isVoice && !(With is TLChannel); message.NotListened = isVoice && !(With is TLChannel); } else if (TLString.Equals(result.Type, new TLString("gif"), StringComparison.OrdinalIgnoreCase)) { var document = result.Document; if (document != null) { var mediaDocument = new TLMessageMediaDocument75 { Flags = new TLInt(0), Document = document, Caption = TLString.Empty }; message._media = mediaDocument; } } else if (TLString.Equals(result.Type, new TLString("photo"), StringComparison.OrdinalIgnoreCase)) { Telegram.Api.Helpers.Execute.ShowDebugMessage(string.Format("w={0} h={1}\nthumb_url={2}\ncontent_url={3}", result.W, result.H, result.ThumbUrl, result.ContentUrl)); var location = new TLFileLocation { DCId = new TLInt(1), VolumeId = TLLong.Random(), LocalId = TLInt.Random(), Secret = TLLong.Random() }; var cachedSize = new TLPhotoCachedSize { Type = new TLString("s"), W = result.W ?? new TLInt(90), H = result.H ?? new TLInt(90), Location = location, Bytes = TLString.Empty, TempUrl = result.ThumbUrlString ?? result.ContentUrlString //Size = new TLInt(0) }; var size = new TLPhotoSize { Type = new TLString("m"), W = result.W ?? new TLInt(90), H = result.H ?? new TLInt(90), Location = location, TempUrl = result.ContentUrlString, Size = new TLInt(0) }; if (!string.IsNullOrEmpty(result.ThumbUrlString)) { //ServicePointManager.ServerCertificateValidationCallback += new var webClient = new WebClient(); webClient.OpenReadAsync(new Uri(result.ThumbUrlString, UriKind.Absolute)); webClient.OpenReadCompleted += (sender, args) => { if (args.Cancelled) { return; } if (args.Error != null) { return; } var fileName = String.Format("{0}_{1}_{2}.jpg", location.VolumeId, location.LocalId, location.Secret); using (var stream = args.Result) { using (var store = IsolatedStorageFile.GetUserStoreForApplication()) { if (store.FileExists(fileName)) { return; } using (var file = store.OpenFile(fileName, FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read)) { const int BUFFER_SIZE = 128 * 1024; var buf = new byte[BUFFER_SIZE]; var bytesread = 0; while ((bytesread = stream.Read(buf, 0, BUFFER_SIZE)) > 0) { var position = stream.Position; stream.Position = position - 10; var tempBuffer = new byte[10]; var resultOk = stream.Read(tempBuffer, 0, tempBuffer.Length); file.Write(buf, 0, bytesread); } } } } if (!string.IsNullOrEmpty(result.ContentUrlString)) { webClient.OpenReadAsync(new Uri(result.ContentUrlString, UriKind.Absolute)); webClient.OpenReadCompleted += (sender2, args2) => { if (args2.Cancelled) { return; } if (args2.Error != null) { return; } using (var stream = args2.Result) { using (var store = IsolatedStorageFile.GetUserStoreForApplication()) { if (store.FileExists(fileName)) { return; } using (var file = store.OpenFile(fileName, FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read)) { const int BUFFER_SIZE = 128 * 1024; var buf = new byte[BUFFER_SIZE]; int bytesread = 0; while ((bytesread = stream.Read(buf, 0, BUFFER_SIZE)) > 0) { file.Write(buf, 0, bytesread); } } } } }; } }; } var photo = new TLPhoto56 { Flags = new TLInt(0), Id = TLLong.Random(), AccessHash = TLLong.Random(), Date = TLUtils.DateToUniversalTimeTLInt(MTProtoService.ClientTicksDelta, DateTime.Now), Sizes = new TLVector <TLPhotoSizeBase> { cachedSize, size } }; var mediaPhoto = new TLMessageMediaPhoto75 { Flags = new TLInt(0), Photo = photo, Caption = TLString.Empty }; message._media = mediaPhoto; } } var messageText = resultBase.SendMessage as TLBotInlineMessageText; if (messageText != null) { message.Message = messageText.Message; message.Entities = messageText.Entities; if (messageText.NoWebpage) { } } var mediaAuto = resultBase.SendMessage as TLBotInlineMessageMediaAuto75; if (mediaAuto != null) { message.Message = mediaAuto.Caption; message.Entities = mediaAuto.Entities; } if (resultBase.SendMessage != null && resultBase.SendMessage.ReplyMarkup != null) { message.ReplyMarkup = resultBase.SendMessage.ReplyMarkup; } }
private void ProcessBotInlineResult(ref TLMessage message, TLBotInlineResultBase resultBase, int botId) { if (message == null || resultBase == null) { return; } message.InlineBotResultId = resultBase.Id; message.InlineBotResultQueryId = resultBase.QueryId; message.ViaBotId = botId; message.HasViaBotId = true; if (resultBase.SendMessage is TLBotInlineMessageMediaVenue venueMedia) { message.Media = new TLMessageMediaVenue { Title = venueMedia.Title, Address = venueMedia.Address, Provider = venueMedia.Provider, VenueId = venueMedia.VenueId, Geo = venueMedia.Geo }; } else if (resultBase.SendMessage is TLBotInlineMessageMediaGeo geoMedia) { if (geoMedia.Period > 0) { message.Media = new TLMessageMediaGeoLive { Geo = geoMedia.Geo, Period = geoMedia.Period }; } else { message.Media = new TLMessageMediaGeo { Geo = geoMedia.Geo }; } } else if (resultBase.SendMessage is TLBotInlineMessageMediaContact contactMedia) { message.Media = new TLMessageMediaContact { PhoneNumber = contactMedia.PhoneNumber, FirstName = contactMedia.FirstName, LastName = contactMedia.LastName, UserId = 0 }; } else if (resultBase is TLBotInlineMediaResult mediaResult) { if (mediaResult.Type.Equals("voice", StringComparison.OrdinalIgnoreCase)) { message.Media = new TLMessageMediaDocument { Document = mediaResult.Document, Caption = string.Empty, //NotListened = !(this.With is TLChannel) }; //message.NotListened = !(this.With is TLChannel); } else if (mediaResult.Type.Equals("audio", StringComparison.OrdinalIgnoreCase)) { message.Media = new TLMessageMediaDocument { Document = mediaResult.Document, Caption = string.Empty }; } else if (mediaResult.Type.Equals("sticker", StringComparison.OrdinalIgnoreCase)) { message.Media = new TLMessageMediaDocument { Document = mediaResult.Document, Caption = string.Empty }; } else if (mediaResult.Type.Equals("file", StringComparison.OrdinalIgnoreCase)) { message.Media = new TLMessageMediaDocument { Document = mediaResult.Document, Caption = string.Empty }; } else if (mediaResult.Type.Equals("gif", StringComparison.OrdinalIgnoreCase)) { message.Media = new TLMessageMediaDocument { Document = mediaResult.Document, Caption = string.Empty }; } else if (mediaResult.Type.Equals("photo", StringComparison.OrdinalIgnoreCase)) { message.Media = new TLMessageMediaPhoto { Photo = mediaResult.Photo, Caption = string.Empty }; } } //else if (resultBase is TLBotInlineResult result) //{ // var file = result.Type.Equals("file", StringComparison.OrdinalIgnoreCase); // var voice = result.Type.Equals("voice", StringComparison.OrdinalIgnoreCase); // var audio = result.Type.Equals("audio", StringComparison.OrdinalIgnoreCase); // if (file || voice || audio) // { // } // else if (result.Type.Equals("gif", StringComparison.OrdinalIgnoreCase) && result.W is int gifWidth && result.H is int gifHeight) // { // var document = new TLDocument // { // MimeType = "video/mp4", // Attributes = new TLVector<TLDocumentAttributeBase> // { // new TLDocumentAttributeAnimated(), // new TLDocumentAttributeVideo // { // W = gifWidth, // H = gifHeight, // } // }, // Thumb = new TLPhotoSize // { // W = gifWidth, // H = gifHeight, // Type = "s", // Location = new TLFileLocationUnavailable() // } // }; // message.Media = new TLMessageMediaDocument { Document = document, HasDocument = true }; // } // else if (result.Type.Equals("photo", StringComparison.OrdinalIgnoreCase) && result.W is int photoWidth && result.H is int photoHeight) // { // var photo = new TLPhoto // { // Sizes = new TLVector<TLPhotoSizeBase> // { // new TLPhotoSize // { // W = photoWidth, // H = photoHeight, // Type = "s", // Location = new TLFileLocationUnavailable() // } // } // }; // message.Media = new TLMessageMediaPhoto { Photo = photo, HasPhoto = true }; // } //} if (resultBase.SendMessage is TLBotInlineMessageText sendText) { message.Message = sendText.Message; message.Entities = sendText.Entities; message.HasEntities = sendText.HasEntities; //bool arg_878_0 = sendText.NoWebpage; } else if (resultBase.SendMessage is TLBotInlineMessageMediaAuto sendMedia) { var mediaCaption = message.Media as ITLMessageMediaCaption; if (mediaCaption != null) { mediaCaption.Caption = sendMedia.Caption; } } if (resultBase.SendMessage != null && resultBase.SendMessage.ReplyMarkup != null) { message.ReplyMarkup = resultBase.SendMessage.ReplyMarkup; message.HasReplyMarkup = true; } }