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)); }