public void Run() { while (true) { try { var chats = GetChannels().Result; foreach (var o in chats) { Console.WriteLine($"ChannelId : {o.Id}, Title : {o.Title}, AccessHash : {o.AccessHash}, UserName : {o.Username}"); if (o.Left) { continue; } /*// TODO : 테스트가 끝나면 지워야함 * if (o.Title == "Team IU" ) * { * continue; * }*/ if (o.Title == ForwardChannelName) { ForwardChannelId = o.Id; ForwardChannelAccessHash = o.AccessHash.Value; isReadyForward = true; continue; } if (!MessageMap.ContainsKey(o.Id)) { MessageMap.Add(o.Id, 0); } if (isReadyForward) { var messages = GetMessages(o.Id, o.AccessHash.Value, 10).Result; Forwarder.Instance.Send(messages, MessageMap, o, MessageCheckMap).Wait(); } } } catch (Exception ex) { Console.WriteLine($"Message : {ex.Message} \nStackTrace : {ex.StackTrace}"); } Thread.Sleep(2000); } }
public void Init() { var chats = GetChannels().Result; // 마지막메세지를 전송하지 않기위해 메세지 아이디를 업데이트 함. if (Configs.Instance.lastmessage_send == false) { foreach (var o in chats) { if (o.Left) { continue; } if (!MessageMap.ContainsKey(o.Id)) { MessageMap.Add(o.Id, 0); } var messages = GetMessages(o.Id, o.AccessHash.Value).Result; foreach (var message in messages) { if (message.Id > MessageMap[o.Id]) { MessageMap[o.Id] = message.Id; } } } } else { foreach (var o in chats) { if (o.Left) { continue; } // TODO : 테스트가 끝나면 지워야함 if (o.Title == "Team IU") { continue; } if (o.Title == ForwardChannelName) { ForwardChannelId = o.Id; ForwardChannelAccessHash = o.AccessHash.Value; continue; } if (!MessageMap.ContainsKey(o.Id)) { MessageMap.Add(o.Id, 0); } } foreach (var o in chats) { if (o.Left) { continue; } /* // TODO : 테스트가 끝나면 지워야함 * if (o.Title == "Team IU") * { * continue; * }*/ if (o.Title == ForwardChannelName) { ForwardChannelId = o.Id; ForwardChannelAccessHash = o.AccessHash.Value; continue; } if (!MessageMap.ContainsKey(o.Id)) { MessageMap.Add(o.Id, 0); } var messages = GetMessages(o.Id, o.AccessHash.Value, 1).Result; foreach (var message in messages) { Forwarder.Instance.Send(messages, MessageMap, o, MessageCheckMap).Wait(); } } } }
public void Register <TMessage>(SystemBase system) where TMessage : Message { messageMap.Add <TMessage>(system); system.MessageQueue.Associate <TMessage>(); }