/// <summary> /// Get the QQ discussion group list /// </summary> /// <param name="isDiscussionGroupAccountDetailedInfo"></param> /// <returns></returns> public List <DiscussionAccount> GetDiscussionGroupList(bool isDiscussionGroupAccountDetailedInfo = true) { string url = "http://s.web2.qq.com/api/get_discus_list?clientid=53999199&psessionid=#{psessionid}&vfwebqq=#{vfwebqq}&t=#{t}".Replace("#{psessionid}", smartQQ.PSessionId).Replace("#{vfwebqq}", smartQQ.VFWebQQ).Replace("#{t}", HTTP.AID_TimeStamp()); string dat = HTTP.Get(url, "http://d1.web2.qq.com/proxy.html?v=20151105001&callback=1&id=2"); Discussions disscuss = (Discussions)JsonConvert.DeserializeObject(dat, typeof(Discussions)); smartQQ.DiscussionAccounts = new List <DiscussionAccount>(); if (disscuss.result != null) { foreach (var discussion in disscuss.result.dnamelist) { DiscussionAccount discussionAccount = new DiscussionAccount(); discussionAccount.Did = discussion.did; discussionAccount.Name = discussion.name; smartQQ.DiscussionAccounts.Add(discussionAccount); } } if (isDiscussionGroupAccountDetailedInfo) { foreach (var discussion in smartQQ.DiscussionAccounts) { LoadDiscussionAccountDetailedInfo(discussion); } } return(smartQQ.DiscussionAccounts); }
/// <summary> /// Get the QQ discussion group member profile /// </summary> /// <param name="discussionAccount"></param> private void LoadDiscussionAccountDetailedInfo(DiscussionAccount discussionAccount) { string url = "http://d1.web2.qq.com/channel/get_discu_info?did=#{discuss_id}&psessionid=#{psessionid}&vfwebqq=#{vfwebqq}&clientid=53999199&t=#{t}".Replace("#{t}", HTTP.AID_TimeStamp()); url = url.Replace("#{discuss_id}", discussionAccount.Did).Replace("#{psessionid}", smartQQ.PSessionId).Replace("#{vfwebqq}", smartQQ.VFWebQQ); string dat = HTTP.Get(url, "http://d1.web2.qq.com/proxy.html?v=20151105001&callback=1&id=2"); DiscussionInfo discussionInfo = (DiscussionInfo)JsonConvert.DeserializeObject(dat, typeof(DiscussionInfo)); Dictionary <string, string> MemberList = new Dictionary <string, string>(); if (discussionInfo.result.mem_info != null) { foreach (var memberInfo in discussionInfo.result.mem_info) { MemberList.Add(memberInfo.uin, memberInfo.nick); } } Dictionary <string, string> MemberStatusList = new Dictionary <string, string>(); if (discussionInfo.result.mem_status != null) { foreach (var status in discussionInfo.result.mem_status) { MemberStatusList.Add(status.uin, status.status); } } if (discussionInfo.result.info.mem_list != null) { discussionAccount.Members = new List <DiscussionMember>(); foreach (var member in discussionInfo.result.info.mem_list) { DiscussionMember discussionMember = new DiscussionMember(); discussionMember.Ruin = member.ruin; discussionMember.Uin = member.mem_uin; discussionMember.Name = MemberList.ContainsKey(discussionMember.Uin) ? MemberList[discussionMember.Uin] : ""; discussionMember.Status = MemberStatusList.ContainsKey(discussionMember.Uin) ? MemberStatusList[discussionMember.Uin] : ""; discussionAccount.Members.Add(discussionMember); } } }