Skip to content

feat(english/bronstl): add BronsTL - #2775

Open
Gourab0002 wants to merge 1 commit into
lnreader:masterfrom
Gourab0002:feat/english-bronstl
Open

Gourab0002 wants to merge 1 commit into
lnreader:masterfrom
Gourab0002:feat/english-bronstl

Conversation

@Gourab0002

Copy link
Copy Markdown
Contributor

Closes #2768

What changed

  • New standalone plugin plugins/english/bronstl.ts (v1.0.0) for https://bronstl.com
  • Icon public/static/src/en/bronstl/icon.png (96x96, rendered from the site's favicon SVG)

Why

BronsTL is a Laravel + Vue SPA, not WordPress, so no multisrc template fits. The frontend pulls everything from a public JSON API, and the plugin uses the same endpoints:

  • popularNovels: /api/books (follows next_page_url pagination)
  • searchNovels: the API has no search param, so it filters the full book list by title/author on the client (the catalogue is small)
  • parseNovel: /api/books/{slug} + /api/books/{slug}/chapters (all pages, sorted by chapter_weight)
  • parseChapter: /api/books/{slug}/chapters/{chapterSlug}; relative /storage/... image URLs are made absolute

Verification

  • npm run check:plugin -- plugins/english/bronstl.ts: all 4 checks pass (popular 4 novels, search 1 result, parseNovel 4 chapters, parseChapter 748 chars)
  • npx tsc --project tsconfig.production.json --noEmit: pass
  • npx eslint plugins/english/bronstl.ts: pass
  • npm run build:full: pass

Risks

  • The first chapter of each volume is an "illustrations" chapter made only of images. It passes the live check (748 chars of HTML), but it would fail if the site trimmed that markup.
  • Client-side search fetches the whole catalogue, which is fine at the current size but would slow down if the site grew a lot.
  • The API is undocumented, so it may change without notice.

Authored with help from Grok Bot (AI agent).

Uses the site's public Laravel JSON API (/api/books, /api/books/{slug}/chapters) for listing, search, novel details and chapters.

Co-Authored-By: Grok Bot (AI agent)
@greptile-apps

greptile-apps Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

RetriggerView in GreptileConfidence Score: 4/5

[Low impact] The change reaches readers who choose the BronsTL source.

The PR appears safe to merge, with a non-blocking fix needed for cover URLs during EPUB export.

Findings

  1. P2 Export breaks absolute cover URLs ▶

Summary

Adds a standalone BronsTL plugin and its icon.

  • Readers can browse and read BronsTL novels in LNReader.

Acknowledged by Gourab0002: full-catalogue search may slow down as the site grows; illustration-only chapters depend on retained image markup; the undocumented API may change. These known risks were not reported again.

Reviews (1) · Last reviewed commit: "feat(english/bronstl): add BronsTL" · Reviewed by Greptile

}

resolveUrl(path: string): string {
return this.site + '/' + path.replace(/^\//, '');

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 Export breaks absolute cover URLs

useEpubExport passes the cover URL to resolveUrl, but this method always adds https://bronstl.com/. For example, a book without a cover uses the absolute defaultCover URL, which becomes https://bronstl.com/https://github.com/.... The exporter then requests the wrong image address. Return absolute URLs unchanged before adding the site to relative paths.

Suggested change
return this.site + '/' + path.replace(/^\//, '');
if (/^https?:\/\//i.test(path)) return path;
return this.site + '/' + path.replace(/^\//, '');

This branch has not been deployed

No deployments
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.

BronsTL

1 participant