Пример #1
0
        public static QnAMakerResult Get(string knowledgebaseId, string qnamakerSubscriptionKey, string Query)
        {
            string         responseString = string.Empty;
            QnAMakerResult response;

            try
            {
                //Build the URI
                Uri qnamakerUriBase = new Uri(QnAMakerURL);
                var builder         = new UriBuilder($"{qnamakerUriBase}/knowledgebases/{knowledgebaseId}/generateAnswer");
                QQ  q = new QQ();
                q.question = Query;
                var postBody = JsonConvert.SerializeObject(q);
                //var postBody = $"{{\"question\": \"{Query}\"}}";
                //Send the POST request
                using (WebClient client = new WebClient())
                {
                    //Add the subscription key header
                    client.Headers.Add("Ocp-Apim-Subscription-Key", qnamakerSubscriptionKey);
                    client.Headers.Add("Content-Type", "application/json");
                    client.Encoding = System.Text.Encoding.UTF8;
                    responseString  = client.UploadString(builder.Uri, postBody);
                }
                //De-serialize the response
                response = JsonConvert.DeserializeObject <QnAMakerResult>(responseString);
            }
            catch (Exception EQ)
            {
                response        = new QnAMakerResult();
                response.Score  = 50;
                response.Answer = "Error:" + EQ.Message;
            }

            return(response);
        }
Пример #2
0
 /// <summary>
 /// 跟某人聊天的频次
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnFrep_Click(object sender, EventArgs e)
 {
     try
     {
         QQ q = new QQ();
         Dictionary <string, int> list = q.StatCount(txtPath.Text, txtParam.Text);
         string msg = string.Empty;
         if (list != null && list.Count > 0)
         {
             foreach (var item in list)
             {
                 msg += string.Format("{0}\t{1}\r\n", item.Key, item.Value);
             }
             txtContent.Text = msg;
             Utility.ShowMessage("获取成功!");
         }
         else
         {
             Utility.ShowMessage("无消息记录!");
         }
     }
     catch (Exception ex)
     {
         Utility.ShowError(ex.Message);
     }
 }
Пример #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            string backurl = RequestTool.RequestString("backurl");
            int    IsLogin = 0;

            if (backurl.ToLower().IndexOf(URL("P_Login", "").ToLower()) > -1)
            {
                IsLogin = 1;
            }
            if (backurl == "" || backurl.ToLower().IndexOf(URL("P_Login", "").ToLower()) > -1 || backurl.ToLower().IndexOf(URL("P_Register", "").ToLower()) > -1 || backurl.ToLower().IndexOf(URL("P_FindPassword", "").ToLower()) > -1)
            {
                backurl = URL("P_UserCenter", "");
            }
            string res = QQ.GetInstance(DT_id).Login(backurl, IsLogin, DT_id);

            if (res == "OK")
            {
                Response.Redirect(QQ.Instance.DEBackuri(backurl));
                //if (backurl == "")
                //    Response.Redirect("../");
                //else
                //{
                //    Response.Redirect(QQ.Instance.DEBackuri(backurl));
                //}
            }
            else
            {
                Response.Write(res);
            }
        }
Пример #4
0
 /// <summary>
 /// 初始化 <see cref="CQFriendAddEventArgs"/> 类的新实例
 /// </summary>
 /// <param name="api">酷Q的接口实例</param>
 /// <param name="log">酷Q的日志实例</param>
 /// <param name="id">事件Id</param>
 /// <param name="type">事件类型</param>
 /// <param name="name">事件名称</param>
 /// <param name="function">函数名称</param>
 /// <param name="priority">默认优先级</param>
 /// <param name="subType">子类型</param>
 /// <param name="sendTime">发送时间</param>
 /// <param name="fromQQ">来源QQ</param>
 public CQFriendAddEventArgs(CQApi api, CQLog log, int id, int type, string name, string function, uint priority, int subType, int sendTime, long fromQQ)
     : base(api, log, id, type, name, function, priority)
 {
     this.SubType  = (CQFriendAddType)subType;
     this.SendTime = sendTime.ToDateTime();
     this.FromQQ   = new QQ(api, fromQQ);
 }
        public override object ExecuteHaveAuth()
        {
            AppInfo appInfo = this.App.Library.AppInfo;

            // 向数据池中查询QQ
            QQ qq = this.Simulator.DataPool.QQCollection.Where(p => p.Id == this.FromQQ).FirstOrDefault();

            if (qq == null)
            {
                Logger.Instance.Error(appInfo.Name, TYPE_SEND_LINK, $"无法向 [QQ: {this.FromQQ}] 发送赞, 未查询到与该QQ的关系");
                return(RESULT_NO_RELATIONSHIP);
            }
            else
            {
                if (qq.SetLink(this.Count))
                {
                    Logger.Instance.InfoSuccess(appInfo.Name, TYPE_SEND_LINK, $"成功为 [QQ: {this.FromQQ}] 点了 {this.Count} 个赞");
                    return(RESULT_SUCCESS);
                }
                else
                {
                    Logger.Instance.Info(appInfo.Name, TYPE_SEND_LINK, $"为 [QQ: {this.FromQQ}] 的点赞数已满");
                    return(RESULT_LINK_OVERFLOW);
                }
            }
        }
