/// <summary> /// 获取用户信息(修复了API问题) /// </summary> /// <param name="u">用户名或者 ID(必需)</param> /// <param name="type">指定u是用户名还是id</param> /// <param name="mode">模式(可选,-1为默认)</param> /// <param name="event_days"></param> /// <returns>查找到的用户数组;如果没找到,返回空数组;如果发生异常,返回null</returns> public async Task <UserRaw[]> GetUserAsync(string u, UsernameType type = UsernameType.Unspecified, Mode mode = Mode.Unspecified, int event_days = -1) { if (string.IsNullOrWhiteSpace(u)) { throw new ArgumentNullException(nameof(u)); } int m = (int)mode; if (m < -1 || m > 3) { throw new ArgumentOutOfRangeException(nameof(m)); } if (event_days == 0 || event_days < -1 || event_days > 31) { throw new ArgumentOutOfRangeException(nameof(event_days)); } List <KeyValuePair <string, string> > list = new List <KeyValuePair <string, string> > { new KeyValuePair <string, string>("k", apiKey), new KeyValuePair <string, string>("u", u) }; if (m != -1) { list.Add(new KeyValuePair <string, string>("m", m.ToString())); } switch (type) { case UsernameType.Unspecified: break; case UsernameType.Username: list.Add(new KeyValuePair <string, string>("type", "string")); break; case UsernameType.User_id: if (!long.TryParse(u, out long uid)) { throw new ArgumentException(u); } list.Add(new KeyValuePair <string, string>("type", "id")); break; default: throw new ArgumentException(nameof(type)); } if (event_days != -1) { list.Add(new KeyValuePair <string, string>("event_days", event_days.ToString())); } string jsonResult; jsonResult = await GetHttpAsync($"{protocol}://{site}{paths[InformationType.User]}", list.ToArray()); if (jsonResult == null) { return(null); } var result = JsonConvert.DeserializeObject <IEnumerable <UserRaw> >(jsonResult); // 确保返回数据满足指定类型 if (result.Any()) { switch (type) { case UsernameType.Username: result = result.TakeWhile(user => user.username.ToLower(System.Globalization.CultureInfo.InvariantCulture) == u.ToLower(System.Globalization.CultureInfo.InvariantCulture) ); break; case UsernameType.User_id: result = result.TakeWhile(user => user.user_id == u); break; } } return(result.ToArray()); }
private void cbUsernameType_search_SelectionChanged(object sender, SelectionChangedEventArgs e) { int choice = cbUsernameType_search.SelectedIndex; switch (choice) { case 0: usernameType = UsernameType.ALL; tbUsername_search.IsEnabled = false; tbUsername_search.Text = ""; break; case 1: usernameType = UsernameType.MINE; tbUsername_search.IsEnabled = false; tbUsername_search.Text = ""; break; case 2: usernameType = UsernameType.OTHER; tbUsername_search.IsEnabled = true; tbUsername_search.Text = ""; break; } }
/// <summary> /// 获取用户信息(修复了API问题),可以指定是否允许本地缓存(未实现) /// </summary> /// <param name="forceUpdate">强制不使用缓存</param> /// <param name="u">用户名或者 ID(必需)</param> /// <param name="type">指定u是用户名还是id</param> /// <param name="mode">模式(可选,-1为默认)</param> /// <param name="event_days"></param> /// <returns>查找到的用户数组;如果没找到,返回空数组;如果发生异常,返回null</returns> public /*async*/ Task <UserRaw[]> GetUserAsync(bool forceUpdate, string u, UsernameType type = UsernameType.Unspecified, Mode mode = Mode.Unspecified, int event_days = -1) { throw new NotImplementedException(); }