Пример #1
0
        /// <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));
        }
Пример #2
0
        /// <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));
        }