Exemple #1
0
        /// <summary>
        /// 通过用户名查询信息,返回字符串(太傻逼了,必须重构)
        /// </summary>
        /// <param name="username"></param>
        /// <returns></returns>
        private async Task <(bool success, string info)> ProcessQuery(string username)
        {
            // 和重载 ProcessQuery(long uid, string para = "") 有重复代码,必须择日重构
            var users = await apiClient.GetUserAsync(username, OsuApiClient.UsernameType.Username);

            if (users == null)
            {
                return(false, "网络错误");
            }
            else if (users.Length == 0)
            {
                return(false, "没这个人!");
            }
            else
            {
                try
                {
                    User user    = users[0];
                    var  history = await MotherShipApi.GetUserNearest(user.Id);

                    return(true, BuildQueryMessage(Mode.Unspecified, user, history));
                }
                catch (ArgumentNullException e)
                {
                    Logger.Log("这是非常重要的异常记录!");
                    Logger.LogException(e);
                    Logger.Log(Newtonsoft.Json.JsonConvert.SerializeObject(users[0]));
                    return(false, "未知异常,真的是未知的,咩咩找了好久都没找出来,请联系咩咩并且告诉他最近做了什么操作");
                }
            }
        }
Exemple #2
0
        /// <summary>
        /// (执行)查询玩家信息,返回字符串
        /// </summary>
        /// <param name="uid"></param>
        /// <param name="m">模式,可选0,1,2,3</param>
        /// <returns></returns>
        private async Task <(bool success, string info)> ProcessQuery(long uid, string para = "")
        {
            // 和重载 ProcessQuery(string) 有重复代码,必须择日重构
            bool   success;
            string message;
            var    mode  = Mode.Unspecified;
            var    paras = para.Split();

            if (paras.Any(p => p == "0" || p.ToLowerInvariant() == "std"))
            {
                mode = Mode.Std;
            }
            else if (paras.Any(p => p == "1" || p.ToLowerInvariant() == "taiko"))
            {
                mode = Mode.Taiko;
            }
            else if (paras.Any(p => p == "2" || p.ToLowerInvariant() == "ctb" || p.ToLowerInvariant() == "catch"))
            {
                mode = Mode.Ctb;
            }
            else if (paras.Any(p => p == "3" || p.ToLowerInvariant() == "mania"))
            {
                mode = Mode.Mania;
            }

            var users = await apiClient.GetUserAsync(uid.ToString(), OsuApiClient.UsernameType.User_id, mode);

            if (users == null)
            {
                success = false; message = "网络错误";
            }
            else if (!users.Any())
            {
                success = false; message = "没这个人!";
            }
            else
            {
                try
                {
                    User user    = users[0];
                    var  history = await MotherShipApi.GetUserNearest(uid, mode);

                    message = BuildQueryMessage(mode, user, history);
                    success = true;
                }
                catch (ArgumentNullException e)
                {
                    Logger.Log("这是非常重要的异常记录!");
                    Logger.LogException(e);
                    Logger.Log(Newtonsoft.Json.JsonConvert.SerializeObject(users[0]));
                    return(false, "未知异常,真的是未知的,咩咩找了好久都没找出来,请联系咩咩并且告诉他最近做了什么操作");
                }
            }
            return(success, message);
        }
        /// <summary>
        /// (执行)查询玩家信息,返回字符串
        /// </summary>
        /// <param name="uid"></param>
        /// <param name="m">模式,可选0,1,2,3</param>
        /// <returns></returns>
        private async Task <(bool success, string info)> ProcessQuery(long uid, string para = "")
        {
            // 和重载 ProcessQuery(string) 有重复代码,必须择日重构
            bool   success;
            string message;
            var    mode  = Mode.Unspecified;
            var    paras = para.Split();

            if (paras.Any(p => p == "0" || p.ToLowerInvariant() == "std"))
            {
                mode = Mode.Std;
            }
            else if (paras.Any(p => p == "1" || p.ToLowerInvariant() == "taiko"))
            {
                mode = Mode.Taiko;
            }
            else if (paras.Any(p => p == "2" || p.ToLowerInvariant() == "ctb" || p.ToLowerInvariant() == "catch"))
            {
                mode = Mode.Ctb;
            }
            else if (paras.Any(p => p == "3" || p.ToLowerInvariant() == "mania"))
            {
                mode = Mode.Mania;
            }

            var users = await apiClient.GetUserAsync(uid.ToString(), OsuApiClient.UsernameType.User_id, mode);

            if (users == null)
            {
                success = false; message = "网络错误";
            }
            else if (!users.Any())
            {
                success = false; message = "没这个人!";
            }
            else
            {
                User user    = users[0];
                var  history = mode == Mode.Std || mode == Mode.Unspecified ? await MotherShipApi.GetUserNearest(uid) : null;

                message = BuildQueryMessage(mode, user, history);
                success = true;
            }
            return(success, message);
        }
        /// <summary>
        /// 通过用户名查询信息,返回字符串(太傻逼了,必须重构)
        /// </summary>
        /// <param name="username"></param>
        /// <returns></returns>
        private async Task <(bool success, string info)> ProcessQuery(string username)
        {
            // 和重载 ProcessQuery(long uid, string para = "") 有重复代码,必须择日重构
            var users = await apiClient.GetUserAsync(username, OsuApiClient.UsernameType.Username);

            if (users == null)
            {
                return(false, "网络错误");
            }
            else if (users.Length == 0)
            {
                return(false, "没这个人!");
            }
            else
            {
                User user    = users[0];
                var  history = await MotherShipApi.GetUserNearest(user.Id);

                return(true, BuildQueryMessage(Mode.Unspecified, user, history));
            }
        }