예제 #1
0
        /// <summary>
        /// 取群成员信息。
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnGetGroupMember_Click(object sender, RoutedEventArgs e)
        {
            CQGroupMemberInfo info = CQ.GetGroupMemberInfo(Convert.ToInt64(txtGroupNumber.Text), Convert.ToInt64(txtQQNumber.Text));

            this.AddLog(String.Format("[{0}] [=][测试] QQ:{1} 的群名片:{2}, 入群时间:{3}, 最后发言:{4}",
                                      DateTime.Now, txtQQNumber.Text, info.GroupCard, info.JoinTime, info.LastSpeakingTime));
        }
예제 #2
0
        /// <summary>
        /// Type=2 群消息。
        /// </summary>
        /// <param name="subType">子类型,目前固定为1。</param>
        /// <param name="sendTime">发送时间(时间戳)。</param>
        /// <param name="fromGroup">来源群号。</param>
        /// <param name="fromQQ">来源QQ。</param>
        /// <param name="fromAnonymous">来源匿名者。</param>
        /// <param name="msg">消息内容。</param>
        /// <param name="font">字体。</param>
        public override void GroupMessage(int subType, int sendTime, long fromGroup, long fromQQ, string fromAnonymous, string msg, int font)
        {
            //string Name = "";
            //decimal Money = 0;
            //string UPUser = "";
            //long QQ = 0, QQ2 = 0;
            //string Date;

            var groupMember = CQ.GetGroupMemberInfo(fromGroup, fromQQ);

            if (msg.Contains("搜索"))
            {
                CQ.SendGroupMessage(fromGroup, "正在搜索,请耐心等待。");
                string URL = "https://www.bturl.cc/search/" + msg.Replace("搜索", "") + "_ctime_1.html";

                try
                {
                    System.Net.WebClient myWebClient = new System.Net.WebClient();
                    myWebClient.Headers.Add("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; QQWubi 133; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; CIBA; InfoPath.2)");
                    byte[] myDataBuffer = myWebClient.DownloadData(URL);
                    string SourceCode   = Encoding.GetEncoding("utf-8").GetString(myDataBuffer);
                    string temp         = SourceCode;
                    string temp2        = GetPathPoints(temp, "/" + @"(\w{40})" + ".html");
                    CQ.SendGroupMessage(fromGroup, "magnet:?xt=urn:btih:" + temp2.Replace("/", "").Replace(".html", ""));
                }
                catch (Exception e)
                {
                    CQ.SendGroupMessage(Group, "[查询失败]\r\n" + e.ToString());
                }
            }
        }
예제 #3
0
파일: MyPlugin.cs 프로젝트: zzzzzga/CQP
        /// <summary>
        /// Type=2 群消息。
        /// </summary>
        /// <param name="subType">子类型,目前固定为1。</param>
        /// <param name="sendTime">发送时间(时间戳)。</param>
        /// <param name="fromGroup">来源群号。</param>
        /// <param name="fromQQ">来源QQ。</param>
        /// <param name="fromAnonymous">来源匿名者。</param>
        /// <param name="msg">消息内容。</param>
        /// <param name="font">字体。</param>
        public override void GroupMessage(int subType, int sendTime, long fromGroup, long fromQQ, string fromAnonymous, string msg, int font)
        {
            // 处理群消息。
            var groupMember = CQ.GetGroupMemberInfo(fromGroup, fromQQ);

            CQ.SendGroupMessage(fromGroup, String.Format("[{4}]{0} 你的群名片:{1}, 入群时间:{2}, 最后发言:{3}。", CQ.CQ码_At(fromQQ),
                                                         groupMember.GroupCard, groupMember.JoinTime, groupMember.LastSpeakingTime, CQ.ProxyType));
            CQ.SendGroupMessage(fromGroup, String.Format("[{0}]{1}你发的群消息是:{2}", CQ.ProxyType, CQ.CQCode_At(fromQQ), msg));
        }
