// 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)); }
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(); }
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; }
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); } }
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); } }