Пример #6
0
        private void tab1Init()
        {
            BotQQ = CQ.Api.GetLoginQQ();

            bindingSource_StudentDB.DataSource = EasOP.GetAll(Convert.ToString(BotQQ.Id));
            dataGridView_StuList.DataSource    = bindingSource_StudentDB;
            stuDataGridView.DataSource         = bindingSource_StudentDB;

            tb_QQ.Text    = ini.Read(AppDirectory + @"\配置.ini", "主人信息", "QQ", "");
            tb_StuID.Text = ini.Read(AppDirectory + @"\配置.ini", "主人信息", "学号", "");
            if (ini.Read(AppDirectory + @"\配置.ini", "主人信息", "教务系统密码", "") != "")
            {
                tb_jwPw.Text = DESTool.Decrypt(ini.Read(AppDirectory + @"\配置.ini", "主人信息", "教务系统密码", ""), "jw*1");
            }

            if (ini.Read(AppDirectory + @"\配置.ini", "成绩提醒", "启动", "") == "真")
            {
                label_sr1.Text = "本人新出成绩提醒:已开启";
            }
            else
            {
                label_sr1.Text = "本人新出成绩提醒:已关闭";
            }

            tb_ReminderTime.Text = ini.Read(AppDirectory + @"\配置.ini", "成绩提醒", "间隔", "");
        }
        public override object ExecuteHaveAuth()
        {
            AppInfo appInfo = this.App.Library.AppInfo;

            // 获取用来撤回消息的机器人QQ
            QQ qq = this.Simulator.DataPool.RobotQQ;
            // 根据消息 Id 查询是否存在目标消息
            Message msg = this.Simulator.DataPool.MessageCollection.Where(p => p.Id == this.MsgId).FirstOrDefault();

            if (msg == null)
            {
                Logger.Instance.Info(appInfo.Name, TYPE_MSG_UNDO, $"无法撤回消息 [ID: {this.MsgId}], 指定的消息不存在");
                return(RESULT_MSG_NOT_FOUND);
            }
            else
            {
                bool result = false;

                // 如果是群消息
                if (msg.FromGroup != null && msg.FromGroup == null)
                {
                    // 获取当前机器人QQ在这个群的群成员信息
                    GroupMember robotMember = msg.FromGroup.MemberCollection.Where(p => p.Id == qq.Id).FirstOrDefault();
                    // 获取当前消息发送者QQ的群成员信息
                    GroupMember fromMember = msg.FromQQ as GroupMember;

                    if (!robotMember.Equals(fromMember))
                    {
                        // 如果 机器人QQ是管理并且消息来源QQ是群主
                        if (robotMember.MemberType == GroupMemberType.Manager && fromMember.MemberType == GroupMemberType.Creator)
                        {
                            Logger.Instance.Info(appInfo.Name, TYPE_MSG_UNDO, $"无法撤回消息");
                            return(RESULT_MSG_NOT_AUTHORIZE);
                        }

                        // 如果 机器人QQ是群主并且消息来源QQ是管理或群成员 或者 机器人QQ是管理并且消息来源QQ是群成员
                        if ((robotMember.MemberType == GroupMemberType.Creator && (fromMember.MemberType == GroupMemberType.Normal || fromMember.MemberType == GroupMemberType.Manager)) || (robotMember.MemberType == GroupMemberType.Manager && (fromMember.MemberType == GroupMemberType.Normal)))
                        {
                            // 强制撤回消息
                            result = msg.Revocation(true);
                        }
                    }
                }
                else
                {
                    result = msg.Revocation(false);
                }

                if (result)
                {
                    Logger.Instance.InfoSuccess(appInfo.Name, TYPE_MSG_UNDO, $"已撤回消息 [ID: {msg.Id}]");
                    return(RESULT_SUCCESS);
                }
                else
                {
                    Logger.Instance.Info(appInfo.Name, TYPE_MSG_UNDO, $"撤回消息 [ID: {msg.Id}] 失败, 消息已发送超过 2分钟");
                    return(RESULT_MSG_OVERDUE);
                }
            }
        }
