Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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);
                }
            }
        }