private void SynchronizeGroups() { List <WeChatGroup> allGroups = new List <WeChatGroup>(); var allAccounts = AccountInfoAdapter.Instance.LoadAll(); foreach (var account in allAccounts) { WeChatRequestContext.Current.LoginInfo = WeChatHelper.ExecLogin(account.UserID, account.Password); Thread.Sleep(1000); WeChatGroupCollection groups = WeChatHelper.GetAllGroups(WeChatRequestContext.Current.LoginInfo); Thread.Sleep(1000); foreach (var group in groups) { group.AccountID = account.AccountID; allGroups.Add(group); } } foreach (var group in allGroups) { WeChatGroupAdapter.Instance.Update(group); } }
public static void Output(this WeChatGroupCollection groups) { foreach (WeChatGroup group in groups) { Console.WriteLine("Group ID: {0}, Name: {1}, Member Count: {2}", group.GroupID, group.Name, group.Count); } }
protected override void ProcessResponseText(string responseText) { Regex GroupRex = new Regex(@"(?<=""groups"":).*(?=\}\).groups)"); MatchCollection mcGroup = GroupRex.Matches(responseText); WeChatGroupCollection result = new WeChatGroupCollection(); if (mcGroup.Count > 0) result = JSONSerializerExecute.Deserialize<WeChatGroupCollection>(mcGroup[0].Value); else result = new WeChatGroupCollection(); this._AllGroups = result; }
private void SynchronizeGroupsAndMembersToWeChat() { var allGroups = ConditionalGroupAdapter.Instance.LoadAll(); var accounts = AccountInfoAdapter.Instance.LoadAll(); WeChatGroupCollection weChatGroups = WeChatGroupAdapter.Instance.LoadAll(); foreach (var account in accounts) { WeChatRequestContext.Current.LoginInfo = WeChatHelper.ExecLogin(account.UserID, account.Password); Thread.Sleep(1000); foreach (var group in allGroups) { var fakeIDs = WeChatFriendAdapter.Instance.GetFakeIDsByLocalGroupID(group.GroupID).ToArray(); //找到本组里成员的fakeID var matchedGroup = weChatGroups.Find(p => p.Name == group.Name && p.AccountID == WeChatRequestContext.Current.LoginInfo.AccountID); int groupID = 0; if (matchedGroup == null) { var modifiedGroup = WeChatHelper.AddGroup(group.Name, WeChatRequestContext.Current.LoginInfo); Thread.Sleep(1000); var newGroup = new WeChatGroup() { AccountID = account.AccountID, GroupID = modifiedGroup.GroupId, Name = group.Name, Count = modifiedGroup.MemberCnt }; WeChatGroupAdapter.Instance.Update(newGroup); groupID = modifiedGroup.GroupId; } else { groupID = matchedGroup.GroupID; } if (fakeIDs.Length > 0) { WeChatHelper.ChangeFriendsGroup(groupID, fakeIDs, WeChatRequestContext.Current.LoginInfo); Thread.Sleep(1000); } } } }
protected override void ProcessResponseText(string responseText) { Regex GroupRex = new Regex(@"(?<=""groups"":).*(?=\}\).groups)"); MatchCollection mcGroup = GroupRex.Matches(responseText); WeChatGroupCollection result = new WeChatGroupCollection(); if (mcGroup.Count > 0) { result = JSONSerializerExecute.Deserialize <WeChatGroupCollection>(mcGroup[0].Value); } else { result = new WeChatGroupCollection(); } this._AllGroups = result; }
public override void Execute(string argument) { WeChatGroupCollection groups = WeChatHelper.GetAllGroups(WeChatRequestContext.Current.LoginInfo); groups.Output(); }
private void Synchronize() { try { ProcessProgress.Current.RegisterResponser(SubmitButtonProgressResponser.Instance); List <WeChatGroup> allGroups = new List <WeChatGroup>(); if (ddlAccount.SelectedIndex == 0) { var allAccounts = AccountInfoAdapter.Instance.LoadAll(); foreach (var account in allAccounts) { ProcessProgress.Current.StatusText = string.Format("正在准备帐号\"{0}\"的数据...", account.UserID); ProcessProgress.Current.Response(); WeChatRequestContext.Current.LoginInfo = WeChatHelper.ExecLogin(account.UserID, account.Password); Thread.Sleep(1000); WeChatGroupCollection groups = WeChatHelper.GetAllGroups(WeChatRequestContext.Current.LoginInfo); Thread.Sleep(1000); foreach (var group in groups) { group.AccountID = account.AccountID; allGroups.Add(group); } } } else { var account = AccountInfoAdapter.Instance.Load(p => p.AppendItem("AccountID", ddlAccount.SelectedValue)).FirstOrDefault(); WeChatRequestContext.Current.LoginInfo = WeChatHelper.ExecLogin(account.UserID, account.Password); Thread.Sleep(1000); WeChatGroupCollection groups = WeChatHelper.GetAllGroups(WeChatRequestContext.Current.LoginInfo); foreach (var group in groups) { group.AccountID = account.AccountID; allGroups.Add(group); } ProcessProgress.Current.Response(); } ProcessProgress.Current.MaxStep = allGroups.Count; ProcessProgress.Current.StatusText = "开始同步..."; ProcessProgress.Current.Response(); foreach (var group in allGroups) { WeChatGroupAdapter.Instance.Update(group); ProcessProgress.Current.Increment(); ProcessProgress.Current.Response(); } ProcessProgress.Current.StatusText = ""; ProcessProgress.Current.CurrentStep = 0; ProcessProgress.Current.Response(); } catch (System.Exception ex) { WebUtility.ResponseShowClientErrorScriptBlock(ex); } finally { this.Response.Write(MCS.Web.WebControls.SubmitButton.GetResetAllParentButtonsScript(true)); this.Response.End(); } }
private void SynchronizeToWeChat() { try { ProcessProgress.Current.RegisterResponser(SubmitButtonProgressResponser.Instance); var allGroups = ConditionalGroupAdapter.Instance.LoadAll(); var accounts = AccountInfoAdapter.Instance.LoadAll(); WeChatGroupCollection weChatGroups = WeChatGroupAdapter.Instance.LoadAll(); ProcessProgress.Current.MaxStep = allGroups.Count * accounts.Count; ProcessProgress.Current.CurrentStep = 0; ProcessProgress.Current.StatusText = "开始同步..."; ProcessProgress.Current.Response(); foreach (var account in accounts) { WeChatRequestContext.Current.LoginInfo = WeChatHelper.ExecLogin(account.UserID, account.Password); Thread.Sleep(1000); foreach (var group in allGroups) { var fakeIDs = WeChatFriendAdapter.Instance.GetFakeIDsByLocalGroupID(group.GroupID).ToArray(); //找到本组里成员的fakeID var matchedGroup = weChatGroups.Find(p => p.Name == group.Name && p.AccountID == WeChatRequestContext.Current.LoginInfo.AccountID); int groupID = 0; if (matchedGroup == null) { var modifiedGroup = WeChatHelper.AddGroup(group.Name, WeChatRequestContext.Current.LoginInfo); var newGroup = new WeChatGroup() { AccountID = account.AccountID, GroupID = modifiedGroup.GroupId, Name = group.Name, Count = modifiedGroup.MemberCnt }; WeChatGroupAdapter.Instance.Update(newGroup); Thread.Sleep(1000); groupID = modifiedGroup.GroupId; } else { groupID = matchedGroup.GroupID; } if (fakeIDs.Length > 0) { WeChatHelper.ChangeFriendsGroup(groupID, fakeIDs, WeChatRequestContext.Current.LoginInfo); } ProcessProgress.Current.Increment(); ProcessProgress.Current.StatusText = string.Format("帐号\"{0}\",同步组\"{1}\"完成", account.UserID, group.Name); ProcessProgress.Current.Response(); Thread.Sleep(1000); } } ProcessProgress.Current.StatusText = string.Format("同步完成"); ProcessProgress.Current.Response(); Thread.Sleep(1000); } catch (Exception ex) { WebUtility.ResponseShowClientErrorScriptBlock(ex); } finally { this.Response.Write(SubmitButton.GetResetAllParentButtonsScript(true)); this.Response.End(); } }