private async Task AddMessagesToExcel() { for (int i = 1; i <= Iterations; i++) { lblWorking.Text = String.Format("Adding messages...x{0}{1}", i, i > 5 ? "\n holy shiit :P" : ""); var history = await mClient.GetMessages(Enumerable.Range(mStartId, MsgCount).ToList()); if (history.Count <= 0) { break; } foreach (var msg in history) { Type t = msg.GetType(); if (t == typeof(MessageServiceConstructor)) { continue; } else if (t == typeof(MessageForwardedConstructor)) { MessageForwardedConstructor m = (MessageForwardedConstructor)msg; var def = new SimpleUser(m.fwd_from_id); int fwd_from_user = mUsers.BinarySearch(def); var sm = await ToSimpleMessage(m.id, m.to_id, m.from_id, m.date, m.output, Utils.Combine(Utils.Forwarded(m.message, m.fwd_date, fwd_from_user >= 0 ? mUsers[fwd_from_user] : def), m.media)); xl.AddMessage(sm); } else if (t == typeof(MessageEmptyConstructor)) { continue; } else if (t == typeof(MessageConstructor)) { MessageConstructor m = (MessageConstructor)msg; var sm = await ToSimpleMessage(m.id, m.to_id, m.from_id, m.date, m.output, Utils.Combine(m.message, m.media)); xl.AddMessage(sm); } } UpdateStartIdFromExcel(); } xl.Close(); Close(); }
private async Task <List <SimpleUser> > GetUsers() { var ids = (await mClient.GetContacts()).Cast <ContactConstructor>(); var ius = ids.Select(r => TL.inputUserContact(r.user_id)).ToList(); var users = new List <SimpleUser>(ius.Count); foreach (var user in ius) { var su = new SimpleUser(await mClient.GetFullUser(user)); if (su.Self) { mSelfUserId = su.Id; } users.Add(su); } users.Sort(); return(users); }
internal static string Forwarded(string message, int fwd_date, SimpleUser fwd_from_user) { return(String.Format("<Quoted message by {0} on {1}>\n{2}", fwd_from_user.Name, FromUnixTime(fwd_date).ToShortDateString(), message)); }