Repository navigation
fix(readnovelfull): throw on failed novel and chapter requests - #2702
Merged
rajarsheechatterjee merged 2 commits intoOct 19, 2026
Merged
rajarsheechatterjee merged 2 commits into
rajarsheechatterjee merged 2 commits into
Conversation
parseNovel and parseChapter ignored the HTTP status, so a 404 (e.g. an AllNovel novel saved from allnovel.org that novelfull.com does not carry) rendered as an empty novel or an empty chapter. Throw with the status instead, with a clear "not found" message for 404. Closes lnreader#2673
[Medium impact] The PR appears safe to merge. SummaryThe shared ReadNovelFull template now rejects failed novel and chapter requests before reading their bodies.
No actionable issues found. RibatTRW’s description records the declined concern about empty HTTP 200 responses and acknowledges the missing playground screenshots because the live site blocked capture. Reviews (1) · Last reviewed commit: "fix(readnovelfull): throw on failed nove..." · Reviewed by Greptile |
4 tasks done
rajarsheechatterjee
approved these changes
Oct 19, 2026
rajarsheechatterjee
left a comment
Member
There was a problem hiding this comment.
Reviewed with Codex assistance: current diff and review follow-ups inspected; relevant live checks passed in the isolated review environment. Current CI checks are successful. Approval is for commit 22f3601.
rajarsheechatterjee
pushed a commit
that referenced
this pull request
Oct 19, 2026
Reviewed current changes and successful CI; relevant live checks passed. AI-assisted review and merge performed with Codex.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Issue #2673 reports that AllNovel shows chapter 49 ("The Art Of Captivation") of First Demonic Dragon as an empty chapter.
AllNovel's site, allnovel.org, now redirects to novelfull.com (#2400), and novelfull.com does not carry this novel. The novel page and chapters 48, 49 and 50 all return HTTP 404 there. The Wayback Machine shows allnovel.org served the novel at the same paths until early 2026. The ReadNovelFull template ignored the response status, and the 404 page has no chapter container, so
parseChapterreturned"". The reader showed that as an empty chapter, andparseNovelreturned an empty novel.This PR makes that failure visible instead of silent. The chapter content cannot be restored through AllNovel, because its current site does not have the novel. Readers of this novel can migrate to AllNovelFull or ReadNovelFull: both still serve it at the same paths, and chapter 49 renders in full on AllNovelFull (screenshot below).
What changed
parseChapterandparseNovelinplugins/multisrc/readnovelfull/template.tsnow throw on a non-OK response:Chapter not found (404), it may have been removed from this source.(orNovel not found…)Could not reach site (<status>: <text>) try to open in webview.message2.2.(1 + versionIncrements)to2.2.(2 + versionIncrements)(e.g. AllNovel and AllNovelFull 2.2.2 → 2.2.3).Testing
novelfull.com/first-demonic-dragon/chapter-49-the-art-of-captivation.htmlreturns 404. Before this change the generated AllNovel plugin returned""for it; after, it throws the 404 message above.npm run dev:start, headless Chromium):reincarnated-as-a-demonic-dragon…/chapter-49-49-let-me-see-your-ability.html): the chapter still renders (6,745 characters).npm run check:pluginfor AllNovel was INCONCLUSIVE (Cloudflare 403 to Node).AllNovel: chapter 49 from the issue now shows a clear error
AllNovel: a chapter novelfull.com carries still renders
AllNovelFull (same template): First Demonic Dragon chapter 49 renders
AllNovelFull: novel details and chapter list
AllNovelFull: search and popular listing
Closes #2673
This change and its description were written with an AI agent (Claude Code). Please weigh the review accordingly.
🤖 Generated with Claude Code
Pipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ No issues found.
✅ **Rebase** - passed
✅ No issues found.
✅ No issues found.
⏭️ **Test** - skipped
plugins/multisrc/readnovelfull/template.ts- The issue's chapter was not reproduced against the real site, so it is unconfirmed that chapter 49 returns a non-2xx status. If it returns 200 with an empty #chr-content, the change still returns an empty chapter. The user already declined this concern in review round 1. Playground screenshots are also missing.npm run build:multisrcnpm cinpm run check:plugin -- "plugins/english/AllNovel[readnovelfull].ts"(INCONCLUSIVE: HTTP 403 Cloudflare)Bundled the AllNovel plugin with esbuild and called parseNovel and parseChapter against a local server returning 404, 503 and 200 responses✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.