feat: Plugins (#465)
* update * gitignore * base file * template * json generator * remove valid method * Update README.md README * update template * Update README.md * update template * not support async arrow function * remove valid method * basic plugin validation. * Update README.md * update template * Update README.md * add fetchFile lib. empy .language file * comment fetch * update * comment fetch * auto comment, update template, template.min * Update README.md * add option to test * reset version * Update README.md * small fix for LightNovelReader * comment fetch * minor: LL date format * refactor: rename project, remove html2text lib * fix: error if there's no plugin changed * implement cookies bypass * update template.min.js * add syosetu * fix: get last file in case removing. shorter id * shoter native language name * change app project name * testing with UI would be less painful :) * remove console.log * Update README.md for UI testing * fix Syosetu * remove try catch * add ranobehub * add json for ranobehub * wrong icon path :D * fix ranobehub * fix status ranobe * add french * fix css * add chireads * add indonesian * add sakura novel * add sakuranovel json * add spanish * add skynovels * fix skynovels * add agitoon * add turkish * add epiknovel * add portuguese * update template * cheerio_space * add novel Fullme * minor * lol, this source havent been finished before. cant help * cant bypass this * add hasutl * novelasligera not working properly * add novelpub, but no searching * add jaomix * fix jaomix * add ranoberf * add indowebnovel * add novelringan * add noveldeglace * search not work for this * add oasisTL, this should have better popularNovels * add tunovelaligera * this source need to fix search * add bestlightnovel * add comrade mao * minor fix * add divinedaolibrary * add freewebnovel * lol xD * minor * update json * fix icon novelawuxia * update site in for pluginItem * some changes for more convenient * remove try catch * Update README.md * remove * Update README.md * trying to use pre-commit * update README * feat: .env for repo config * add foxaholic (#2) * rebase fox * fox officially 1.0.0 --------- Co-authored-by: K1ngfish3r <trulyihu@gmail.com>
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
require('module-alias/register');
|
||||
require('dotenv').config();
|
||||
const fs = require('fs');
|
||||
const languages = require('@libs/languages');
|
||||
const path = require('path')
|
||||
const root = path.dirname(__dirname);
|
||||
const username = process.env.GITHUB_USERNAME;
|
||||
const repo = process.env.GITHUB_REPOSITORY;
|
||||
const branch = process.env.GITHUB_BRANCH;
|
||||
|
||||
const githubIconsLink = `https://raw.githubusercontent.com/${username}/${repo}/${branch}/icons`;
|
||||
const githubPluginsLink = `https://raw.githubusercontent.com/${username}/${repo}/${branch}/plugins`;
|
||||
|
||||
const json = {};
|
||||
const jsonPath = path.join(root, 'plugins', 'plugins.json');
|
||||
const jsonMinPath = path.join(root, 'plugins', 'plugins.min.json');
|
||||
|
||||
for (let language in languages) { // language with English name
|
||||
const langPath = path.join(root, 'plugins', language.toLowerCase());
|
||||
if (!fs.existsSync(langPath)) continue;
|
||||
const plugins = fs.readdirSync(langPath);
|
||||
json[languages[language]] = [];
|
||||
plugins.forEach(plugin => {
|
||||
if(plugin.startsWith('.')) return;
|
||||
const instance = require(`@plugins/${language.toLowerCase()}/${plugin.split('.')[0]}`);
|
||||
|
||||
const { id, name, site, lang, version, icon, description } = instance;
|
||||
// lang: language with native name
|
||||
const info = { id, name, site, lang, version, description }
|
||||
info.url = `${githubPluginsLink}/${language.toLowerCase()}/${plugin}`;
|
||||
info.iconUrl = `${githubIconsLink}/${icon}`;
|
||||
|
||||
json[lang].push(info);
|
||||
|
||||
console.log('Collected', name);
|
||||
});
|
||||
}
|
||||
fs.writeFileSync(jsonMinPath, JSON.stringify(json));
|
||||
fs.writeFileSync(jsonPath, JSON.stringify(json, null, '\t'));
|
||||
console.log('Done ✅');
|
||||
Reference in New Issue
Block a user