Пример #8
0
 private void TbQQ_Click(object sender, EventArgs e)
 {
     using (var qq = new QQ())
     {
         qq.ShowDialog();
     }
 }
Пример #9
0
        public static UserInfo Get(long qqNo)
        {
            string result = QLAPI.Api_GetQQInfo(qqNo.ToString(), QLMain.ac);

            //QLAPI.Api_SendLog("Debug", "Api_GetQQInfo:"+result, 0, QLMain.ac);
            if (string.IsNullOrEmpty(result))
            {
                return(null);
            }

            var info = JsonConvert.DeserializeObject <JsonModel <QQJsonModel> >(result);
            var qq   = info.Result.buddy.info_list[0];

            var qqInfo = new QQ();

            qqInfo.Id   = qq.uin;
            qqInfo.Nick = qq.nick;
            qqInfo.Sex  = (Sex)qq.gender;

            var user = Users.Find(p => p.QQ == qqNo);

            if (user != null)
            {
                user.Nick = qqInfo.Nick;
                user.Sex  = qqInfo.Sex;
            }
            else
            {
                Users.Add(new UserInfo(qqInfo));
            }

            return(user);
        }
 /// <summary>
 /// 初始化 <see cref="CQGroupManageChangeEventArgs"/> 类的新实例
 /// </summary>
 /// <param name="api">酷Q的接口实例</param>
 /// <param name="log">酷Q的日志实例</param>
 /// <param name="id">事件Id</param>
 /// <param name="type">事件类型</param>
 /// <param name="name">事件名称</param>
 /// <param name="function">函数名称</param>
 /// <param name="priority">默认优先级</param>
 /// <param name="subType">子类型</param>
 /// <param name="sendTime">发送时间</param>
 /// <param name="fromGroup">来源群</param>
 /// <param name="beingOperateQQ">被操作QQ</param>
 public CQGroupManageChangeEventArgs(CQApi api, CQLog log, int id, int type, string name, string function, uint priority, int subType, int sendTime, long fromGroup, long beingOperateQQ)
     : base(api, log, id, type, name, function, priority)
 {
     this.SubType        = (CQGroupManageChangeType)subType;
     this.SendTime       = sendTime.ToDateTime();
     this.FromGroup      = new Group(api, fromGroup);
     this.BeingOperateQQ = new QQ(api, beingOperateQQ);
 }
Пример #11
0
 public AA(int qq)
 {
     tmp1 = 106;
     tmp2 = 107;
     tmp3 = 108;
     tmp4 = 109;
     tmp5 = 110;
     q = new QQ(qq);
 }
Пример #12
0
 public AA(int qq)
 {
     tmp1 = 0;
     tmp2 = 0;
     tmp3 = 0;
     tmp4 = 0;
     tmp5 = 0;
     q    = new QQ(qq);
 }
Пример #13
0
 /// <summary>
 /// 初始化 <see cref="CQGroupMemberDecreaseEventArgs"/> 类的新实例
 /// </summary>
 /// <param name="id">事件ID</param>
 /// <param name="type">事件类型</param>
 /// <param name="name">事件名称</param>
 /// <param name="function">函数名称</param>
 /// <param name="priority">默认优先级</param>
 /// <param name="subType">子类型</param>
 /// <param name="sendTime">发送时间</param>
 /// <param name="fromGroup">来源群</param>
 /// <param name="fromQQ">来源QQ</param>
 /// <param name="beingOperateQQ">被操作QQ</param>
 /// <param name="api">接口Api实例</param>
 public CQGroupMemberDecreaseEventArgs(int id, int type, string name, string function, uint priority, int subType, int sendTime, long fromGroup, long fromQQ, long beingOperateQQ, CQApi api)
     : base(id, type, name, function, priority)
 {
     this.SubType        = (CQGroupMemberDecreaseType)subType;
     this.SendTime       = sendTime.ToDateTime();
     this.FromGroup      = new Group(api, fromGroup);
     this.FromQQ         = new QQ(api, fromQQ);
     this.BeingOperateQQ = new QQ(api, beingOperateQQ);
 }
