/// <summary> /// 构造函数 /// </summary> /// <param name="id"></param> public Wx(long id) { db = new RbtDBDataContext(); lg = db.x_logon.FirstOrDefault(o => o.logon_id == id); ukey = lg.x_user.ukey; baseRequest = new BaseRequest(); wc = new Wc(); }
/// <summary> /// 开始运行 /// </summary> public void Run() { isquit = false; try { loadQrcode(); waitFor(1, 0); wxLogin(); wxInit(); wxStatusNotify(); op = new Wc(wc.Cookies, 5); lg.status = 6;//初始化完成 db.SubmitChanges(); loadContact(); } catch (Exception ex) { outLog("wx.Run->" + ex.Message); exit(1); } new Thread(o => { while (!isquit) { SyncCheck(); } }).Start(); ///加载用户图片 new Thread(o => { var hw = new Wc(wc.Cookies, 5); var haserr = false; var page = 1; while (!isquit) { haserr = false; page = 1; var cs = db.x_contact.Where(c => c.uin == user.Uin && c.headimg == null).Skip((page - 1) * 10).Take(10); foreach (var c in cs) { var rp = hw.GetFile(gateway + "/cgi-bin/mmwebwx-bin/webwxget" + (c.username[1] == '@' ? "headimg" : "icon") + "?username="******"getimg->" + c.nickname + "(" + c.contact_id + ") 获取" + (rp.err ? "失败" : "成功")); if (!rp.err) { c.headimg = "data:img/jpg;base64," + Convert.ToBase64String(rp.data as byte[]); } else { haserr = true; break; } page++; } ; try { db.SubmitChanges(); } catch { } if (haserr) { Thread.Sleep(5 * 60 * 1000); } else { Thread.Sleep(5 * 1000); } if (db.x_contact.Count(c => c.uin == user.Uin && c.headimg == null) == 0) { outLog("图片同步完成"); break; } } ; }).Start(); }