public BitmapImage this[TLChatForbidden forbiddenChat] { get { if (forbiddenChat == null) { return(null); } if (_context.TryGetValue(forbiddenChat.Title, out Tuple <TLBitmapSource, WeakReference <BitmapImage> > reference) && reference.Item2.TryGetTarget(out BitmapImage target)) { return(target); } var bitmap = new TLBitmapSource(forbiddenChat); _context[forbiddenChat.Title] = new Tuple <TLBitmapSource, WeakReference <BitmapImage> >(bitmap, new WeakReference <BitmapImage>(bitmap.Image)); return(bitmap.Image); } }
//public virtual async Task AuthUser() //{ // var client = NewClient(); // await client.ConnectAsync(); // var hash = await client.SendCodeRequestAsync(NumberToAuthenticate); // var code = CodeToAuthenticate; // you can change code in debugger too // if (String.IsNullOrWhiteSpace(code)) // { // throw new Exception("CodeToAuthenticate is empty in the app.config file, fill it with the code you just got now by SMS/Telegram"); // } // TLUser user = null; // try // { // user = await client.MakeAuthAsync(NumberToAuthenticate, hash, code); // } // catch (CloudPasswordNeededException ex) // { // var passwordSetting = await client.GetPasswordSetting(); // var password = PasswordToAuthenticate; // user = await client.MakeAuthWithPasswordAsync(passwordSetting, password); // } // catch (InvalidPhoneCodeException ex) // { // throw new Exception("CodeToAuthenticate is wrong in the app.config file, fill it with the code you just got now by SMS/Telegram", // ex); // } // Assert.IsNotNull(user); // Assert.IsTrue(client.IsUserAuthorized()); //} public async Task <string> button3_ClickAsync() { try { bool stop = true; int count = 2; client = new TelegramClient(apiId, apiHash); await client.ConnectAsync(); //var hash = await client.SendCodeRequestAsync("+79179037140"); //var code = "72772"; //var user = await client.MakeAuthAsync("+79179037140", hash, code); // DownloadFileFromWrongLocationTest(); sb.Append("#\tDate\tTime\tMID\tTUID\tText" + Environment.NewLine); TLDialogsSlice dialogs = (TLDialogsSlice)await client.GetUserDialogsAsync(); //Получаем список чатов(диалогов) // var tempDialogsChats = dialogs.Chats; // выгружаем полученные список чатов foreach (var element in dialogs.Chats) { if (element is TLChat) { TLChat chats = element as TLChat; listChats += $"Название {chats.Title} ID чата {chats.Id} " + Environment.NewLine; } if (element is TLChannel) { TLChannel chats = element as TLChannel; listChats += $"Название {chats.Title} ID чата {chats.Id} " + Environment.NewLine; } if (element is TLChatForbidden) { TLChatForbidden chats = element as TLChatForbidden; listChats += $"Название {chats.Title} ID чата {chats.Id} " + Environment.NewLine; } //if (chats is TLDialogS) // continue; } SaveTextFile(listChats, "Список чатов.txt"); TLChannel chat = dialogs.Chats.Where(c => c.GetType() == typeof(TLChannel)).Cast <TLChannel>().FirstOrDefault(c => c.Id == VKFID); //Выбираем нужный нам чат //if (chat == null) // { // } TLInputPeerChannel inputPeer = new TLInputPeerChannel() { ChannelId = chat.Id, AccessHash = (long)chat.AccessHash }; while (stop) { if (n > count) { stop = false; } try { TLChannelMessages res = await client.SendRequestAsync <TLChannelMessages> //получаем список все собщений из выбранного чата (new TLRequestGetHistory() { Peer = inputPeer, Limit = 1000, AddOffset = offset, OffsetId = 0 }); var msgs = res.Messages; // выгружаем список сообщений count = res.Count++; if (res.Count > offset) { offset += msgs.Count; foreach (TLAbsMessage msg in msgs) { if (msg is TLMessage) { TLMessage message = msg as TLMessage; sb.Append(n.ToString() + "\t" + ConvertFromUnixTimestamp(message.Date).ToLocalTime().ToString("dd'.'MM'.'yyyy") + "\t" + ConvertFromUnixTimestamp(message.Date).ToLocalTime().ToString("HH':'mm':'ss") + "\t" + message.Id + "\t" + message.FromId + "\t" + message.Message + Environment.NewLine); } if (msg is TLMessageService) { continue; } n++; } SaveTextFile(sb.ToString()); SaveTextFileBuilder(sb); Thread.Sleep(22000); //Thread.Sleep(22000); //to avoid TelegramFloodException 36,67 минут https://www.yandex.ru/search/?lr=43&offline_search=1&text=%D0%BA%D0%B0%D0%BB%D1%8C%D0%BA%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80%20%D1%81%D0%B5%D0%BA%D1%83%D0%BD%D0%B4%20%D0%B2%20%D0%BC%D0%B8%D0%BD%D1%83%D1%82%D1%8B } else { break; } } catch (Exception ex) { SaveTextFile("Ошибка +" + ex, @"LogError.txt"); return(ex.Message); // MessageBox.Show(ex.Message); // break; } finally { await Task.Delay(22000); //чтобы обойти TelegramFloodException SaveTextFile("Завершение работы", "Завершение работы.txt"); } } return(listChats); //MessageBox.Show("Done"); } catch (Exception ex) { SaveTextFile("Ошибка +" + ex, @"LogError.txt"); return(ex.ToString()); } }