Example #1
0
        /// <summary>
        /// 获取匿名信息
        /// </summary>
        /// <param name="source">匿名参数</param>
        /// <returns></returns>
        public GroupAnonymous GetAnonymous(string source)
        {
            UnPack         unPack    = new UnPack(Convert.FromBase64String(source));
            GroupAnonymous anonymous = new GroupAnonymous();

            anonymous.Id       = unPack.GetInt64();
            anonymous.CodeName = unPack.GetString(Encoding.GetEncoding("GB18030"));
            anonymous.Token    = unPack.GetToken();
            return(anonymous);
        }
Example #2
0
        /// <summary>
        /// 获取群文件
        /// </summary>
        /// <param name="source">群文件参数</param>
        /// <returns></returns>
        public GroupFile GetFile(string source)
        {
            UnPack    unPack = new UnPack(Convert.FromBase64String(source));
            GroupFile file   = new GroupFile();

            file.Id    = unPack.GetString(Encoding.GetEncoding("GB18030"));
            file.Name  = unPack.GetString(Encoding.GetEncoding("GB18030"));
            file.Size  = unPack.GetInt64();
            file.Busid = Convert.ToInt32(unPack.GetInt64());
            return(file);
        }
Example #3
0
        /// <summary>
        /// 获取群成员列表
        /// </summary>
        /// <param name="groupId">目标群</param>
        /// <param name="memberInfos">如果成功,返回群成员列表</param>
        /// <returns>成功返回 0, 失败返回 负数</returns>
        public int GetMemberList(long groupId, out List <GroupMember> memberInfos)
        {
            string result = CQP.CQ_getGroupMemberList(_authCode, groupId);

            if (string.IsNullOrEmpty(result))
            {
                memberInfos = null;
                return(-1000);
            }
            #region --其他_转换_文本到群成员列表信息a--
            UnPack unpack = new UnPack(Convert.FromBase64String(result));
            memberInfos = new List <GroupMember> ();
            for (int i = 0, len = unpack.GetInt32(); i < len; i++)
            {
                if (unpack.OverLength <= 0)
                {
                    memberInfos = null;
                    return(-1000);
                }
                #region --其它_转换_ansihex到群成员信息--
                UnPack      temp   = new UnPack(unpack.GetToken()); //解析群成员信息
                GroupMember member = new GroupMember
                {
                    GroupId                  = temp.GetInt64(),
                    QQId                     = temp.GetInt64(),
                    Nick                     = temp.GetString(Encoding.GetEncoding("GB18030")),
                    Card                     = temp.GetString(Encoding.GetEncoding("GB18030")),
                    Sex                      = (Sex)temp.GetInt32(),
                    Age                      = temp.GetInt32(),
                    Area                     = temp.GetString(Encoding.GetEncoding("GB18030")),
                    JoiningTime              = NativeConvert.FotmatUnixTime(temp.GetInt32().ToString()),
                    LastDateTime             = NativeConvert.FotmatUnixTime(temp.GetInt32().ToString()),
                    Level                    = temp.GetString(Encoding.GetEncoding("GB18030")),
                    PermitType               = (PermitType)temp.GetInt32(),
                    BadRecord                = temp.GetInt32() == 1,
                    SpecialTitle             = temp.GetString(Encoding.GetEncoding("GB18030")),
                    SpecialTitleDurationTime = NativeConvert.FotmatUnixTime(temp.GetInt32().ToString()),
                    CanModifiedCard          = temp.GetInt32() == 1
                };
                #endregion
                memberInfos.Add(member);
            }
            #endregion
            return(0);
        }
Example #4
0
        /// <summary>
        /// 获取QQ信息
        /// </summary>
        /// <param name="qqId">目标QQ</param>
        /// <param name="qqInfo">返回QQ信息, 若获取失败, 返回null</param>
        /// <param name="notCache">不使用缓存, 默认为"False",通常忽略本参数,仅在必要时使用</param>
        /// <returns></returns>
        public int GetQQInfo(long qqId, out QQ qqInfo, bool notCache = false)
        {
            string result = CQP.CQ_getStrangerInfo(_authCode, qqId, notCache);

            if (string.IsNullOrEmpty(result))
            {
                qqInfo = null;
                return(-1000);
            }
            UnPack unpack = new UnPack(Convert.FromBase64String(result));

            qqInfo      = new QQ();
            qqInfo.Id   = unpack.GetInt64();
            qqInfo.Nick = unpack.GetString(Encoding.GetEncoding("GB18030"));
            qqInfo.Sex  = (Sex)unpack.GetInt32();
            qqInfo.Age  = unpack.GetInt32();
            return(0);
        }