Skip to content

feat(portuguese): add blnovels plugin - #2546

Merged
rajarsheechatterjee merged 1 commit into
lnreader:masterfrom
RibatTRW:fm/lnreader-blnovels-plugin
Sep 24, 2026
Merged

rajarsheechatterjee merged 1 commit into
lnreader:masterfrom
RibatTRW:fm/lnreader-blnovels-plugin

Conversation

@RibatTRW

@RibatTRW RibatTRW commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

Addition

New Portuguese source plugin for blnovels.com, a Brazilian BL site. Requested in #2541. Adds plugins/portuguese/blnovels.ts (id: blnovels, v1.0.0) and its 96x96 icon. No existing file is touched.

Standalone plugin rather than a Madara sources.json entry, although the site runs the Madara theme: the shared template sends no User-Agent (this Cloudflare-fronted site needs per-source browser headers; reworking the template would touch all 77 generated sources), serves chapter dates only as Portuguese relative titles in a title attribute (the template would stamp every chapter "today", inventing data), and serves its chapter list inline — the legacy admin-ajax manga_get_chapters endpoint answers HTTP 400 here, so the template's chapter path is dead.

Behavior: catalog popular/latest with real pagination (12 cards/page, 404 past the end), search matching site ground truth, novel detail (author, Status, genres, summary, full-size covers with WP size suffixes stripped — 66/66 sampled URLs return 200), inline chapter list verified complete on a 175-chapter novel and byte-identical in order to the site's own ajax chapter endpoint, chapter text as real prose only, and the site's own advanced-search filters (60 genre slugs, status, order). Dates parse where the site provides them; older chapters with no date get null — no date is invented. Non-2xx responses throw with the HTTP status so runner-side Cloudflare blocks report INCONCLUSIVE, and bot-interstitial titles throw instead of parsing empty.

Verification

check:plugin passes all four steps live (12 popular, 2 search results, 9-chapter novel, 18758-char chapter). A 175-chapter novel lists chapters 1–175 ascending with unique numbers and populated metadata. Playground run: 12 popular cards, a 45-chapter novel detail (chapters 1–45 oldest-first, dates only where the site provides them), a 12050-char chapter of real Portuguese prose, and a 4-card search matching ground truth. build:compile and build:manifest clean; new files clean under eslint, prettier, and tsc (repo-wide findings are pre-existing in untouched files).

Caveat: single network vantage point, automated run only — the Cloudflare INCONCLUSIVE path is implemented per the runner's documented heuristic but was never triggered here. AI-authored change, no human review.

New LNReader source for blnovels.com (Madara theme, Portuguese/Brazil),
closes the source request in lnreader#2541.

Authored by an autonomous AI agent (pi coding agent); not human-reviewed.

Co-Authored-By: pi coding agent <noreply@pi.dev>
@rajarsheechatterjee
rajarsheechatterjee merged commit bdcd803 into lnreader:master Sep 24, 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.

2 participants