Ejemplo n.º 1
0
        // updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference;
        public async Task <TLAbsDifference> GetUpdatesDifference(int pts, int date, int qts)
        {
            var request = new TLRequestGetDifference()
            {
                pts = pts, date = date, qts = qts
            };

            return(await SendRequestAsync <TLAbsDifference>(request));
        }
Ejemplo n.º 2
0
        public async Task GetUpdates(int date, int pts, int qts)
        {
            var req = new TLRequestGetDifference()
            {
                Date = date, Pts = pts, Qts = qts
            };

            if (await telegramClient.SendRequestAsync <TLAbsDifference>(req) is TLDifference diff)
            {
                foreach (var upd in diff.NewMessages)
                {
                    offset.Result.Pts++;
                    var msg = upd as TLMessage;
                    Console.WriteLine(msg.Message);
                }
            }
            await telegramClient.SendPingAsync();
        }
Ejemplo n.º 3
0
        public async Task GetMessages(TelegramClient client)
        {
            StartBot.Enabled = false;
            StartBot.Text    = "Vykdoma...";
            runTelegramBot   = true;
            var state = await client.SendRequestAsync <TLState>(new TLRequestGetState());

            var req = new TLRequestGetDifference()
            {
                Date = state.Date, Pts = state.Pts, Qts = state.Qts
            };
            var diff = await client.SendRequestAsync <TLAbsDifference>(req) as TLDifference;

            AddLog("Laukiama telegram signalų", "", Color.Green);

            while (runTelegramBot)
            {
                state = await client.SendRequestAsync <TLState>(new TLRequestGetState());

                StartBot.BackColor = Color.Red;
                await Task.Delay(700);

                if (diff != null)
                {
                    foreach (var upd in diff.NewMessages.ToList().OfType <TLMessage>())
                    {
                        SetDataFromMessage(upd.Message.ToString());
                    }
                }
                StartBot.BackColor = Color.Green;
                await Task.Delay(5000);

                req = new TLRequestGetDifference()
                {
                    Date = state.Date, Pts = state.Pts, Qts = state.Qts
                };
                diff = await client.SendRequestAsync <TLAbsDifference>(req) as TLDifference;
            }
            StartBot.Enabled   = true;
            StartBot.Text      = "Pradėti";
            StartBot.BackColor = SystemColors.Control;
        }
Ejemplo n.º 4
0
        private async void btStart_Click(object sender, EventArgs e)
        {
            var client = new TLSharp.Core.TelegramClient(teleApi.apiId, teleApi.apiHash);
            await client.ConnectAsync();

            while (true)
            {
                var state = await client.SendRequestAsync <TLState>(new TLRequestGetState());

                var req = new TLRequestGetDifference()
                {
                    Date = state.Date, Pts = state.Pts, Qts = state.Qts
                };
                var diff = await client.SendRequestAsync <TLAbsDifference>(req) as TLDifference;

                if (diff != null)
                {
                    foreach (var upd in diff.OtherUpdates.ToList().OfType <TLUpdateNewChannelMessage>())
                    {
                        tbReceipt.Text = (upd.Message as TLMessage).Message + tbReceipt.Text;
                        //Console.WriteLine((upd.Message as TLMessage).Message);
                    }
                    foreach (var ch in diff.Chats.ToList().OfType <TLChannel>().Where(x => !x.Left))
                    {
                        var ich = new TLInputChannel()
                        {
                            ChannelId = ch.Id, AccessHash = (long)ch.AccessHash
                        };
                        var readed = new TeleSharp.TL.Channels.TLRequestReadHistory()
                        {
                            Channel = ich, MaxId = -1
                        };
                        await client.SendRequestAsync <bool>(readed);
                    }
                }
                await Task.Delay(500);
            }
        }
Ejemplo n.º 5
0
        private async Task get_updates()
        {
            while (getupdates)
            {
                var state = await Client.SendRequestAsync <TLState>(new TLRequestGetState());

                TLRequestGetDifference req = new TLRequestGetDifference();
                req.date = state.date;
                req.pts  = state.pts - 1;
                req.qts  = state.qts - 1;

                var adiff = await Client.SendRequestAsync <TLAbsDifference>(req);

                if (!(adiff is TLDifferenceEmpty))
                {
                    if (adiff is TLDifference)
                    {
                        var    diff = adiff as TLDifference;
                        string uniq = "";
                        uniq += ("chats:" + diff.chats.lists.Count);
                        uniq += (" new:" + diff.new_messages.lists.Count);
                        uniq += (" user:"******" other:" + diff.other_updates.lists.Count);

                        if (diff.new_messages.lists.Count > 0)
                        {
                            foreach (var upd in diff.new_messages.lists)
                            {
                                TLMessage msg = (upd as TLMessage);
                                uniq = msg.from_id.Value + "_" + msg.id + ": " + (msg.message);

                                if (UpdatesList.Items.IndexOf(uniq) < 0 && msg.message != "")
                                {
                                    UpdatesList.Items.Insert(0, uniq);
                                    string          replay = "";
                                    TLInputPeerUser peer   = new TLInputPeerUser();

                                    foreach (string item in ReplisBox.Items)
                                    {
                                        string[] st = item.Split('#');
                                        if (st[0] == msg.message.Trim())
                                        {
                                            if (MyDialogs.ContainsKey(msg.from_id.Value))
                                            {
                                            }
                                            else
                                            {
                                                await GetDialogs();
                                            }
                                            replay           = st[1];
                                            peer.access_hash = MyDialogs[msg.from_id.Value];
                                            peer.user_id     = msg.from_id.Value;
                                        }
                                    }


                                    if (replay != "")
                                    {
                                        await Client.SendMessageAsync(peer, replay);
                                    }
                                }
                            }
                        }
                    }
                    else if (adiff is TLDifferenceTooLong)
                    {
                        ErrorsBox.Items.Add("too long");
                        //Console.WriteLine("too long");
                    }
                    else if (adiff is TLDifferenceSlice)
                    {
                        //Console.WriteLine("slice");
                        ErrorsBox.Items.Add("slice");
                    }
                }
                //await Task.Delay(500);
            }
        }