3 Commits

Author SHA1 Message Date
masi 0fd7b27d08 perf(scripts): share npm dependencies across plugin bundles
Bundled standalone, every plugin carried its own cheerio/htmlparser2/etc.:
loading 165 plugins took ~13 s and 1.2 GB (2.2 GB while building). With npm
packages external they share node_modules: 0.5 s / 104 MB (build 1.5 s).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 14:25:48 -03:00
masi 5c444fc35a feat(scripts): cached plugin bundle, single-plugin fetch, free-chapter prefix, nightly appender
- load-plugins: bundle once per source revision with an id index; loadPlugin(id)
  loads one plugin (144 ms / 87 MB instead of ~15 s / 1.2 GB).
- fetch-novel: keep only the contiguous run of free chapters (no locked teasers).
- update-novels: append newly free chapters to our EPUBs without moving positions.
- find-novel --json for programs; shared EPUB pieces in epub.js.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 14:05:51 -03:00
masi fba9a35075 feat: fetch-novel builds an EPUB from any plugin; Kavita TOC fix
Publish Plugins / Publish Plugins (push) Has been cancelled
- scripts/load-plugins.js: shared plugin loader for the novel CLI scripts
- scripts/fetch-novel.js: download a novel via its plugin into a clean EPUB 3
- find-novel prints the plugin id/path for each match
- kavita 1.0.1: innermost TOC entry names the chapter

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 13:40:23 -03:00