public void AddAndFilterMessages(TLAbsMessages msgs) { try { all_messages = (TLMessages)msgs; for (int i = 0; i < all_messages.Messages.Count; i++) { if (all_messages.Messages[i].ToString() == "TeleSharp.TL.TLMessage") { var message = (TLMessage)all_messages.Messages[i]; string tmp_msg = message.Message.ToString(); if (tmp_msg.Contains("instagram.com")) { filtered_messages.Add(message); } } else { //MessageBox.Show("To MessageService - pierdole to..."); } } } catch (Exception ex) { System.Diagnostics.Debug.Write("sad " + ex.Message.ToString()); } }
public TelegramMessages(TLMessages messages) { Messages = messages.Messages; Chats = messages.Chats; Users = messages.Users; Count = Messages.Count; }
//public virtual async Task<string> GetLastMessageFromUser(string sUserName) //{ // string sResult; // var client = new TLSharp.Core.TelegramClient(apiId, apiHash); // await client.ConnectAsync(); // var normalizedUser = (sUserName.StartsWith("@") ? // sUserName.Substring(1, sUserName.Length - 1) : // sUserName).ToLower(); // var dialogs = (TLDialogs)await client.GetUserDialogsAsync(); // var user = dialogs.Users // .Where(x => x.GetType() == typeof(TLUser)) // .OfType<TLUser>() // .FirstOrDefault(x => x.Username != null && x.Username.ToLower() == normalizedUser); // TLAbsMessages tlAbsMessages = await client.GetHistoryAsync(new TLInputPeerUser() { // UserId = user.Id, // AccessHash = user.AccessHash.Value // }, 0, -1, 100); // TLMessages tlMessages = (TLMessages)tlAbsMessages; // TLMessage lastmessage = (TLMessage)tlMessages.Messages[0]; // sResult = lastmessage.FromId.ToString() + ":" + lastmessage.Message; // return sResult; //} public virtual async Task <TLMessage> GetLastMessageFromUser(string sUserName) { TLMessage lastmessage = null; var client = new TLSharp.Core.TelegramClient(apiId, apiHash); await client.ConnectAsync(); var normalizedUser = (sUserName.StartsWith("@") ? sUserName.Substring(1, sUserName.Length - 1) : sUserName).ToLower(); var dialogs = (TLDialogs)await client.GetUserDialogsAsync(); var user = dialogs.Users .Where(x => x.GetType() == typeof(TLUser)) .OfType <TLUser>() .FirstOrDefault(x => x.Username != null && x.Username.ToLower() == normalizedUser); TLAbsMessages tlAbsMessages = await client.GetHistoryAsync(new TLInputPeerUser() { UserId = user.Id, AccessHash = user.AccessHash.Value }, 0, -1, 100); if (tlAbsMessages.GetType() == typeof(TLMessagesSlice)) { var castMessages = (TLMessagesSlice)tlAbsMessages; lastmessage = (TLMessage)castMessages.Messages[0]; } else if (tlAbsMessages.GetType() == typeof(TLMessages)) { TLMessages tlMessages = (TLMessages)tlAbsMessages; lastmessage = (TLMessage)tlMessages.Messages[0]; } return(lastmessage); }
public async Task <MTObject> Handle_Deperacted(IMessageContext <TLGetHistory> context) { await Task.CompletedTask; var chats = new TLVector <TLAbsChat>(); var chat = new NET.Schema.Layer72.TLChat { Title = "draft12", Flags = 0, Id = 101, admin = true, Photo = new TLChatPhotoEmpty { } //Photo = new TLChatPhoto { // Flags = 0, // HasVideo = false, // PhotoBig = new TLFileLocationToBeDeprecated { }, // PhotoSmall = new TLFileLocationToBeDeprecated { } //} }; chats.Add(chat); var message = new MTProto.NET.Schema.Layer72.TLMessage { Message = "hi therexxx", ToId = new TLPeerUser { UserId = 12, } }; var messages = new TLVector <TLAbsMessage> { }; messages.Add(message); var users = new TLVector <TLAbsUser>() { }; //users.Add(new TLUserEmpty { }); users.Add(new NET.Schema.Layer72.TLUser { Id = 1, FirstName = "Ahmad" }); var result = new TLMessages() { Messages = messages, // new TLVector<TLAbsMessage> { }, Chats = chats, Users = users }; return(result); }
public GroupMessages(int chatId, string chatName, Type dialogType) { all_messages = new TLMessages(); filtered_messages = new List <TLMessage>(); }
public async Task <MTObject> Handle(IMessageContext <TLGetHistory> context) { await Task.CompletedTask; MTObject result = null; try { var chats = new TLVector <TLAbsChat>(); var messages = new TLVector <TLAbsMessage>(); var users = new TLVector <TLAbsUser>(); var session = this.manager.GetSession(context.AuthKey()); if (session == null) { throw new Exception("Session not found."); } var request = context.Body; if (request == null) { throw new ArgumentException(nameof(TLGetHistory)); } if (request.Peer == null) { throw new ArgumentException(nameof(TLGetHistory.Peer)); } if (request.Peer is TLInputPeerUser) { var _messages = (await session.ChatManager.GetPrivateChatMessages(session.GetUserId(), (request.Peer as TLInputPeerUser).UserId)) .OrderByDescending(x => x.Data.Date); _messages.Select(x => new NET.Schema.Layer72.TLMessage { Message = x.Data.Message, FromId = x.Data.FromId, Id = x.Data.Id, Date = x.Data.Date, ToId = new TLPeerUser { UserId = x.Data.ToPeerId, } }).ToList().ForEach(x => messages.Add(x)); foreach (var m in _messages) { if (m.Data.FromId.HasValue && m.Data.FromId != session.GetUserId() && !users.Any(x => (x as MTProto.NET.Schema.Layer72.TLUser)?.Id == m.Data.FromId)) { using (var user_store = session.Services.Store().GetUserStore()) { var __user = await user_store.GetUserById(m.Data.FromId.Value); if (__user != null) { users.Add(new MTProto.NET.Schema.Layer72.TLUser { Id = __user.Id, FirstName = string.IsNullOrWhiteSpace(__user.FirstName)? $"{__user.Id}":__user.FirstName, Phone = __user.Phone, }); } } } } } else { throw new NotImplementedException(); } //users.Add(new NET.Schema.Layer72.TLUser //{ // Id = session.GetUserId(), // FirstName = "Babak", // Self = true //}); result = new TLMessages() { Messages = messages, // new TLVector<TLAbsMessage> { }, Chats = chats, Users = users }; } catch (Exception err) { this.logger.LogError( $"An error occured while trying to handle GetHistoryRequest. Error:\r\n{err.GetBaseException().Message}"); throw; } return(result); }
private async Task GetMessages() { try { TLAbsDialogs Dialogs = await Client.GetUserDialogsAsync(); TLDialogs Dlogs = Dialogs as TLDialogs; int i = 0; foreach (TLUser user in Dlogs.users.lists) { TLAbsMessages messages = null; string type = (Dlogs.dialogs.lists[i].peer.GetType() + "").Replace("TeleSharp.TL.", ""); string peerID = ""; //MessageBox.Show(type); switch (type) { case "TLPeerUser": TLInputPeerUser ipeer = new TLInputPeerUser(); ipeer.access_hash = (long)user.access_hash; ipeer.user_id = user.id; peerID = user.id + ""; messages = await Client.GetHistoryAsync(ipeer, 0, 999999, 1); break; case "TLPeerChannel": break; case "TLPeerChat": break; case "TLPeerNotifyEventsAll": break; case "TLPeerNotifyEventsEmpty": break; case "TLPeerNotifySettings": break; case "TLPeerNotifySettingsEmpty": break; case "TLPeerSettings": break; default: break; } if (messages != null) { try { TLMessages msgs = messages as TLMessages; TLMessagesSlice msgs2 = messages as TLMessagesSlice; if (msgs != null) { foreach (var msg in msgs.messages.lists) { string uniq = ""; TLMessage msgg = msg as TLMessage; if (msgg != null) { uniq = peerID + "_" + msgg.id + "# " + msgg.message; if (UpdatesList.Items.IndexOf(uniq) < 0) { UpdatesList.Items.Add(uniq); } } } } else if (msgs2 != null) { foreach (var msg in msgs2.messages.lists) { string uniq = ""; TLMessage msgg = msg as TLMessage; if (msgg != null) { uniq = peerID + "_" + msgg.id + "# " + msgg.message; if (UpdatesList.Items.IndexOf(uniq) < 0) { UpdatesList.Items.Add(uniq); } } } } } catch (Exception ex) { ErrorsBox.Items.Add(ex.Message); } } i++; } //await GetUpdates(); } catch (Exception ex) { ErrorsBox.Items.Add(ex.Message); } }
private async WTask.Task GetMessages(int uID, long uAccess, string type = "chat") { Loading(null, true); TLRequestMessagesGetHistory reqH = new TLRequestMessagesGetHistory(); reqH.setAddOffset(0); reqH.setLimit(100); reqH.setOffsetId(0); reqH.setOffsetDate(0); reqH.setMinId(0); reqH.setMaxId(999999); TLInputPeerUser upeer = new TLInputPeerUser(); TLInputPeerChat cpeer = new TLInputPeerChat(); TLInputPeerChannel chpeer = new TLInputPeerChannel(); switch (type.ToLower()) { case "user": upeer = new TLInputPeerUser(); upeer.setAccessHash(uAccess); upeer.setUserId(uID); reqH.setPeer(upeer); break; case "chat": cpeer = new TLInputPeerChat(); cpeer.setChatId(uID); reqH.setPeer(cpeer); break; case "channel": chpeer = new TLInputPeerChannel(); chpeer.setAccessHash(uAccess); chpeer.setChannelId(uID); reqH.setPeer(chpeer); break; default: break; } //var res = NewApi.Api().doRpcCall(reqH); var res = await WTask.Task.Run(() => NewApi.Api().doRpcCall(reqH)); string notify = ""; if (res == null) { notify = "درخواست نتیجه ای نداشت!"; //NotifyBar.ForeColor = Color.Orange; } else { MessagesDGV.Rows.Clear(); if (res.GetType() == typeof(TLMessages)) { try { TLMessages Messages = (TLMessages)res; foreach (var msg in Messages.getMessages()) { try { TLMessage message = (TLMessage)msg; MessagesDGV.Rows.Add(message.getDate(), message.getId(), message.getMessage(), uID, uAccess); } catch { } } } catch { } } else if (res.GetType() == typeof(TLMessagesSlice)) { try { TLMessagesSlice Messages = (TLMessagesSlice)res; foreach (var msg in Messages.getMessages()) { try { TLMessage message = (TLMessage)msg; MessagesDGV.Rows.Add(message.getDate(), message.getId(), message.getMessage(), uID, uAccess); } catch { } } } catch { } } else if (res.GetType() == typeof(TLChannelMessages)) { TLChannelMessages Messages = (TLChannelMessages)res; foreach (var msg in Messages.getMessages()) { try { TLMessage message = (TLMessage)msg; MessagesDGV.Rows.Add(message.getDate(), message.getId(), message.getMessage(), uID, uAccess); } catch { } } } } Loading(null, false, notify); }