示例#1
0
        protected override async Task <GetChaptersResponse> GetChaptersAsync(GetChaptersRequest request)
        {
            var r       = new GetChaptersResponse();
            var keyList = request.ChapterKeys.ToArray();

            for (var i = 0; i < keyList.Length; i++)
            {
                var ck = keyList[i];
                if (ck.StartsWith("n"))
                {
                    var pck  = ck.Substring(1);
                    var pdoc = await GetDoc(new Uri($"read/{request.BookKey}/{pck}.html", UriKind.Relative));

                    ck = await parseChapterPageAsync(new ChapterDataDetailed(), pdoc);
                }
                var doc = await GetDoc(new Uri($"read/{request.BookKey}/{ck}.html", UriKind.Relative));

                var cc = new ChapterDataDetailed();
                var nk = await parseChapterPageAsync(cc, doc);

                if (i + 1 < keyList.Length && keyList[i + 1].Substring(1) == ck)
                {
                    keyList[i + 1] = nk;
                }
                r.Chapters.Add(cc);
            }
            return(r);
        }
        protected override async Task <GetChaptersResponse> GetChaptersAsync(GetChaptersRequest request)
        {
            var r       = new GetChaptersResponse();
            var keyList = request.ChapterKeys.ToArray();

            for (var i = 0; i < keyList.Length; i++)
            {
                var ck  = keyList[i].Split(new[] { ' ' }, 2);
                var doc = await GetDoc(new Uri($"/xiaoshuo/{request.BookKey}/{ck[0]}.html", UriKind.Relative));

                var cc = new ChapterDataDetailed {
                    Key = keyList[i], VolumeTitle = ck[1]
                };
                parseChapterPage(cc, doc);
                r.Chapters.Add(cc);
            }
            return(r);
        }
        public async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, new string[] { "post", "get" }, Route = null)]
            HttpRequest req,
            ILogger log
            )
        {
            string Error   = "";
            string Content = "";

            try
            {
                var ChapterItems = ChapterRepository.GetChapters();

                return(new JsonResult(new GetChaptersResponse()
                {
                    Chapters = ChapterItems
                }));
            }
            catch (UnsupportedMediaTypeException ex)
            {
                log.LogError(ex, "Unsupported media type returned");
                Error = "Unsupported Media Type: " + ex.Message + "|" + ex.StackTrace;
            }
            catch (Exception ex)
            {
                log.LogError(ex.Message);
                Error = "Error.  Content: " + Content + ", " + ex.Message + "|" + ex.StackTrace;
            }

            var ErrorResponse = new GetChaptersResponse()
            {
                Chapters = null,
                Error    = Error
            };

            return(new JsonResult(ErrorResponse));
        }