Example #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("[QQ]配置初始化...");
            session = new MiraiHttpSession();
            if (!File.Exists("mirai.conf"))
            {
                JObject jb = new JObject();
                jb.Add("host", "127.0.0.1");
                jb.Add("port", 1234);
                jb.Add("auth", "passw0rd");
                File.WriteAllText("mirai.conf", jb.ToString());
            }
            string  config = File.ReadAllText("mirai.conf");
            JObject conf   = JObject.Parse(config);

            options = new MiraiHttpSessionOptions(conf.Value <string>("host"), conf.Value <int>("port"), conf.Value <string>("auth"));
            Console.WriteLine("[QQ]等待Mirai...");
            session.ConnectAsync(options, qq).Wait();
            session.DisconnectedEvt   += Session_DisconnectedEvt;
            session.FriendMessageEvt  += Session_FriendMessageEvt;
            session.NewFriendApplyEvt += Session_NewFriendApplyEvt;
            Console.WriteLine("[QQ]已连接");
            SignQueueHandler.session = session;
            if (File.Exists("./database.bin"))
            {
                Console.WriteLine("[Queue]加载保存的队列...");
                try
                {
                    SignQueueHandler.Load();
                    Console.WriteLine("[Queue]已加载" + SignQueueHandler.queue.Count + "个用户数据");
                }
                catch (Exception err)
                {
                    Console.WriteLine("[Queue]加载失败:" + err.Message + "\n" + err.StackTrace);
                }
            }
            while (true)
            {
                try
                {
                    DateTime start = DateTime.Now;
                    Console.WriteLine("[Timer] 计时器开始:" + start);
                    SignQueueHandler.__ProceedQueue();
                    SignQueueHandler.Save();
                    Console.WriteLine("[Timer] 计时器结束:" + DateTime.Now + ", 用时" + (DateTime.Now - start).Seconds + "秒");
                    Thread.Sleep(10 * 60 * 1000);
                }
                catch (Exception err)
                {
                    Console.WriteLine("[EXCEPTION] 消息循环内出现意外错误");
                    DumpError(err);
                }
            }
        }