Files
lnreader-plugins/plugins/multisrc/mtlnovel/generator.js
T
2026-05-18 10:39:07 +05:00

45 lines
1.1 KiB
JavaScript

import list from './sources.json' with { type: 'json' };
import { readFileSync } from 'fs';
import { fileURLToPath } from 'url';
import { dirname } from 'path';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
export const generateAll = function () {
list.sort((a, b) => a.id.length - b.id.length);
return list.map(source => {
try {
const filters = JSON.parse(
readFileSync(`${__dirname}/filters/mtlnovel.json`, 'utf-8'),
);
source.filters = filters;
} catch (e) {
// for the linter
}
console.log(
`[mtlnovel] Generating: ${source.id}`.padEnd(35),
source.filters ? '🔎with filters🔍' : '🚫 no filters 🚫',
);
return generator(source);
});
};
const generator = function generator(source) {
const MTLNovelTemplate = readFileSync(__dirname + '/template.ts', {
encoding: 'utf-8',
});
const pluginScript = `
${MTLNovelTemplate}
const plugin = new MTLNovelPlugin(${JSON.stringify(source)});
export default plugin;
`.trim();
return {
lang: source.options?.lang || 'English',
filename: source.sourceName,
pluginScript,
};
};