/// <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, "未知异常,真的是未知的,咩咩找了好久都没找出来,请联系咩咩并且告诉他最近做了什么操作"); } } }
/// <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)); } }