From 52c97c59bfa8ab9d617063cc703654a28564a3b0 Mon Sep 17 00:00:00 2001 From: error7404 <48163201+error7404@users.noreply.github.com> Date: Sun, 20 Oct 2024 18:33:10 +0200 Subject: [PATCH] added `down` status to plugins --- scripts/json_plugins.js | 1 + scripts/multisrc/generate.js | 6 +- scripts/multisrc/lightnovelwp/generator.js | 10 ++- scripts/multisrc/lightnovelwp/template.ts | 2 + scripts/multisrc/madara/generator.js | 10 ++- scripts/multisrc/madara/sources.json | 95 ++++++++++++++++++++++ scripts/multisrc/madara/template.ts | 2 + 7 files changed, 122 insertions(+), 4 deletions(-) diff --git a/scripts/json_plugins.js b/scripts/json_plugins.js index b26e656b9..56cc40337 100644 --- a/scripts/json_plugins.js +++ b/scripts/json_plugins.js @@ -84,6 +84,7 @@ for (let language in languages) { iconUrl: `${STATIC_LINK}/${icon || 'siteNotAvailable.png'}`, customJS: customJS ? `${STATIC_LINK}/${customJS}` : undefined, customCSS: customCSS ? `${STATIC_LINK}/${customCSS}` : undefined, + down: plugin.endsWith('.down.js'), }; if (pluginSet.has(id)) { diff --git a/scripts/multisrc/generate.js b/scripts/multisrc/generate.js index 6d7c5c8e1..30d0d90cf 100644 --- a/scripts/multisrc/generate.js +++ b/scripts/multisrc/generate.js @@ -5,6 +5,7 @@ import fs from 'fs'; // lang: string; // filename: string; // pluginScript: string; +// down?: boolean; // }; // export type ScrpitGeneratorFunction = () => GeneratedScript[]; @@ -19,7 +20,7 @@ const generate = async name => { if (!isScriptGenerator(generateAll)) return false; const sources = generateAll(); for (let source of sources) { - const { lang, filename, pluginScript } = source; + const { lang, filename, pluginScript, down } = source; if (!lang || !filename || !pluginScript) { console.warn(name, ': lang, filename, pluginScript are required!'); continue; @@ -28,7 +29,8 @@ const generate = async name => { const filePath = path.join( pluginsDir, lang.toLowerCase(), - filename.replace(/[\s-.]+/g, '') + `[${name}].ts`, + filename.replace(/[\s-\.]+/g, '') + + `[${name}]${down ? '.down' : ''}.ts`, ); fs.writeFileSync(filePath, pluginScript, { encoding: 'utf-8' }); } diff --git a/scripts/multisrc/lightnovelwp/generator.js b/scripts/multisrc/lightnovelwp/generator.js index d6bcd242e..dbd4fadf1 100644 --- a/scripts/multisrc/lightnovelwp/generator.js +++ b/scripts/multisrc/lightnovelwp/generator.js @@ -15,7 +15,14 @@ export const generateAll = function () { source.filters = JSON.parse(filters).filters; } console.log( - `[lightnovelwp] Generating: ${source.id}${' '.repeat(20 - source.id.length)} ${source.filters ? '🔎with filters🔍' : '🚫no filters🚫'}`, + '[lightnovelwp] Generating:', + source.id.padEnd(20), + source.options?.down + ? '🔽site is down🔽' + : source.filters + ? '🔎with filters🔍' + : '🚫 no filters 🚫', + source.options?.downSince ? `since: ${source.options?.downSince}` : '', ); return generator(source); }); @@ -39,5 +46,6 @@ export default plugin; lang: source.options?.lang || 'English', filename: source.sourceName, pluginScript, + down: source.options?.down || false, }; }; diff --git a/scripts/multisrc/lightnovelwp/template.ts b/scripts/multisrc/lightnovelwp/template.ts index cdbc73749..c8fb4f5c9 100644 --- a/scripts/multisrc/lightnovelwp/template.ts +++ b/scripts/multisrc/lightnovelwp/template.ts @@ -8,6 +8,8 @@ import { Filters } from '@libs/filterInputs'; type LightNovelWPOptions = { reverseChapters?: boolean; + down?: boolean; + downSince?: string; lang?: string; versionIncrements?: number; seriesPath?: string; diff --git a/scripts/multisrc/madara/generator.js b/scripts/multisrc/madara/generator.js index 4a0b92697..c1dbf58c2 100644 --- a/scripts/multisrc/madara/generator.js +++ b/scripts/multisrc/madara/generator.js @@ -15,7 +15,14 @@ export const generateAll = function () { source.filters = JSON.parse(filters).filters; } console.log( - `[madara] Generating: ${source.id}${' '.repeat(20 - source.id.length)} ${source.filters ? '🔎with filters🔍' : '🚫no filters🚫'}`, + '[madara] Generating:', + source.id.padEnd(20), + source.options?.down + ? '🔽site is down🔽' + : source.filters + ? '🔎with filters🔍' + : '🚫 no filters 🚫', + source.options?.downSince ? `since: ${source.options?.downSince}` : '', ); return generator(source); }); @@ -35,5 +42,6 @@ export default plugin; lang: source.options?.lang || 'English', filename: source.sourceName, pluginScript, + down: source.options?.down, }; }; diff --git a/scripts/multisrc/madara/sources.json b/scripts/multisrc/madara/sources.json index f55aaa65d..fb03c118f 100644 --- a/scripts/multisrc/madara/sources.json +++ b/scripts/multisrc/madara/sources.json @@ -7,6 +7,15 @@ "useNewChapterEndpoint": true } }, + { + "id": "zinnovel", + "sourceSite": "https://zinnovel.com/", + "sourceName": "ZinnNovel", + "options": { + "down": true, + "downSince": "2024-03-04" + } + }, { "id": "novelTL", "sourceSite": "https://noveltranslate.com/", @@ -30,6 +39,15 @@ "useNewChapterEndpoint": true } }, + { + "id": "freenovel.me", + "sourceSite": "https://freenovel.me/", + "sourceName": "FreeNovelMe", + "options": { + "down": true, + "downSince": "2024-03-04" + } + }, { "id": "1stkissnovel", "sourceSite": "https://1stkissnovel.org/", @@ -90,6 +108,15 @@ "sourceSite": "https://www.webnovelover.com/", "sourceName": "WebNovelLover" }, + { + "id": "readwebnovels", + "sourceSite": "https://readwebnovels.net/", + "sourceName": "ReadWebNovels", + "options": { + "down": true, + "downSince": "2024-03-04" + } + }, { "id": "wbnovel", "sourceSite": "https://wbnovel.com/", @@ -124,6 +151,16 @@ "lang": "Indonesian" } }, + { + "id": "onlymtl", + "sourceSite": "https://www.onlymtl.com/", + "sourceName": "OnlyMTL", + "options": { + "useNewChapterEndpoint": true, + "down": true, + "downSince": "2024-03-04" + } + }, { "id": "hizomanga", "sourceSite": "https://hizomanga.net/", @@ -168,6 +205,16 @@ "useNewChapterEndpoint": true } }, + { + "id": "mtlnovel.club", + "sourceSite": "https://mtlnovel.club/", + "sourceName": "MTLNovel.Club", + "options": { + "useNewChapterEndpoint": true, + "down": true, + "downSince": "2024-03-04" + } + }, { "id": "guavaread", "sourceSite": "https://guavaread.com/", @@ -176,6 +223,26 @@ "useNewChapterEndpoint": true } }, + { + "id": "sweetEscapeTL", + "sourceSite": "https://sweetescapetranslations.com/", + "sourceName": "Sweet Escape Translations", + "options": { + "useNewChapterEndpoint": false, + "down": true, + "downSince": "2024-03-04" + } + }, + { + "id": "novelstic", + "sourceSite": "https://novelstic.com/", + "sourceName": "Novelstic", + "options": { + "useNewChapterEndpoint": true, + "down": true, + "downSince": "2024-03-04" + } + }, { "id": "neosekaiTLS", "sourceSite": "https://www.neosekaitranslations.com/", @@ -196,6 +263,34 @@ "sourceName": "Zetro Translation", "options": {} }, + { + "id": "nocturneTLS", + "sourceSite": "https://nocturnetls.net/", + "sourceName": "Nocturne Translations", + "options": { + "down": true, + "downSince": "2024-03-04" + } + }, + { + "id": "novelroom", + "sourceSite": "https://novelroom.net/", + "sourceName": "Novelroom.net", + "options": { + "down": true, + "downSince": "2024-03-04" + } + }, + { + "id": "novelr18", + "sourceSite": "https://novelr18.com/", + "sourceName": "NovelR18", + "options": { + "useNewChapterEndpoint": true, + "down": true, + "downSince": "2024-03-04" + } + }, { "id": "webnoveloku", "sourceSite": "https://www.webnoveloku.com/", diff --git a/scripts/multisrc/madara/template.ts b/scripts/multisrc/madara/template.ts index 837131943..0ebdb7909 100644 --- a/scripts/multisrc/madara/template.ts +++ b/scripts/multisrc/madara/template.ts @@ -11,6 +11,8 @@ const includesAny = (str: string, keywords: string[]) => type MadaraOptions = { useNewChapterEndpoint?: boolean; + down?: boolean; + downSince?: string; lang?: string; orderBy?: string; versionIncrements?: number;