Пример #14
0
        public async Task <List <FriendInfo> > GetFriendsAsync()
        {
            var result = (await PostRequestAsync("Api_GetFriendList", new { 响应QQ = QQ.ToString() }))["Result"];

            return(result.SelectToken("result.0.mems").Select(v => new FriendInfo()
            {
                Id = v["uin"].ToObject <long>(), NickName = v["name"].ToString()
            }).ToList());
        }
Пример #15
0
 public AA(int qq)
 {
     tmp1 = 0;
     tmp2 = 0;
     tmp3 = 0;
     tmp4 = 0;
     tmp5 = 0;
     q = new QQ(qq);
 }
Пример #16
0
 public AA(int qq)
 {
     tmp1 = 106;
     tmp2 = 107;
     tmp3 = 108;
     tmp4 = 109;
     tmp5 = 110;
     q    = new QQ(qq);
 }
 public GroupMessageTaskContext(GroupMessageType subType, Group fromGroup, QQ fromQQ, GroupAnonymous fromAnonymous, Message msg, IntPtr font)
     : base(2)
 {
     base.SetValue(KeySubType, subType);
     base.SetValue(KeyFromGroup, fromGroup);
     base.SetValue(KeyFromQQ, fromQQ);
     base.SetValue(KeyFromAnonymous, fromAnonymous);
     base.SetValue(KeyMessage, msg);
     base.SetValue(KeyFont, font);
 }
        /// <summary>
        /// 更新指定学生的成绩信息 失败将抛出异常
        /// </summary>
        /// <param name="StuQQ">学生QQ</param>
        /// <returns>新成绩列表</returns>
        public static List <Score> UpdateScore(string StuQQ)
        {
            QQ     BotQQ        = CQ.Api.GetLoginQQ();
            string AppDirectory = CQ.Api.AppDirectory;
            string StuID;
            string Pw;

            if (ini.Read(AppDirectory + @"\配置.ini", "主人信息", "QQ", "") == StuQQ)  //是主人
            {
                StuID = ini.Read(AppDirectory + @"\配置.ini", "主人信息", "学号", "");
                Pw    = DESTool.Decrypt(ini.Read(AppDirectory + @"\配置.ini", "主人信息", "教务系统密码", ""), "jw*1");
            }
            else
            {
                StuID = ini.Read(AppDirectory + @"\配置.ini", StuQQ, "学号", "");
                Pw    = DESTool.Decrypt(ini.Read(AppDirectory + @"\配置.ini", StuQQ, "密码", ""), "jw*1");
            }

            if (StuID == "" || Pw == "")
            {
                throw new UpdataErrorException("当前QQ未绑定教务系统账户。");
            }
            EasLogin jwxt = new EasLogin(Convert.ToString(BotQQ.Id), StuQQ, StuID, Pw, 3);

            try
            {
                if (jwxt.TryLogin() == true)
                {
                    EasGetNewScore jwscore = new EasGetNewScore();
                    return(jwscore.GetNewScore(jwxt));
                }
                else
                {
                    return(new List <Score>());   //空列表
                }
            }
            catch (Exception ex)
            {
                if (ex.Message == "用户名/密码错误")
                {
                    throw new UpdataErrorException("用户名或密码错误。");
                }
                else if (ex.Message == "验证码错误")
                {
                    throw new UpdataErrorException("验证码错误达到上限,请稍后再试。");
                }
                else
                {
                    CQ.Log.Error("发生错误", "错误信息:" + ex.GetType().ToString() + " " + ex.Message + "\n" + ex.StackTrace);
                    throw new UpdataErrorException("发生未知错误,请联系机器人主人。");
                }
            }
        }
