示例#1
0
        public void GetUserDetailInfoTest()
        {
            UserBaseInfoResp   res1 = Apis.GetUserBaseInfo("wantcnm.Tang");
            UserDetailInfoResp res  = Apis.GetUserDetailInfo(res1);

            Assert.Fail();
        }
示例#2
0
        /// <summary>
        /// 获取基础信息
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="pla"></param>
        /// <returns></returns>
        public static UserBaseInfoResp GetUserBaseInfo(string userName)
        {
            UserBaseInfoResp res = new UserBaseInfoResp();

            try
            {
                res = Newtonsoft.Json.JsonConvert.DeserializeObject <UserBaseInfoResp>(TExtension.Tools.StringHelper.UnicodeDencode(TExtension.Tools.ToolClass.GetAPI(BASEURL + BASEINFO + userName)));
            }
            catch (Exception ex)
            {
                res = null;
            }

            return(res);
        }
示例#3
0
        public static UserSeasonResp GetUserSeasonInfo(UserBaseInfoResp res)
        {
            try
            {
                if (res != null)
                {
                    UserSeasonResp userSeasonResp =
                        TExtension.Tools.ToolClass.GetAPI <UserSeasonResp>(SEAAONBASE + res.result.player_list.FirstOrDefault().id + SEAAONINFO);
                    return(userSeasonResp);
                }
            }
            catch (Exception ex)
            {
                res = null;
            }

            return(null);
        }
示例#4
0
        /// <summary>
        /// 获取详细用户信息
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="pla"></param>
        /// <returns></returns>

        public static UserDetailInfoResp GetUserDetailInfo(UserBaseInfoResp res)
        {
            try
            {
                if (res != null)
                {
                    UserDetailInfoResp userDetailInfoResp = Newtonsoft.Json.JsonConvert.DeserializeObject <UserDetailInfoResp>(TExtension.Tools.StringHelper.UnicodeDencode(TExtension.Tools.ToolClass.GetAPI(BASEURL + DETAILINFO + res.result.player_list.FirstOrDefault().id)));
                    if (userDetailInfoResp.result.player == null)
                    {
                        return(null);
                    }
                    return(userDetailInfoResp);
                }
            }
            catch
            {
                res = null;
            }

            return(null);
        }
示例#5
0
        public void ProcessGroupMessage(GroupMessageReceivedContext context)
        {
            try
            {
                AnalysisMsg nowModel = new AnalysisMsg(context.Message);
                string      cmd      = nowModel.What.ToUpper();
                if (cmd == "R6战绩")
                {
                    var ret = Apis.GetUserBaseInfo(nowModel.Who);
                    UserDetailInfoResp resp = Apis.GetUserDetailInfo(ret);
                    if (resp == null)
                    {
                        _mahuaApi.SendGroupMessage(context.FromGroup)
                        .Text(@"[R6战绩]查无此人").Done();
                        return;
                    }

                    var res  = resp.result;
                    var gen  = res.game_queues[0];
                    var rank = res.game_queues[1];
                    var cas  = res.game_queues[2];
                    _mahuaApi.SendGroupMessage(context.FromGroup)
                    .Text($"[{res.player.level}]{res.player.nickname}-{res.player.update_desc}更新 战绩如下:").Newline()
                    .Text(Utils.ConvertToDetailStr(gen)).Newline().Newline()
                    .Text(Utils.ConvertToDetailStr(rank)).Newline().Newline()
                    .Text(Utils.ConvertToDetailStr(cas))
                    .Done();
                }
                else if (cmd == "R6排位")
                {
                    UserBaseInfoResp baseRes = Apis.GetUserBaseInfo(nowModel.Who);
                    UserSeasonResp   res     = Apis.GetUserSeasonInfo(baseRes);
                    if (res == null)
                    {
                        _mahuaApi.SendGroupMessage(context.FromGroup)
                        .Text(@"[R6排位]查无此人").Done();
                    }
                    List <SeasonItem> infos     = res.seasons.Getinfos().OrderByDescending(p => p.id).Take(3).ToList();
                    StringBuilder     sb        = new StringBuilder();
                    RegionsItem       nowSeason = infos.FirstOrDefault().regions.getBest();
                    var rankItem = infos.FirstOrDefault().rankings;
                    sb.AppendLine($"{baseRes.result.player_list.FirstOrDefault().name}-排名(全球/亚/美/欧):{rankItem.global}/{rankItem.apac}/{rankItem.ncsa}/{rankItem.emea}-MMR[{nowSeason.mmr}]-({nowSeason.prev_rank_mmr}/{nowSeason.next_rank_mmr})");
                    infos.ForEach(p =>
                    {
                        var item = p.regions.getBest();
                        sb.AppendLine($"[{p.name}]现/顶:{Utils.ConvertToRankDes(item.rank)}/{Utils.ConvertToRankDes(item.max_rank)}-能力:{item.skill_mean}(±{item.skill_standard_deviation})");
                    });
                    _mahuaApi.SendGroupMessage(context.FromGroup)
                    .Text(sb.ToString())
                    .Text(@"详情:https://r6stats.com/zh/stats/" + res.uplay_id + "/seasons").Done();
                }
                else if (cmd == "R6记录")
                {
                    var ret = Apis.GetUserBaseInfo(nowModel.Who);
                    UserDetailInfoResp resp = Apis.GetUserDetailInfo(ret);
                    if (resp == null)
                    {
                        _mahuaApi.SendGroupMessage(context.FromGroup)
                        .Text(@"[R6记录]查无此人").Done();
                        return;
                    }

                    var           res      = resp.result;
                    var           hisItems = res.items.FirstOrDefault(p => p.type == "matches");
                    StringBuilder sb       = new StringBuilder();
                    foreach (var his in hisItems.content)
                    {
                        if (his.mode == "休闲")
                        {
                            sb.AppendLine(
                                $"[{his.mode}]-场次(胜/负){his.count}({his.win}/{his.lose})-KD(K/D){his.kd}({his.k}/{his.d})-{his.time}");
                        }
                        else
                        {
                            sb.AppendLine(
                                $"[{his.rating}{(his.trend=="down"?"↓":"↑")}({his.diff})]-场次(胜/负){his.count}({his.win}/{his.lose})-KD(K/D){his.kd}({his.k}/{his.d})-{his.time}");
                        }
                    }

                    _mahuaApi.SendGroupMessage(context.FromGroup)
                    .Text($"[{res.player.level}]{res.player.nickname}-{res.player.update_desc}更新 记录如下:").Newline()
                    .Text(sb.ToString().Trim()).Done();
                }
            }
            catch (Exception ex)
            {
                _mahuaApi.SendPrivateMessage("415206409").Text(ex.ToString()).Done();
            }
            // 不要忘记在MahuaModule中注册
        }