public async Task RequestFile(TelegramClient client, int button_number) { Account.your_id = client.Session.TLUser.Id.ToString(); await GetAccessHash(client); await Task.WhenAny(client.SendMessageAsync(peer, "Menu")); var po = GetHistory(client); int msg_id = GetMessageId(po); GetLanguage(po); if (IsCSGO) { CSNumber = button_number; button_number = 1; } byte[][] buttons = GetData(); byte[] data = buttons[button_number]; var request = new TLRequestGetBotCallbackAnswer() { Peer = peer, Data = data, MsgId = msg_id }; client.SendRequestAsync <Object>(request).Wait(); if (IsCSGO) { IsCSGO = false; po = GetHistory(client); msg_id = GetMessageId(po); buttons = GetData(); data = buttons[CSNumber]; request = new TLRequestGetBotCallbackAnswer() { Peer = peer, Data = data, MsgId = msg_id }; client.SendRequestAsync <Object>(request).Wait(); } // if (!AccInStock(GetHistory(client))) { InStock = false; System.Windows.Forms.MessageBox.Show("Temporary unavailable\nTry again later", "Not in stock", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Information); goto End; } while (!IsMedia(po)) { po = GetHistory(client); } DownloadFile(po, client); End: ; }
public async Task SendBtnCallback(int messageId, byte[] btnData) { var req = new TLRequestGetBotCallbackAnswer() { MsgId = messageId, Peer = m_InputPeer, Data = btnData, }; await client.SendRequestAsync <TLBotCallbackAnswer>(req); }
private async Task SkipSite(TLMessage message) { TLReplyInlineMarkup reply = (TLReplyInlineMarkup)message.ReplyMarkup; TLKeyboardButtonCallback skipBtn = (TLKeyboardButtonCallback)reply.Rows[1].Buttons[1]; TLRequestGetBotCallbackAnswer req = new TLRequestGetBotCallbackAnswer() { Peer = botPeer, MsgId = message.Id, Data = skipBtn.Data }; await client.SendRequestAsync <TLBotCallbackAnswer>(req); }
public async Task <bool> MessageBtnClick(TLMessage message, int Row, int Btn) { if (recording) { scripts[scripts.Count - 1].addCallbackBtnCommand(Row, Btn); } try { var user = await FindBot(CurrentChatName);//////////////////////////////////////////ReadMessageErrorHandle await ReadMessage(user, message); int ID = ((TeleSharp.TL.TLUser)user).Id; long hash = ((TeleSharp.TL.TLUser)user).AccessHash.Value; var req = new TLRequestGetBotCallbackAnswer() { MsgId = message.Id, Peer = new TLInputPeerUser { UserId = ID, AccessHash = hash }, Data = ((TeleSharp.TL.TLKeyboardButtonCallback)(((TeleSharp.TL.TLReplyInlineMarkup)message.ReplyMarkup).Rows[Row]).Buttons[Btn]).Data, }; try { await client.SendRequestAsync <Boolean>(req); } catch (Exception ex) { if (ex.Message == "AUTH_KEY_UNREGISTERED") { bool sessionRemoved = this.RemoveSession(); if (sessionRemoved) { await this.Reconnect(); } return(false); } //Ignore exception.. I did not want it, but library is too bad documented and written (for one night?) } return(true); } catch (Exception ex) { if (ex.Message == "AUTH_KEY_UNREGISTERED") { bool sessionRemoved = this.RemoveSession(); if (sessionRemoved) { await this.Reconnect(); } } return(false); } }
public static async Task PressButton(TelegramClient client, TLAbsInputPeer peer, TLMessage message, int row, int button) { var buttons = message.ReplyMarkup as TLReplyInlineMarkup; var myButton = buttons?.Rows[row].Buttons[button] as TLKeyboardButtonCallback; var tlRequestGetBotCallbackAnswer = new TLRequestGetBotCallbackAnswer { Peer = peer, Data = myButton?.Data, MsgId = message.Id }; await client.SendRequestAsync <TLBotCallbackAnswer>(tlRequestGetBotCallbackAnswer); }
public async Task <bool> SendBotButton(TLAbsInputPeer peer, byte[] Data, int messageId) { if (!IsUserAuthorized()) { throw new InvalidOperationException("Authorize user first!"); } TLRequestGetBotCallbackAnswer TLRequestGetBotCallbackAnswer = new TLRequestGetBotCallbackAnswer(); TLRequestGetBotCallbackAnswer.Peer = peer; TLRequestGetBotCallbackAnswer.Data = Data; TLRequestGetBotCallbackAnswer.MsgId = messageId; var task_send = await SendTLBotCallbackAnswer(TLRequestGetBotCallbackAnswer); return(true); }
private async Task <bool> SendTLBotCallbackAnswer(TLRequestGetBotCallbackAnswer TLRequestGetBotCallbackAnswer) { await SendRequestAsync <TLBotCallbackAnswer>(TLRequestGetBotCallbackAnswer); return(true); }