Пример #19
0
 /// <summary>
 /// 按时间逆向输出聊天记录
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnReverse_Click(object sender, EventArgs e)
 {
     try
     {
         QQ q = new QQ();
         q.RevertChat(txtPath.Text);
         Utility.ShowMessage("转化成功!");
     }
     catch (Exception ex)
     {
         Utility.ShowError(ex.Message);
     }
 }
Пример #20
0
        static void Interrupter2_OnInterruptableTarget(Obj_AI_Hero sender, Interrupter2.InterruptableTargetEventArgs args)
        {
            if (!AIO_Menu.Champion.Misc.UseInterrupter || Player.IsDead)
            {
                return;
            }

            if (QQ.IsReady() && Player.HasBuff2("yasuoq3w") && !Dash.IsDashing(Player) &&
                Player.Distance(sender.Position) <= QQ.Range)
            {
                QQ.Cast(sender.Position);
            }
        }
Пример #21
0
        public ActionResult Auth()
        {
            string url   = string.Empty;
            string vtype = RouteData.Values["id"]?.ToString().ToLower();

            switch (vtype)
            {
            case "qq":
                url = QQ.AuthorizationHref(new QQ_Authorization_RequestEntity());
                break;

            case "weibo":
                url = Weibo.AuthorizeHref(new Weibo_Authorize_RequestEntity());
                break;

            case "github":
                url = GitHub.AuthorizeHref(new GitHub_Authorize_RequestEntity());
                break;

            case "taobao":
                url = Taobao.AuthorizeHref(new Taobao_Authorize_RequestEntity());
                break;

            case "microsoft":
                url = MicroSoft.AuthorizeHref(new MicroSoft_Authorize_RequestEntity());
                break;
            }
            if (string.IsNullOrWhiteSpace(url))
            {
                url = "/account/login";
            }

            //已登录 && 从绑定页面点击
            if (HttpContext.User.Identity.IsAuthenticated && Request.Headers["Referer"].ToString().ToLower().Contains("authbind"))
            {
                //写入绑定标识cookie
                var hc = new HttpCookie("AccountBindOAuth", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"))
                {
                    Expires = DateTime.Now.AddMinutes(2)
                };
                Response.Cookies.Add(hc);
            }
            else
            {
                //删除绑定标识
                Response.Cookies.Remove("AccountBindOAuth");
            }
            return(Redirect(url));
        }
Пример #22
0
        /// <summary>
        /// 向指定的QQ发送一条讨论组临时消息
        /// </summary>
        /// <param name="responseQQ">响应此请求的QQ</param>
        /// <param name="fromDiscuss">目标QQ所在的群组</param>
        /// <param name="sendQQ">接收消息的目标QQ</param>
        /// <param name="message">要发送的消息内容</param>
        /// <returns>返回发送的消息 <see cref="Message"/> 实例</returns>
        public Message SendDiscussTempMessage(QQ responseQQ, Discuss fromDiscuss, QQ sendQQ, string message)
        {
            GCHandle messageHandle = message.GetStringGCHandle(Global.DefaultEncoding);

            try
            {
                int result = QQMiniApi.QMApi_SendMessage(this._authCode, responseQQ, MSG_DISCUSS_TEMP, fromDiscuss, sendQQ, messageHandle.AddrOfPinnedObject(), 0);
                CheckResultThrowException(result);
                return(new Message(0, 0, message));
            }
            finally
            {
                messageHandle.Free();
            }
        }
Пример #23
0
        /// <summary>
        /// 向指定的群组发送一条消息
        /// </summary>
        /// <param name="responseQQ">响应此请求的QQ</param>
        /// <param name="sendGroup">接收消息的目标群组</param>
        /// <param name="message">要发送的消息内容</param>
        /// <returns>返回发送的消息 <see cref="Message"/> 实例</returns>
        public Message SendGroupMessage(QQ responseQQ, Group sendGroup, string message)
        {
            GCHandle messageHandle = message.GetStringGCHandle(Global.DefaultEncoding);

            try
            {
                int result = QQMiniApi.QMApi_SendMessage(this._authCode, responseQQ, MSG_GROUP, sendGroup, 0, messageHandle.AddrOfPinnedObject(), 0);
                CheckResultThrowException(result);
                return(new Message(0, 0, message));
            }
            finally
            {
                messageHandle.Free();
            }
        }
 /// <summary>
 /// 初始化 <see cref="CQGroupMemberIncreaseEventArgs"/> 类的新实例
 /// </summary>
 /// <param name="api">酷Q的接口实例</param>
 /// <param name="log">酷Q的日志实例</param>
 /// <param name="id">事件Id</param>
 /// <param name="type">事件类型</param>
 /// <param name="name">事件名称</param>
 /// <param name="function">函数名称</param>
 /// <param name="priority">默认优先级</param>
 /// <param name="subType">子类型</param>
 /// <param name="sendTime">发送时间</param>
 /// <param name="fromGroup">来源群</param>
 /// <param name="fromQQ">来源QQ</param>
 /// <param name="beingOperateQQ">被操作QQ</param>
 public CQGroupMemberIncreaseEventArgs(CQApi api, CQLog log, int id, int type, string name, string function, uint priority, int subType, int sendTime, long fromGroup, long fromQQ, long beingOperateQQ)
     : base(api, log, id, type, name, function, priority)
 {
     this.SubType   = (CQGroupMemberIncreaseType)subType;
     this.SendTime  = sendTime.ToDateTime();
     this.FromGroup = new Group(api, fromGroup);
     if (fromQQ >= QQ.MinValue)
     {
         this.FromQQ = new QQ(api, fromQQ);
     }
     if (beingOperateQQ >= QQ.MinValue)
     {
         this.BeingOperateQQ = new QQ(api, beingOperateQQ);
     }
 }
Пример #25
0
 public async Task <bool> SendGroupMessageAsync(long groupId, SendingMessage message)
 {
     using (var client = HttpClientExtensions.CreateClient())
     {
         await client.PostJsonAsync(ListenUrl + "Api_SendMsg", new
         {
             响应QQ      = QQ.ToString(),
             信息类型      = MahuaMessageType.Group,
             收信对象群_讨论组 = groupId.ToString(),
             收信QQ      = groupId.ToString(),
             内容        = message.ToString(),
             气泡ID      = 0
         });
     }
     return(true);
 }
Пример #26
0
        static void Drawing_OnDraw(EventArgs args)
        {
            if (Player.IsDead)
            {
                return;
            }

            var drawQ    = AIO_Menu.Champion.Drawings.Qrange;
            var drawW    = AIO_Menu.Champion.Drawings.Wrange;
            var drawE    = AIO_Menu.Champion.Drawings.Erange;
            var drawR    = AIO_Menu.Champion.Drawings.Rrange;
            var drawQQr  = AIO_Menu.Champion.Drawings.getCircleValue("QQ Safe Range");
            var drawEQ   = AIO_Menu.Champion.Drawings.getCircleValue("EQ Range");
            var QQTarget = TargetSelector.GetTarget(QQ.Range + Player.MoveSpeed * QQ.Delay, TargetSelector.DamageType.Magical);


            if (Q.IsReady() && drawQ.Active)
            {
                Render.Circle.DrawCircle(Player.Position, Q.Range, drawQ.Color);
            }

            if (EQ.IsReady() && drawEQ.Active)
            {
                Render.Circle.DrawCircle(Player.Position, EQ.Range, drawEQ.Color);
            }

            if (W.IsReady() && drawW.Active)
            {
                Render.Circle.DrawCircle(Player.Position, W.Range, drawW.Color);
            }

            if (E.IsReady() && drawE.Active)
            {
                Render.Circle.DrawCircle(Player.Position, E.Range, drawE.Color);
            }

            if (R.IsReady() && drawR.Active)
            {
                Render.Circle.DrawCircle(Player.Position, R.Range, drawR.Color);
            }

            if (QQ.IsReady() && drawQQr.Active && Player.HasBuff2("yasuoq3w") && QQTarget != null)
            {
                Render.Circle.DrawCircle(Player.Position, QQ.Range - QQTarget.MoveSpeed * QQ.Delay, drawQQr.Color);
            }
        }
Пример #27
0
        /// <summary>
        /// QQ登录
        /// </summary>
        /// <returns></returns>
        public ActionResult QQ()
        {
            var res = new QQ().Authorize();

            if (res != null && res.code == 0)
            {
                var m = new ThirdPartyUserModel
                {
                    Uid   = res.result.Value <string>("openid"),
                    Name  = res.result.Value <string>("nickname"),
                    Img   = res.result.Value <string>("figureurl"),
                    Token = res.token
                };
            }

            return(null);
        }
Пример #28
0
        public async Task <bool> SendGroupMessageAsync(long groupId, SendingMessage message)
        {
            using (var client = HttpClientExtensions.CreateClient())
            {
                //NMD为啥MPQ变成了 ‘响应的QQ’了,太不上心了吧
                await client.PostJsonAsync(ListenUrl + "Api_SendMsg", new
                {
                    响应的QQ     = QQ.ToString(),
                    信息类型      = MahuaMessageType.Group,
                    参考子类型     = 0,
                    收信对象群_讨论组 = groupId.ToString(),
                    收信对象      = groupId.ToString(),
                    内容        = message.ToString(),
                });

                return(true);
            }
        }
Пример #29
0
        public static void BossResponse(object Sender, CQGroupMessageEventArgs GBossEventArgs,
                                        PCRGuildCmdType commandType)       //功能响应
        {
            if (GBossEventArgs == null)
            {
                throw new ArgumentNullException(nameof(GBossEventArgs));
            }
            Group           qqGroup    = GBossEventArgs.FromGroup;
            QQ              senderQQ   = GBossEventArgs.FromQQ;
            GroupMemberInfo memberInfo = GBossEventArgs.CQApi.GetGroupMemberInfo(qqGroup.Id, senderQQ.Id);

            //index=0为命令本身,其余为参数
            string[] commandArgs = GBossEventArgs.Message.Text.Split(' ');
            //数据库实例
            //BossDBHelper bossDB = new BossDBHelper(Sender, GBossEventArgs);

            //接下来进行一系列操作
        }
Пример #30
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);
        }