예제 #4
0
        private static string OBList(byte type, long fromGroup, long fromQQ)
        {
            Dictionary <long, List <long> > OBMap = type == 0 ? OBGroupMap : OBDiscussMap;

            if (OBMap.TryGetValue(fromGroup, out List <long> list) && list.Count > 0)
            {
                StringBuilder sb = new StringBuilder();

                foreach (long qq in list)
                {
                    var    groupMember = CQ.GetGroupMemberInfo(fromGroup, qq);
                    string nn          = string.IsNullOrWhiteSpace(groupMember.GroupCard) ? groupMember.QQName : groupMember.GroupCard;
                    sb.Append(nn).Append("  ");
                }
                return(string.Format("当前OB人数为{0},名单:{1}", list.Count, sb.ToString()));
            }

            return(string.Format("当前OB列表为空,还未有用户加入OB。"));
        }
예제 #5
0
        /// <summary>
        /// Type=2 群消息。
        /// </summary>
        /// <param name="subType">子类型,目前固定为1。</param>
        /// <param name="sendTime">发送时间(时间戳)。</param>
        /// <param name="fromGroup">来源群号。</param>
        /// <param name="fromQQ">来源QQ。</param>
        /// <param name="fromAnonymous">来源匿名者。</param>
        /// <param name="msg">消息内容。</param>
        /// <param name="font">字体。</param>
        public override void GroupMessage(int subType, int sendTime, long fromGroup, long fromQQ, string fromAnonymous, string msg, int font)
        {
            //string Name = "";
            //decimal Money = 0;
            //string UPUser = "";
            //long QQ = 0, QQ2 = 0;
            //string Date;
            Master master = new Master();

            if (msg.Contains("%群搜索开") && fromQQ == master.QQ)
            {
                grouplist.Add(fromGroup);
                CQ.SendGroupMessage(fromGroup, "该群群搜索已开。");
            }
            if (msg.Contains("%群搜索关") && fromQQ == master.QQ)
            {
                for (int i = grouplist.Count - 1; i >= 0; i--)
                {
                    if (grouplist[i].Equals(fromGroup))
                    {
                        grouplist.Remove(grouplist[i]);
                    }
                }
                CQ.SendGroupMessage(fromGroup, "该群群搜索已关。");
            }


            var groupMember = CQ.GetGroupMemberInfo(fromGroup, fromQQ);

            if (msg.Contains("%更改条数"))
            {
                bool IsNume = int.TryParse(msg.Replace("%更改条数", ""), out num);
                if (!IsNume)
                {
                    num = 5;
                    CQ.SendGroupMessage(fromGroup, "更改失败,请确认指令“%更改条数5”。\n搜索条数已还原回5条。");
                }
                else if (num > 15 || num < 1)
                {
                    num = 5;
                    CQ.SendGroupMessage(fromGroup, "更改失败,请输入大于1小于15的数字。\n搜索条数已还原回5条。");
                }
                else
                {
                    CQ.SendGroupMessage(fromGroup, "搜索条数已更改为" + num + "条");
                }
            }
            if (msg.Contains("%搜索"))
            {
                bool on = false;
                for (int i = grouplist.Count - 1; i >= 0; i--)
                {
                    if (grouplist[i].Equals(fromGroup))
                    {
                        on = true;
                        break;
                    }
                }
                if (!on)
                {
                    CQ.SendGroupMessage(fromGroup, "该群群搜索已关。");
                    return;
                }
                CQ.SendGroupMessage(fromGroup, "少女祈祷中……");
                string URL = "https://www.bturl.cc/search/" + msg.Replace("%搜索", "") + "_click_1.html";

                try
                {
                    System.Net.WebClient myWebClient = new System.Net.WebClient();
                    myWebClient.Headers.Add("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; QQWubi 133; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; CIBA; InfoPath.2)");
                    byte[] myDataBuffer = myWebClient.DownloadData(URL);
                    string SourceCode   = Encoding.GetEncoding("utf-8").GetString(myDataBuffer);
                    string temp         = SourceCode;
                    for (int i = 0; i < num; i++)
                    {
                        string magnet = GetPathPoints(temp, "/" + @"(\w{40})" + ".html", i);
                        if (magnet != null)
                        {
                            CQ.SendGroupMessage(fromGroup, "magnet:?xt=urn:btih:" + magnet.Replace("/", "").Replace(".html", ""));
                            OutOfNumber = true;
                        }
                    }
                }
                catch (Exception e)
                {
                    if (!OutOfNumber)
                    {
                        CQ.SendGroupMessage(Group, "[查询失败]\r\n" + e.ToString());
                    }
                }
                if (!OutOfNumber)
                {
                    CQ.SendPrivateMessage(fromQQ, "无结果");
                }
                OutOfNumber = false;
            }
        }
