Madara rework & Lightnovelwp update (#819)

* fix hizomanga

* added filters for systemtranslation & whitemoonlightnovels

* fix typos in lightnovelwp README

* fix arnovel domain change

* Madra: - added version Increments for sources

* Madara rework:
 - filters in seperate folder
 - added generator for filters
 - added README
 - removed path in sources (getting genres from advanced search)
 - added checking for Captcha errors
 - simplified code
 - better filter management
 - madara/icons/*.png => madara/*.png

* lightnovelwp:
 - better checks for Captcha
 - better log

* madra: - removed console.log

* Madara: - get_filter.ts better log

* Madara added sources:
 - Pancho Translations (SP)
 - Salmon Latte (EN)
 - Asura Light Novel (EN)
 - Fans Translations (EN)
 - Novel Lucky (TH)
 - new Thai language

* freewebnovel:

 - Web NOVEL => Free Web Novel

* Madara:  - icon filename from id instead of name

* Madara: - added filters for new sources
This commit is contained in:
Justin COLLON
2024-03-07 06:46:29 +01:00
committed by GitHub
parent aa129fdfed
commit 4842366870
105 changed files with 10016 additions and 5261 deletions
+13 -32
View File
@@ -6,49 +6,30 @@ import { readFileSync } from "fs";
import path from "path";
export const generateAll: ScrpitGeneratorFunction = function (name) {
return (
list
/* This map is changing `type` from string to FilterTypes */
.map<MadaraMetadata>((p) => {
let d = false;
if (p?.filters?.genres?.options?.length) {
p.filters.genres.options.unshift({ label: "NONE", value: "" })
}
const filters: Filters = {};
for (const k in p.filters) {
const f = p.filters[k as keyof typeof p.filters];
if (f) {
filters[k] = {
...f,
type: FilterTypes.Picker,
};
}
}
return { ...p, filters: d ? undefined : filters };
})
.map((metadata: MadaraMetadata) => {
console.log(`[${name}]: Generating`, metadata.id);
return generator(metadata);
})
);
return list.map((metadata: MadaraMetadata) => {
let filters: any = {};
try {
filters = require(`./filters/${metadata.id}`);
metadata.filters = filters.filters;
}
catch (e) {}
console.log(`[${name}] Generating: ${metadata.id}${" ".repeat(20 - metadata.id.length)} ${metadata.filters ? "🔎with filters🔍" : "🚫no filters🚫"}`);
return generator(metadata);
});
};
const generator = function generator(metadata: MadaraMetadata) {
const lang = metadata.options?.lang || "English";
const madaraTemplate = readFileSync(path.join(__dirname, "template.ts"), {
encoding: "utf-8",
});
const pluginScript = `
${madaraTemplate}
const plugin = new MadaraPlugin(${
JSON.stringify(metadata).replace(/"type":"([^"]+)"/g, '"type":FilterTypes.$1')
});
const plugin = new MadaraPlugin(${JSON.stringify(metadata)});
export default plugin;
`;
`.trim();
return {
lang,
lang: metadata.options?.lang || "English",
filename: metadata.sourceName,
pluginScript,
};