Пример #31
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);
            }
            BinaryReader binary = new BinaryReader(new MemoryStream(Convert.FromBase64String(result)));

            qqInfo      = new QQ();
            qqInfo.Id   = binary.ReadInt64_Ex();
            qqInfo.Nick = binary.ReadString_Ex(_defaultEncoding);
            qqInfo.Sex  = (Sex)binary.ReadInt32_Ex();
            qqInfo.Age  = binary.ReadInt32_Ex();
            return(0);
        }
        void IJob.Execute()
        {
            BotQQ = CQ.Api.GetLoginQQ();

            string AppDirectory = CQ.Api.AppDirectory;
            string QQ           = ini.Read(AppDirectory + @"\配置.ini", "主人信息", "QQ", "");
            string StuID        = ini.Read(AppDirectory + @"\配置.ini", "主人信息", "学号", "");
            string Pw           = ini.Read(AppDirectory + @"\配置.ini", "主人信息", "教务系统密码", "");

            if (QQ == "" || StuID == "" || Pw == "")
            {
                CQ.Log.Warning("成绩提醒模块", "本人部分信息为空,提醒任务已停止。");
                JobManager.Stop();
                JobManager.RemoveAllJobs();
            }

            CQ.Log.Debug("成绩提醒模块", "检测运行中……");

            Pw = DESTool.Decrypt(Pw, "jw*1");
            EasLogin jwxt = new EasLogin(Convert.ToString(BotQQ.Id), QQ, StuID, Pw, 3);

            try
            {
                if (jwxt.TryLogin() == true)
                {
                    CQ.Log.Debug("成绩提醒模块", "登录成功");
                    EasGetNewScore jwscore = new EasGetNewScore();
                    var            sList   = jwscore.GetNewScore(jwxt);
                    if (sList.Count != 0)
                    {
                        foreach (var s in sList)
                        {
                            CQ.Api.SendPrivateMessage(Convert.ToInt64(QQ), "【新出成绩】\n课程:", s.LessonName, "\n成绩:", s.Mark);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                CQ.Log.Warning("成绩提醒模块", "本次检测发生了错误,任务已停止。\n错误信息:" + ex.Message);
                JobManager.Stop();
                JobManager.RemoveAllJobs();
            }
        }
Пример #33
0
 public static QQ call_target_ref(ref QQ arg) { return arg; }
Пример #34
0
 public static QQ call_target(QQ arg) { return arg; }
Пример #35
0
 public AA(int qq)
 {
     tmp1 = 106;
     tmp2 = 107;
     q = new QQ(qq);
 }