From dba971037d3da6fa9c91776e8491269ad2a71143 Mon Sep 17 00:00:00 2001 From: D3ICIDE <183315953+D3ICIDE@users.noreply.github.com> Date: Wed, 5 Aug 2026 23:46:42 +0530 Subject: [PATCH 1/8] RanobeChangesFinal --- plugins/multisrc/ranobes/template.ts | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/plugins/multisrc/ranobes/template.ts b/plugins/multisrc/ranobes/template.ts index 13d2613f8..6cba470a9 100644 --- a/plugins/multisrc/ranobes/template.ts +++ b/plugins/multisrc/ranobes/template.ts @@ -28,12 +28,34 @@ export class RanobesPlugin implements Plugin.PluginBase { this.name = metadata.sourceName; this.icon = 'multisrc/ranobes/ranobes/icon.png'; this.site = metadata.sourceSite; - this.version = '2.0.2'; + this.version = '2.0.3'; this.options = metadata.options as RanobesOptions; } + private static requestQueue: Promise = Promise.resolve(); + private static readonly MIN_DELAY_MS = 1200; - async safeFecth(url: string, init?: FetchInit): Promise { + private async throttle(): Promise { + const previous = RanobesPlugin.requestQueue; + let release: () => void; + RanobesPlugin.requestQueue = new Promise(res => (release = res)); + await previous; + await new Promise(res => setTimeout(res, RanobesPlugin.MIN_DELAY_MS)); + release!(); + } + + async safeFecth(url: string, init?: FetchInit, retries = 3): Promise { + await this.throttle(); const r = await fetchApi(url, init); + + if (r.status === 429) { + if (retries <= 0) + throw new Error('Rate limited (429), too many retries.'); + const retryAfter = r.headers.get('Retry-After'); + const waitMs = retryAfter ? parseInt(retryAfter, 10) * 1000 : 3000; + await new Promise(res => setTimeout(res, waitMs)); + return this.safeFecth(url, init, retries - 1); + } + if (!r.ok) throw new Error( 'Could not reach site (' + r.status + ') try to open in webview.', @@ -175,6 +197,7 @@ export class RanobesPlugin implements Plugin.PluginBase { }; async popularNovels(page: number): Promise { + await new Promise(res => setTimeout(res, 1000)); const link = `${this.site}/${this.options.path}/page/${page}/`; const body = await this.safeFecth(link); return this.parseNovels(body); From 16331d159f1ea581d112c704f3b379d9431fffb9 Mon Sep 17 00:00:00 2001 From: D3ICIDE <183315953+D3ICIDE@users.noreply.github.com> Date: Thu, 6 Aug 2026 00:14:08 +0530 Subject: [PATCH 2/8] small fix --- plugins/multisrc/ranobes/template.ts | 32 +++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/plugins/multisrc/ranobes/template.ts b/plugins/multisrc/ranobes/template.ts index 6cba470a9..eed115944 100644 --- a/plugins/multisrc/ranobes/template.ts +++ b/plugins/multisrc/ranobes/template.ts @@ -32,15 +32,25 @@ export class RanobesPlugin implements Plugin.PluginBase { this.options = metadata.options as RanobesOptions; } private static requestQueue: Promise = Promise.resolve(); + private static lastRequestTime = 0; private static readonly MIN_DELAY_MS = 1200; private async throttle(): Promise { const previous = RanobesPlugin.requestQueue; let release: () => void; RanobesPlugin.requestQueue = new Promise(res => (release = res)); - await previous; - await new Promise(res => setTimeout(res, RanobesPlugin.MIN_DELAY_MS)); - release!(); + try { + await previous; + const now = Date.now(); + const elapsed = now - RanobesPlugin.lastRequestTime; + const remaining = RanobesPlugin.MIN_DELAY_MS - elapsed; + if (remaining > 0) { + await new Promise(res => setTimeout(res, remaining)); + } + RanobesPlugin.lastRequestTime = Date.now(); + } finally { + release!(); + } } async safeFecth(url: string, init?: FetchInit, retries = 3): Promise { @@ -50,8 +60,21 @@ export class RanobesPlugin implements Plugin.PluginBase { if (r.status === 429) { if (retries <= 0) throw new Error('Rate limited (429), too many retries.'); + const retryAfter = r.headers.get('Retry-After'); - const waitMs = retryAfter ? parseInt(retryAfter, 10) * 1000 : 3000; + let waitMs = 3000; // safe default + if (retryAfter) { + if (/^\d+$/.test(retryAfter.trim())) { + // delta-seconds format + waitMs = parseInt(retryAfter, 10) * 1000; + } else { + // HTTP-date format + const dateMs = Date.parse(retryAfter); + if (!isNaN(dateMs)) { + waitMs = Math.max(0, dateMs - Date.now()); + } + } + } await new Promise(res => setTimeout(res, waitMs)); return this.safeFecth(url, init, retries - 1); } @@ -197,7 +220,6 @@ export class RanobesPlugin implements Plugin.PluginBase { }; async popularNovels(page: number): Promise { - await new Promise(res => setTimeout(res, 1000)); const link = `${this.site}/${this.options.path}/page/${page}/`; const body = await this.safeFecth(link); return this.parseNovels(body); From 2f61fe4d69804d7f7bd6b1ee57b158a3ac72d112 Mon Sep 17 00:00:00 2001 From: Vaibhav <183315953+D3ICIDE@users.noreply.github.com> Date: Thu, 6 Aug 2026 00:22:20 +0530 Subject: [PATCH 3/8] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- plugins/multisrc/ranobes/template.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/plugins/multisrc/ranobes/template.ts b/plugins/multisrc/ranobes/template.ts index eed115944..8e725fc1e 100644 --- a/plugins/multisrc/ranobes/template.ts +++ b/plugins/multisrc/ranobes/template.ts @@ -37,8 +37,10 @@ export class RanobesPlugin implements Plugin.PluginBase { private async throttle(): Promise { const previous = RanobesPlugin.requestQueue; - let release: () => void; - RanobesPlugin.requestQueue = new Promise(res => (release = res)); + let release!: () => void; + RanobesPlugin.requestQueue = new Promise(res => { + release = res; + }); try { await previous; const now = Date.now(); @@ -49,7 +51,7 @@ export class RanobesPlugin implements Plugin.PluginBase { } RanobesPlugin.lastRequestTime = Date.now(); } finally { - release!(); + release(); } } From 58464fb25fda3acc039c99d698f003828ae8f8a4 Mon Sep 17 00:00:00 2001 From: D3ICIDE <183315953+D3ICIDE@users.noreply.github.com> Date: Thu, 6 Aug 2026 01:01:00 +0530 Subject: [PATCH 4/8] LunoxScans --- .../multisrc/madara/filters/lunoxscans.json | 264 ++++++++++++++++++ plugins/multisrc/madara/sources.json | 10 + .../multisrc/madara/lunoxscans/icon.png | Bin 0 -> 1705 bytes 3 files changed, 274 insertions(+) create mode 100644 plugins/multisrc/madara/filters/lunoxscans.json create mode 100644 public/static/multisrc/madara/lunoxscans/icon.png diff --git a/plugins/multisrc/madara/filters/lunoxscans.json b/plugins/multisrc/madara/filters/lunoxscans.json new file mode 100644 index 000000000..0eefe5dd5 --- /dev/null +++ b/plugins/multisrc/madara/filters/lunoxscans.json @@ -0,0 +1,264 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Action", + "value": "action" + }, + { + "label": "Adult", + "value": "adult" + }, + { + "label": "Adventure", + "value": "adventure" + }, + { + "label": "Chaebol", + "value": "chaebol" + }, + { + "label": "Comedy", + "value": "comedy" + }, + { + "label": "Drama", + "value": "drama" + }, + { + "label": "Fantasy", + "value": "fantasy" + }, + { + "label": "Growth", + "value": "growth" + }, + { + "label": "Harem", + "value": "harem" + }, + { + "label": "Historical", + "value": "historical" + }, + { + "label": "Horror", + "value": "horror" + }, + { + "label": "Isekai", + "value": "isekai" + }, + { + "label": "Josei", + "value": "josei" + }, + { + "label": "Magic", + "value": "magic" + }, + { + "label": "Martial Arts", + "value": "martial-arts" + }, + { + "label": "Mature", + "value": "mature" + }, + { + "label": "Mecha", + "value": "mecha" + }, + { + "label": "Modern", + "value": "modern" + }, + { + "label": "Mystery", + "value": "mystery" + }, + { + "label": "Possession", + "value": "possession" + }, + { + "label": "Psychological", + "value": "psychological" + }, + { + "label": "Regression", + "value": "regression" + }, + { + "label": "Reincarnation", + "value": "reincarnation" + }, + { + "label": "Revenge", + "value": "revenge" + }, + { + "label": "Reverse", + "value": "reverse" + }, + { + "label": "Romance", + "value": "romance" + }, + { + "label": "Royalty", + "value": "royalty" + }, + { + "label": "s", + "value": "s" + }, + { + "label": "School Life", + "value": "school-life" + }, + { + "label": "Sci-fi", + "value": "sci-fi" + }, + { + "label": "Seinen", + "value": "seinen" + }, + { + "label": "Shoujo", + "value": "shoujo" + }, + { + "label": "Shounen", + "value": "shounen" + }, + { + "label": "Slice of Life", + "value": "slice-of-life" + }, + { + "label": "Sports", + "value": "sports" + }, + { + "label": "Supernatural", + "value": "supernatural" + }, + { + "label": "Tragedy", + "value": "tragedy" + }, + { + "label": "Warrior", + "value": "warrior" + }, + { + "label": "Wuxia", + "value": "wuxia" + }, + { + "label": "x", + "value": "x" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "OnGoing", + "value": "on-going" + }, + { + "label": "Completed", + "value": "end" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + }, + { + "label": "Upcoming", + "value": "upcoming" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/plugins/multisrc/madara/sources.json b/plugins/multisrc/madara/sources.json index 6f4b088e4..8540243bc 100644 --- a/plugins/multisrc/madara/sources.json +++ b/plugins/multisrc/madara/sources.json @@ -651,5 +651,15 @@ "useNewChapterEndpoint": true, "versionIncrements": 2 } + }, + { + "id": "lunoxscans", + "sourceSite": "https://lunoxscans.com/", + "sourceName": "LunoxScans", + "options": { + "lang": "English", + "useNewChapterEndpoint": true, + "versionIncrements": 1 + } } ] diff --git a/public/static/multisrc/madara/lunoxscans/icon.png b/public/static/multisrc/madara/lunoxscans/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0dcfd325cc2ab8ab87461bbeab79139b9a6596ab GIT binary patch literal 1705 zcmV;a23GlrP)d|zU0M!HklvA>?oi`m)5h^TzNT(x7(+&W&q#aV;0*g>t0kj1~ng=G5dnP3TF@i`*cgzJ1*6n(YX0?k^CTH}GJyP;(6cA-hc$An-u^b~W>rGbC~A0YVyD)$kQ; zF$JcR=jO>_qST~y54};g9XtR^6CAoo7&vJyG1I+LQap(s&Hr6U)0&S$4 z9U!T7qg?|=0ys<+*iM(A+f!kqxY0(aqC~o=X=)G;IB`J*a8_9OR_(o zrHorX)_5DUfp9V`fz5aebE(h5V-1-|NC0-{Dn<*db&Iv80A^|49sCkmhXRnbOfcHD z)_&^+V-812C?N8P05pwgH%b7S*$Qj53-$&Zgb?6Ph)MCcDmlD(O%8xAX43I8vysa6 z-2B0Y!as7Diji}xBe5-wS%59*d9#yafhp1kbI!KSzUg=Xu+G7jN3e-^o~_0WV4oA& zUz7pXorV4?Y-aS66N4I^%g~=Oy254w#6Hc?(;Icc{B#tdkY>{w+>6!ow2LA@b8hQ$ zN^UX0z-YdD_!4B&hBoHl@?2JNlU3=EM%X^S(=-iUw%&=57>A)1Apb-?5R`j$59WdnLEanFfJp!{5thFa}w*29d5 zcMREFWM$BjOEonD!Nf|~s~(G*JYA|IfOOw0oMTLi!Gs)flE^8^TbAspT)OTvCj*~* zG!qeQfgY5`19)az?-rcCPj}W>(L31Um?LYm`A|WL)RzK;B{MmD5Kn=%5O__DS{npA zIc}PhvsGC1V=D_D%~xfB0~=c{LXtXI;-qNX5*Y#X5&6F!?2{%_@w7yfU`$IIo51eu zs1cUU45R{|YW>s^Xf|eHi80*yo;lp&&2Rn)yU7}- zVx<7JfKvXTnLUXxMPIaizpkv>nSuMhWKg7vZ`Gp)n`u_5izxhbj+lysEPHa-e z1(74vZJokF80|D+lT}YQWd(W&1iJ3(Bg*c<>>h=s2Rck$1aMz!SzS;Gcg|t;eP!ws zpY(66pvgwr$-O~MZ4VAyE%QPwa;UaBpvv+}cfcI*;yv@9jpnq`}do%qTfd0*e z Date: Thu, 6 Aug 2026 01:05:27 +0530 Subject: [PATCH 5/8] Update publish-plugins.yml --- .github/workflows/publish-plugins.yml | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/.github/workflows/publish-plugins.yml b/.github/workflows/publish-plugins.yml index 279c89b07..914d89e23 100644 --- a/.github/workflows/publish-plugins.yml +++ b/.github/workflows/publish-plugins.yml @@ -4,6 +4,7 @@ on: push: branches: - master + - Lunox-Scans paths: - 'plugins/**' - 'public/**' @@ -11,7 +12,7 @@ on: - '.github/workflows/publish-plugins.yml' permissions: - contents: read + contents: write concurrency: group: ${{ github.workflow }} @@ -23,29 +24,26 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout Repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@v4 with: - token: ${{ secrets.REPO_SCOPED_TOKEN }} + token: ${{ secrets.GITHUB_TOKEN }} + fetch-depth: 0 + + - name: Fetch All Remote Branches + run: git fetch origin '+refs/heads/*:refs/remotes/origin/*' - name: Setup Node.js - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 + uses: actions/setup-node@v4 with: node-version: '24' - name: Install Dependencies - run: npm ci --omit=dev --ignore-scripts + run: npm ci --ignore-scripts - name: Configure Git run: | git config user.name "github-actions[bot]" git config user.email 41898282+github-actions[bot]@users.noreply.github.com - - - name: Publish Plugins (Main Repository) - if: github.repository == 'LNReader/lnreader-plugins' - run: npm run publish:plugins 2>> $GITHUB_STEP_SUMMARY - shell: bash - - - name: Publish Plugins (Fork - All Branches) - if: github.repository != 'LNReader/lnreader-plugins' + - name: Publish Plugins run: npm run publish:plugins -- --all-branches shell: bash From 52053b7f179cecb87ac242c4f14d0a6ed12a9359 Mon Sep 17 00:00:00 2001 From: D3ICIDE <183315953+D3ICIDE@users.noreply.github.com> Date: Thu, 6 Aug 2026 01:01:00 +0530 Subject: [PATCH 6/8] LunoxScans --- .../multisrc/madara/filters/lunoxscans.json | 264 ++++++++++++++++++ plugins/multisrc/madara/sources.json | 10 + .../multisrc/madara/lunoxscans/icon.png | Bin 0 -> 1705 bytes 3 files changed, 274 insertions(+) create mode 100644 plugins/multisrc/madara/filters/lunoxscans.json create mode 100644 public/static/multisrc/madara/lunoxscans/icon.png diff --git a/plugins/multisrc/madara/filters/lunoxscans.json b/plugins/multisrc/madara/filters/lunoxscans.json new file mode 100644 index 000000000..0eefe5dd5 --- /dev/null +++ b/plugins/multisrc/madara/filters/lunoxscans.json @@ -0,0 +1,264 @@ +{ + "filters": { + "genre[]": { + "type": "Checkbox", + "label": "Genre", + "value": [], + "options": [ + { + "label": "Action", + "value": "action" + }, + { + "label": "Adult", + "value": "adult" + }, + { + "label": "Adventure", + "value": "adventure" + }, + { + "label": "Chaebol", + "value": "chaebol" + }, + { + "label": "Comedy", + "value": "comedy" + }, + { + "label": "Drama", + "value": "drama" + }, + { + "label": "Fantasy", + "value": "fantasy" + }, + { + "label": "Growth", + "value": "growth" + }, + { + "label": "Harem", + "value": "harem" + }, + { + "label": "Historical", + "value": "historical" + }, + { + "label": "Horror", + "value": "horror" + }, + { + "label": "Isekai", + "value": "isekai" + }, + { + "label": "Josei", + "value": "josei" + }, + { + "label": "Magic", + "value": "magic" + }, + { + "label": "Martial Arts", + "value": "martial-arts" + }, + { + "label": "Mature", + "value": "mature" + }, + { + "label": "Mecha", + "value": "mecha" + }, + { + "label": "Modern", + "value": "modern" + }, + { + "label": "Mystery", + "value": "mystery" + }, + { + "label": "Possession", + "value": "possession" + }, + { + "label": "Psychological", + "value": "psychological" + }, + { + "label": "Regression", + "value": "regression" + }, + { + "label": "Reincarnation", + "value": "reincarnation" + }, + { + "label": "Revenge", + "value": "revenge" + }, + { + "label": "Reverse", + "value": "reverse" + }, + { + "label": "Romance", + "value": "romance" + }, + { + "label": "Royalty", + "value": "royalty" + }, + { + "label": "s", + "value": "s" + }, + { + "label": "School Life", + "value": "school-life" + }, + { + "label": "Sci-fi", + "value": "sci-fi" + }, + { + "label": "Seinen", + "value": "seinen" + }, + { + "label": "Shoujo", + "value": "shoujo" + }, + { + "label": "Shounen", + "value": "shounen" + }, + { + "label": "Slice of Life", + "value": "slice-of-life" + }, + { + "label": "Sports", + "value": "sports" + }, + { + "label": "Supernatural", + "value": "supernatural" + }, + { + "label": "Tragedy", + "value": "tragedy" + }, + { + "label": "Warrior", + "value": "warrior" + }, + { + "label": "Wuxia", + "value": "wuxia" + }, + { + "label": "x", + "value": "x" + } + ] + }, + "op": { + "type": "Switch", + "label": "having all selected genres", + "value": false + }, + "author": { + "type": "Text", + "label": "Author", + "value": "" + }, + "artist": { + "type": "Text", + "label": "Artist", + "value": "" + }, + "release": { + "type": "Text", + "label": "Year of Released", + "value": "" + }, + "adult": { + "type": "Picker", + "label": "Adult content", + "value": "", + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "None adult content", + "value": "0" + }, + { + "label": "Only adult content", + "value": "1" + } + ] + }, + "status[]": { + "type": "Checkbox", + "label": "Status", + "value": [], + "options": [ + { + "label": "OnGoing", + "value": "on-going" + }, + { + "label": "Completed", + "value": "end" + }, + { + "label": "Canceled", + "value": "canceled" + }, + { + "label": "On Hold", + "value": "on-hold" + }, + { + "label": "Upcoming", + "value": "upcoming" + } + ] + }, + "m_orderby": { + "type": "Picker", + "label": "Order by", + "value": "", + "options": [ + { + "label": "Relevance", + "value": "" + }, + { + "label": "Latest", + "value": "latest" + }, + { + "label": "A-Z", + "value": "alphabet" + }, + { + "label": "Most Views", + "value": "views" + }, + { + "label": "New", + "value": "new-manga" + } + ] + } + } +} \ No newline at end of file diff --git a/plugins/multisrc/madara/sources.json b/plugins/multisrc/madara/sources.json index 6f4b088e4..8540243bc 100644 --- a/plugins/multisrc/madara/sources.json +++ b/plugins/multisrc/madara/sources.json @@ -651,5 +651,15 @@ "useNewChapterEndpoint": true, "versionIncrements": 2 } + }, + { + "id": "lunoxscans", + "sourceSite": "https://lunoxscans.com/", + "sourceName": "LunoxScans", + "options": { + "lang": "English", + "useNewChapterEndpoint": true, + "versionIncrements": 1 + } } ] diff --git a/public/static/multisrc/madara/lunoxscans/icon.png b/public/static/multisrc/madara/lunoxscans/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0dcfd325cc2ab8ab87461bbeab79139b9a6596ab GIT binary patch literal 1705 zcmV;a23GlrP)d|zU0M!HklvA>?oi`m)5h^TzNT(x7(+&W&q#aV;0*g>t0kj1~ng=G5dnP3TF@i`*cgzJ1*6n(YX0?k^CTH}GJyP;(6cA-hc$An-u^b~W>rGbC~A0YVyD)$kQ; zF$JcR=jO>_qST~y54};g9XtR^6CAoo7&vJyG1I+LQap(s&Hr6U)0&S$4 z9U!T7qg?|=0ys<+*iM(A+f!kqxY0(aqC~o=X=)G;IB`J*a8_9OR_(o zrHorX)_5DUfp9V`fz5aebE(h5V-1-|NC0-{Dn<*db&Iv80A^|49sCkmhXRnbOfcHD z)_&^+V-812C?N8P05pwgH%b7S*$Qj53-$&Zgb?6Ph)MCcDmlD(O%8xAX43I8vysa6 z-2B0Y!as7Diji}xBe5-wS%59*d9#yafhp1kbI!KSzUg=Xu+G7jN3e-^o~_0WV4oA& zUz7pXorV4?Y-aS66N4I^%g~=Oy254w#6Hc?(;Icc{B#tdkY>{w+>6!ow2LA@b8hQ$ zN^UX0z-YdD_!4B&hBoHl@?2JNlU3=EM%X^S(=-iUw%&=57>A)1Apb-?5R`j$59WdnLEanFfJp!{5thFa}w*29d5 zcMREFWM$BjOEonD!Nf|~s~(G*JYA|IfOOw0oMTLi!Gs)flE^8^TbAspT)OTvCj*~* zG!qeQfgY5`19)az?-rcCPj}W>(L31Um?LYm`A|WL)RzK;B{MmD5Kn=%5O__DS{npA zIc}PhvsGC1V=D_D%~xfB0~=c{LXtXI;-qNX5*Y#X5&6F!?2{%_@w7yfU`$IIo51eu zs1cUU45R{|YW>s^Xf|eHi80*yo;lp&&2Rn)yU7}- zVx<7JfKvXTnLUXxMPIaizpkv>nSuMhWKg7vZ`Gp)n`u_5izxhbj+lysEPHa-e z1(74vZJokF80|D+lT}YQWd(W&1iJ3(Bg*c<>>h=s2Rck$1aMz!SzS;Gcg|t;eP!ws zpY(66pvgwr$-O~MZ4VAyE%QPwa;UaBpvv+}cfcI*;yv@9jpnq`}do%qTfd0*e z Date: Thu, 6 Aug 2026 01:35:39 +0530 Subject: [PATCH 7/8] changes --- plugins/multisrc/madara/sources.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/multisrc/madara/sources.json b/plugins/multisrc/madara/sources.json index 8540243bc..af58f4ac7 100644 --- a/plugins/multisrc/madara/sources.json +++ b/plugins/multisrc/madara/sources.json @@ -658,7 +658,7 @@ "sourceName": "LunoxScans", "options": { "lang": "English", - "useNewChapterEndpoint": true, + "useNewChapterEndpoint": false, "versionIncrements": 1 } } From 1cdffe5e2888be4ad53d1d2488c20fff2371424d Mon Sep 17 00:00:00 2001 From: D3ICIDE <183315953+D3ICIDE@users.noreply.github.com> Date: Thu, 6 Aug 2026 01:50:27 +0530 Subject: [PATCH 8/8] change --- plugins/multisrc/madara/sources.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/multisrc/madara/sources.json b/plugins/multisrc/madara/sources.json index af58f4ac7..8f5823838 100644 --- a/plugins/multisrc/madara/sources.json +++ b/plugins/multisrc/madara/sources.json @@ -659,7 +659,7 @@ "options": { "lang": "English", "useNewChapterEndpoint": false, - "versionIncrements": 1 + "versionIncrements": 2 } } ]