bool QQWork.Init(QQBaseClient _QQEntity, EventMessage _EventCallback, string _MsgHeader) { MsgHeader = _MsgHeader; EventCallBack = _EventCallback; QQEntity = _QQEntity; //登录 Log("检查登陆..."); bool state = QQEntity.CheckLogin(); if (!state) { Log("已过期,重新登陆"); state = QQEntity.Login(); //刷新资料 state = QQEntity.CheckLogin(); } Log("登录:" + state); return(state); }
bool QQWork.Init(QQBaseClient _QQEntity, EventMessage _EventCallback, string _MsgHeader) { MsgHeader = _MsgHeader; EventCallBack = _EventCallback; QQEntity = _QQEntity; //登录 if (!QQEntity.CheckLogin()) { Log("开始登录..."); bool state = QQEntity.Login(); //刷新资料 state &= QQEntity.CheckLogin(); Log("登录:" + state); return(state); } else { return(true); } }
public static void WorkFunc() { Dictionary <string, string> qqlist = new Dictionary <string, string>(); try { string filepath = Application.StartupPath + "\\qq.txt"; JArray jarr = JArray.Parse(File.ReadAllText(filepath)); for (int i = 0; i < jarr.Count; i++) { JArray qqinfo = (JArray)jarr[i]; string qq = (string)qqinfo[0]; string pwd = (string)qqinfo[1]; if (qqlist.ContainsKey(qq)) { qqlist[qq] = pwd; } else { qqlist.Add(qq, pwd); } Console.WriteLine("add:" + qq); } } catch { MessageBox.Show("读取qq.txt错误"); return; } string file = File.ReadAllText("qq.txt"); List <QQBaseClient> entitylist = new List <QQBaseClient>(); List <QQWork> worklist = new List <QQWork>() { new QQLibrary.Platforms.DaoJu(), new QQLibrary.Platforms.xinyue(), //new QQLibrary.Platforms.DNF助手() }; foreach (var kv in qqlist) { //新建QQ QQBaseClient qq = new QQBaseClient(kv.Key, kv.Value); //放入list entitylist.Add(qq); } DateTime?last = null; int recount = 1; while (true) { lock (locker) { if (end) { Console.WriteLine("正在退出..."); break; } } //每天晚上11:30跑一边 if ((DateTime.Now - LastDay).Hours >= 23 && DateTime.Now.Hour == 23 && DateTime.Now.Minute >= 30) { LastDay = DateTime.Now; run_now = true; } else if (last != null && (DateTime.Now - (DateTime)last).Hours < 8) { //八小时一次 Thread.Sleep(1000); lock (locker) { if (run_now) { run_now = false; } else { continue; } } } last = DateTime.Now; Console.WriteLine("=============第" + recount++ + "次执行============="); int errcount = 0; for (int i = 0; i < entitylist.Count; i++) { QQBaseClient qq = entitylist[i]; for (int j = 0; j < worklist.Count; j++) { //新建QQ工作接口 Type type = worklist[j].GetType(); QQWork pt = (QQWork)type.GetConstructor(new Type[0]).Invoke(null); //使用QQ执行功能模块 //1.初始化 bool state = pt.Init(entitylist[i], Console.WriteLine, "[" + qq.QQ + "]"); if (!state) { Console.WriteLine("[" + qq.QQ + "]初始化失败"); errcount++; continue; } Console.WriteLine("[" + qq.QQ + "]昵称:" + qq.Nick + " | VIP等级:" + qq.VIPLevel); //2.执行功能模块 pt.Excute(); //3.取出信息 string str = pt.ToString(); } } Console.WriteLine("本次执行结束,共" + entitylist.Count + "个账号,其中" + errcount + "个账号执行失败"); Console.WriteLine("下次执行时间: " + ((DateTime)last).AddHours(8).ToString("yyyy-MM-dd HH:mm:ss")); Console.WriteLine("(回车键=立即执行)"); } }