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:
            ;
        }
Exemple #2
0
 public async Task SendBtnCallback(int messageId, byte[] btnData)
 {
     var req = new TLRequestGetBotCallbackAnswer()
     {
         MsgId = messageId,
         Peer  = m_InputPeer,
         Data  = btnData,
     };
     await client.SendRequestAsync <TLBotCallbackAnswer>(req);
 }
Exemple #3
0
 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);
 }
Exemple #4
0
        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);
            }
        }
Exemple #5
0
        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);
        }