Skip to content

fix(multisrc): fix FreeWebNovel cover images failing to load (#2577) - #2626

Merged
rajarsheechatterjee merged 2 commits into
lnreader:masterfrom
52191314:fix/freewebnovel
Oct 4, 2026
Merged

rajarsheechatterjee merged 2 commits into
lnreader:masterfrom
52191314:fix/freewebnovel

Conversation

@52191314

@52191314 52191314 commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

Closes #2577

  • Add Referer header to imageRequestInit in readnovelfull multisrc template to unblock hotlink protection
  • Fall back to data-cfsrc and data-original image attributes and filter out inline data: base64 placeholders
  • Bump FWN version to 1.0.5

Checklist

  • Update version code if an existing plugin was modified
  • Test changes in Plugin Playground or the app
  • Reference related issues in the PR body (e.g. Closes #xyz)

…ink protection

- Add imageRequestInit with site Referer header to bypass Cloudflare image hotlink blocks in app image loader
- Support data-cfsrc and data-original attributes in parseNovels and parseNovel to extract actual covers instead of data URI placeholders
- Bump versionIncrements for FWN.com to 5

Closes lnreader#2577
@greptile-apps

greptile-apps Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

RetriggerConfidence Score: 4/5

[Medium risk] Fixes cover image loading for a novel reader plugin.

This PR is not ready to merge because a novel page can lose a usable cover.

Findings

  1. P1 A usable cover gets skipped ▶
  2. P2 Other sources keep old versions ▶

Summary

The shared ReadNovelFull plugin now finds cover URLs in more image fields and sends image requests with the source site's Referer. Free Web Novel's version increment is bumped to 5.

  • Both novel-list and novel-detail parsing check lazy-loaded image fields and skip inline data: placeholders.
  • The image request includes the source site's address.

Reviews (1) · Last reviewed commit: "fix(readnovelfull/freewebnovel): resolve..."

Comment on lines 428 to 435
const cover =
attribs.src ?? attribs['data-cfsrc'] ?? attribs['data-src'];
attribs['data-src'] ||
attribs['data-cfsrc'] ||
attribs['data-original'] ||
attribs.src;
const name = attribs.title;
if (cover) {
if (cover && !cover.startsWith('data:')) {
novel.cover = new URL(cover, this.site).href;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 A usable cover gets skipped

If a novel page has an inline placeholder in data-src and a real cover URL in src, this code picks the placeholder, rejects it, and never tries src. The novel loses its cover. Skip placeholders while choosing an image URL so the code can try the next attribute.

"chapterListing": "api/chapterlist.php",
"chapterParam": "aid",
"versionIncrements": 4,
"versionIncrements": 5,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Other sources keep old versions

The shared template changes the generated code for all eight sources, but only FWN.com gets a new version. If the app uses that version to offer updates, users with the other seven sources will not be offered the changed plugin. Bump those versions too, or limit the shared change to FWN.com.

@rajarsheechatterjee
rajarsheechatterjee merged commit ae7c083 into lnreader:master Oct 4, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

​[Bug] Novel cover thumbnails fail to load/render in source gallery

2 participants