예제 #6
0
        /// <summary>
        /// 接收群消息
        /// </summary>
        /// <param name="fromQQ"></param>
        /// <param name="fromGroup"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        public static string ReceivedGroupMessage(long fromQQ, long fromGroup, string message)
        {
            try
            {
                message = message.Trim(' ');
                if (string.IsNullOrWhiteSpace(message))
                {
                    return(null);
                }

                int index = message.ToLower().IndexOf(".rh");
                if (index >= 0)
                {
                    return(help);
                }

                index = message.ToLower().IndexOf(".r");
                if (index >= 0)
                {
                    var    groupMember = CQ.GetGroupMemberInfo(fromGroup, fromQQ);
                    string nickname    = string.IsNullOrWhiteSpace(groupMember.GroupCard) ? groupMember.QQName : groupMember.GroupCard;

                    return(Roll(message, index, nickname));
                }
                index = message.ToLower().IndexOf(".ww");
                if (index >= 0)
                {
                    var    groupMember = CQ.GetGroupMemberInfo(fromGroup, fromQQ);
                    string nickname    = string.IsNullOrWhiteSpace(groupMember.GroupCard) ? groupMember.QQName : groupMember.GroupCard;
                    return(WW(message, index, nickname));
                }
                index = message.ToLower().IndexOf(".f");
                if (index >= 0)
                {
                    var    groupMember = CQ.GetGroupMemberInfo(fromGroup, fromQQ);
                    string nickname    = string.IsNullOrWhiteSpace(groupMember.GroupCard) ? groupMember.QQName : groupMember.GroupCard;
                    return(Fata(message, index, nickname));
                }

                index = message.ToLower().IndexOf(".oblist");
                if (index >= 0)
                {
                    return(OBList(0, fromGroup, fromQQ));
                }

                index = message.ToLower().IndexOf(".clob");
                if (index >= 0)
                {
                    return(CLOB(0, fromGroup, fromQQ));
                }

                index = message.ToLower().IndexOf(".exob");
                if (index >= 0)
                {
                    var    groupMember = CQ.GetGroupMemberInfo(fromGroup, fromQQ);
                    string nickname    = string.IsNullOrWhiteSpace(groupMember.GroupCard) ? groupMember.QQName : groupMember.GroupCard;
                    return(EXOB(0, fromGroup, fromQQ, nickname));
                }

                index = message.ToLower().IndexOf(".ob");
                if (index >= 0)
                {
                    var    groupMember = CQ.GetGroupMemberInfo(fromGroup, fromQQ);
                    string nickname    = string.IsNullOrWhiteSpace(groupMember.GroupCard) ? groupMember.QQName : groupMember.GroupCard;
                    return(ADDOB(0, fromGroup, fromQQ, nickname));
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
                return(ErrorMessage);
            }

            return(null);
        }
예제 #7
0
파일: CQX.cs 프로젝트: ilzozvye1/CSDN_Auto
 //
 // Summary:
 //     取群成员信息。
 //     多线程同步等待,采用阻塞线程的方式等待客户端返回群成员信息,响应时间较慢,建议使用缓存。
 //     缓存时长1天,超过1天的成员,在下次访问时会通过酷Q重新获取最新信息。
 //
 // Parameters:
 //   groupNumber:
 //     群号码。
 //
 //   qqNumber:
 //     被操作的QQ号码。
 //
 //   cache:
 //     是否使用缓存(使用缓存后,当后第一次访问会通过客户端读取,之后每次都通过缓存获得)。
 public static CQGroupMemberInfo GetGroupMemberInfo(long groupNumber, long qqNumber, bool cache = true)
 {
     return(CQ.GetGroupMemberInfo(groupNumber, qqNumber, cache));
 }