Пример #1
0
        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);
            }
        }
Пример #2
0
        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();
                    }
                }
            }
        }
Пример #3
0
 public void Register <TMessage>(SystemBase system)
     where TMessage : Message
 {
     messageMap.Add <TMessage>(system);
     system.MessageQueue.Associate <TMessage>();
 }