/// <summary> /// 获取指定条目详情。 /// </summary> /// <param name="subjectId"></param> /// <returns></returns> public async Task <SubjectLarge> Subject(string subjectId) { SubjectLarge result = await $"{HOST}/subject/{subjectId}?responseGroup=large" .GetAsync() .ReceiveJson <SubjectLarge>(); if (result == null) { return(null); } result.Name = System.Net.WebUtility.HtmlDecode(result.Name); result.NameCn = System.Net.WebUtility.HtmlDecode(result.NameCn); result.Images?.ConvertImageHttpToHttps(); // 将章节按类别排序 if (result.Eps != null) { result.Eps = result.Eps.OrderBy(c => c.Type).ThenBy(c => c.Sort).ToList(); foreach (var ep in result.Eps) { ep.Name = System.Net.WebUtility.HtmlDecode(ep.Name); ep.NameCn = System.Net.WebUtility.HtmlDecode(ep.NameCn); } } if (result.Characters != null) { foreach (var crt in result.Characters) { crt.Images?.ConvertImageHttpToHttps(); } } if (result.Staff != null) { foreach (var person in result.Staff) { person.Images?.ConvertImageHttpToHttps(); } } if (result.Blogs != null) { // 将多个换行符替换为一个,并清除多余的空格 Regex regex = new Regex(@"(\r\n)+"); foreach (var blog in result.Blogs) { blog.Title = System.Net.WebUtility.HtmlDecode(blog.Title); blog.Summary = regex.Replace(System.Net.WebUtility.HtmlDecode(blog.Summary), Environment.NewLine).Trim(); blog.User?.Avatar?.ConvertImageHttpToHttps(); } } if (result.Topics != null) { foreach (var topic in result.Topics) { topic.Title = System.Net.WebUtility.HtmlDecode(topic.Title); } } return(_bgmCache.UpdateSubject(subjectId, result)); }
/// <summary> /// 获取指定条目所有章节。 /// </summary> /// <param name="subjectId"></param> /// <returns></returns> public async Task <SubjectLarge> SubjectEp(string subjectId) { SubjectLarge result = await $"{HOST}/subject/{subjectId}/ep" .GetAsync() .ReceiveJson <SubjectLarge>(); if (result == null) { return(null); } // 将章节按类别排序 if (result.Eps != null) { result.Eps = result.Eps.OrderBy(c => c.Type).ThenBy(c => c.Sort).ToList(); foreach (var ep in result.Eps) { ep.Name = System.Net.WebUtility.HtmlDecode(ep.Name); ep.NameCn = System.Net.WebUtility.HtmlDecode(ep.NameCn); } } return(_bgmCache.UpdateSubjectEp(subjectId, result)); }