public async Task <Calendar[]> GetAsync() { using (var client = new BangumiClient()) { var json = await client.GetStringAsync("/calendar"); return(JsonConvert.DeserializeObject <Calendar[]>(json)); } }
/// <summary> /// 用户基础信息 /// </summary> /// <param name="uid">UID</param> /// <returns></returns> public async Task <User> Get(int uid) { var url = $"/user/{uid}"; using (var client = new BangumiClient()) { var json = await client.GetStringAsync(url); return(JsonConvert.DeserializeObject <User>(json)); } }
public async Task <SubjectCollectionInfo> GetSubjectCollectionInfo(int subjectId) { var url = $"/collection/{subjectId}"; using (var client = new BangumiClient(_oauthProvider)) { var json = await client.GetStringAsync(url); return(JsonConvert.DeserializeObject <SubjectCollectionInfo>(json)); } }
public async Task <Subject> GetEps(int subjectId) { var url = $"/subject/{subjectId}/ep"; using (var client = new BangumiClient()) { var json = await client.GetStringAsync(url); return(JsonConvert.DeserializeObject <Subject>(json)); } }
/// <summary> /// 用户收视进度 /// </summary> /// <param name="uid">UID</param> /// <param name="subjectId">条目 ID</param> /// <returns></returns> public async Task <Progress[]> GetProgress(int uid, int?subjectId = null) { var url = $"/user/{uid}/progress"; if (subjectId.HasValue) { url += $"?subject_id={subjectId}"; } using (var client = new BangumiClient(_oauthProvider)) { var json = await client.GetStringAsync(url); return(JsonConvert.DeserializeObject <Progress[]>(json)); } }
/// <summary> /// 用户基础信息 /// </summary> /// <param name="username">用户名</param> /// <returns></returns> public async Task <User> Get(string username) { if (username == null) { throw new ArgumentNullException(nameof(username)); } var url = $"/user/{WebUtility.UrlEncode(username)}"; using (var client = new BangumiClient()) { var json = await client.GetStringAsync(url); return(JsonConvert.DeserializeObject <User>(json)); } }
public async Task <Subject> Get(int id, ResponseGroup responseGroup = ResponseGroup.Small) { if (!Enum.IsDefined(typeof(ResponseGroup), responseGroup)) { throw new ArgumentOutOfRangeException(nameof(responseGroup)); } var url = $"/subject/{id}?responseGroup={responseGroup.ToString().ToLowerInvariant()}"; using (var client = new BangumiClient()) { var json = await client.GetStringAsync(url); return(JsonConvert.DeserializeObject <Subject>(json)); } }
public async Task <UserCollection[]> GetCollection(int uid, CollectionCategory category, ResponseGroup responseGroup = ResponseGroup.Medium) { if (!Enum.IsDefined(typeof(CollectionCategory), category)) { throw new ArgumentOutOfRangeException(nameof(category)); } if (!Enum.IsDefined(typeof(ResponseGroup), responseGroup)) { throw new ArgumentOutOfRangeException(nameof(responseGroup)); } var url = $"/user/{uid}/collection?cat={(category == CollectionCategory.Watching ? "watching" : "all_watching")}&responseGroup={responseGroup.ToString().ToLowerInvariant()}"; using (var client = new BangumiClient()) { var json = await client.GetStringAsync(url); return(JsonConvert.DeserializeObject <UserCollection[]>(json)); } }
/// <summary> /// 用户收视进度 /// </summary> /// <param name="username">用户名</param> /// <param name="subjectId">条目 ID</param> /// <returns></returns> public async Task <Progress[]> GetProgress(string username, int?subjectId = null) { if (username == null) { throw new ArgumentNullException(nameof(username)); } var url = $"/user/{WebUtility.UrlEncode(username)}/progress"; if (subjectId.HasValue) { url += $"?subject_id={subjectId}"; } using (var client = new BangumiClient(_oauthProvider)) { var json = await client.GetStringAsync(url); return(JsonConvert.DeserializeObject <Progress[]>(json)); } }
public async Task <ListResult <Subject> > Search(string keywords, SubjectType?type = null, ResponseGroup responseGroup = ResponseGroup.Small, int start = 0, int maxResults = 10) { if (keywords == null) { throw new ArgumentNullException(nameof(keywords)); } if (start < 0) { throw new ArgumentOutOfRangeException(nameof(start)); } if (maxResults <= 0) { throw new ArgumentOutOfRangeException(nameof(maxResults)); } var url = $"/search/subject/{WebUtility.UrlEncode(keywords)}"; var query = new Dictionary <string, string>(); if (type.HasValue) { query["type"] = ((int)type.Value).ToString(); } query["responseGroup"] = responseGroup.ToString().ToLowerInvariant(); query["start"] = start.ToString(); query["max_results"] = maxResults.ToString(); if (query.Count > 0) { url += "?" + string.Join("&", query.Select(temp => temp.Key + "=" + WebUtility.UrlEncode(temp.Value))); } using (var client = new BangumiClient()) { var json = await client.GetStringAsync(url); return(JsonConvert.DeserializeObject <ListResult <Subject> >(json)); } }