From bb55ec3be07518abf8ec3fa546817e2b16fc9016 Mon Sep 17 00:00:00 2001 From: Raiyn Aydin Date: Wed, 30 Sep 2026 17:28:41 +0800 Subject: [PATCH 1/2] feat(english): add Empire Novel plugin Closes #2498 --- plugins/english/empirenovel.ts | 326 ++++++++++++++++++++++ public/static/src/en/empirenovel/icon.png | Bin 0 -> 14504 bytes 2 files changed, 326 insertions(+) create mode 100644 plugins/english/empirenovel.ts create mode 100644 public/static/src/en/empirenovel/icon.png diff --git a/plugins/english/empirenovel.ts b/plugins/english/empirenovel.ts new file mode 100644 index 000000000..20142dc57 --- /dev/null +++ b/plugins/english/empirenovel.ts @@ -0,0 +1,326 @@ +import { load as parseHTML } from 'cheerio'; +import { fetchApi } from '@libs/fetch'; +import { Plugin } from '@/types/plugin'; +import { Filters, FilterTypes } from '@libs/filterInputs'; +import { defaultCover } from '@libs/defaultCover'; +import { NovelStatus } from '@libs/novelStatus'; + +/** + * Empire Novel (empirenovel.com) LNReader plugin + * + * A custom Laravel site behind a Cloudflare managed challenge: + * + * - Catalog: `/novels-list?category=&status=&page=N` — 30 + * `.novellist_item` cards per page, sorted by name (the + * site offers no popularity ranking and ignores sort + * parameters on GET). + * - Latest: `/?page=N` — "Latest Releases" `.col_home` blocks. + * - Search: `/search-live?q=` — JSON array of every matching + * novel, unpaginated. + * - Novel page: `/novel/` — metadata plus the newest 30 chapters; + * the rest are split across `?page=N`. + * - Chapter list: `/select-partial//` — the reader's + * chapter `