feat: Github Actions to Avoid PR Conflicts (#497)
* remove .env file * remove dotenv, move json dir * fix: create dir if not exists * test actions * fix: specific branch * test double commit * fix: only add dist dir * cleanup * test push without updating json * test actions without plugins diff * plugins: update json files for new plugins (#7) * test without config.json * plugins: update json files for new plugins (#8) * fix: ordering in Win is not the same as Linux * plugins: update json files for new plugins (#10) * test no update * test: create PR if there're changes * fix: wrong path * test: if there're changes * fix: wrong operator * fix: assign boolean to github output * plugins: update json files for new plugins (#13) * clean up and update README * clean up * last cleant up xD
This commit is contained in:
@@ -1,3 +0,0 @@
|
||||
GITHUB_USERNAME='nyagami'
|
||||
GITHUB_REPOSITORY='plugins'
|
||||
GITHUB_BRANCH='main'
|
||||
@@ -0,0 +1,57 @@
|
||||
name: Update json files
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- plugins
|
||||
|
||||
jobs:
|
||||
updatejson:
|
||||
if: github.repository == 'LNReader/lnreader-sources'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: '16'
|
||||
- name: Install dependencies
|
||||
run: npm install
|
||||
|
||||
- name: Clean up current dist
|
||||
run: |
|
||||
rm -rf dist
|
||||
mkdir dist
|
||||
cat > config.json << EOF
|
||||
{
|
||||
"githubUsername": "LNReader",
|
||||
"githubRepository": "lnreader-sources",
|
||||
"githubBranch": "plugins"
|
||||
}
|
||||
EOF
|
||||
|
||||
- name: Update json files
|
||||
id: json
|
||||
run: |
|
||||
node scripts/json_plugins.js
|
||||
changes="$(git diff)"
|
||||
if [ "$changes" ]
|
||||
then
|
||||
changes=1
|
||||
else
|
||||
changes=""
|
||||
fi
|
||||
echo "json-diff=$changes" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Create pull request
|
||||
if: ${{ steps.json.outputs.json-diff }}
|
||||
uses: peter-evans/create-pull-request@v4
|
||||
with:
|
||||
token: ${{ secrets.REPO_SCOPED_TOKEN }}
|
||||
author: rajarsheechatterjee <rajarshee.adm@gmail.com>
|
||||
committer: rajarsheechatterjee <rajarshee.adm@gmail.com>
|
||||
commit-message: 'plugins: update json files for new plugins'
|
||||
title: Update json files
|
||||
labels: enhancement
|
||||
body: Auto-generated PR for updating json files
|
||||
branch: update-json
|
||||
delete-branch: true
|
||||
@@ -1,2 +1,4 @@
|
||||
node_modules/**/*
|
||||
.vscode
|
||||
.env
|
||||
config.json
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
|
||||
|
||||
|
||||
# LNReader Plugins
|
||||
|
||||
<p>
|
||||
<img alt="GitHub issues by-label" src="https://img.shields.io/github/issues/lnreader/lnreader-sources/Source%20Request?color=success&label=source%20requests">
|
||||
<img alt="GitHub issues by-label" src="https://img.shields.io/github/issues/lnreader/lnreader-sources/Bug?color=red&label=bugs">
|
||||
|
||||
<img alt="GitHub issues by-label" src="https://img.shields.io/github/issues/lnreader/lnreader-sources/Source%20Request?color=success&label=source%20requests">
|
||||
|
||||
<img alt="GitHub issues by-label" src="https://img.shields.io/github/issues/lnreader/lnreader-sources/Bug?color=red&label=bugs">
|
||||
|
||||
</p>
|
||||
|
||||
Repository to host plugins and related issues, and requests for [LNReader](https://github.com/LNReader/lnreader).
|
||||
@@ -12,47 +15,71 @@ Repository to host plugins and related issues, and requests for [LNReader](https
|
||||
## Contributing
|
||||
|
||||
1. Please use this [template](./template.js) or [template.min](./template.min.js)
|
||||
|
||||
2. Choose your language in [./plugins](./plugins)
|
||||
|
||||
+ If your language doenst exist, please request us. We will add it soon.
|
||||
|
||||
3. Write your scripts
|
||||
|
||||
+ See example: [Hako](./plugins/vietnamese/LNHako.js)
|
||||
|
||||
|
||||
## Test your script
|
||||
|
||||
We use expressjs to make an UI web for testing.
|
||||
|
||||
1. Installing
|
||||
```
|
||||
npm install
|
||||
```
|
||||
|
||||
```
|
||||
npm install
|
||||
```
|
||||
|
||||
2. Running
|
||||
```
|
||||
nodemon index.js
|
||||
```
|
||||
+ Then open http://localhost:3000
|
||||
|
||||
```
|
||||
nodemon index.js
|
||||
```
|
||||
|
||||
+ Then open http://localhost:3000
|
||||
|
||||
3. Testing
|
||||
+ Find you plugin
|
||||
+ Check if all functions of your plugin work properly
|
||||
#### No need to reload webpage after changing your plugin script.
|
||||
|
||||
+ Find you plugin
|
||||
|
||||
+ Check if all functions of your plugin work properly
|
||||
|
||||
#### No need to reload webpage after changing your plugin script.
|
||||
|
||||
- One more thing: you can use [cheerio_space](./cheerio_space) to build functions without requesting to the site.
|
||||
|
||||
----------
|
||||
|
||||
If you want to test plugin in app side, remember to config these things.
|
||||
If you want to test plugin in app side, remember to config these things.
|
||||
|
||||
in [.env](./.env)
|
||||
|
||||
1. Create `config.json` file in root dir
|
||||
2. Add your github infomation. Here is an example.
|
||||
```json
|
||||
{
|
||||
"githubUsername": "LNReader",
|
||||
"githubRepository": "lnreader-sources",
|
||||
"githubBranch": "plugins"
|
||||
}
|
||||
```
|
||||
GITHUB_USERNAME='nyagami'
|
||||
GITHUB_REPOSITORY='plugins'
|
||||
GITHUB_BRANCH='main'
|
||||
3. Just commit and push it. And you will see your own json files in github folk: dist/`username`/
|
||||
|
||||
also in [pluginManager.ts](https://github.com/LNReader/lnreader/blob/plugins/src/plugins/pluginManager.ts) (app repo)
|
||||
|
||||
```ts
|
||||
const githubUsername = 'LNReader';
|
||||
const githubRepository = 'lnreader-sources';
|
||||
const githubBranch = 'plugins';
|
||||
```
|
||||
|
||||
in [pluginManager.ts](https://github.com/nyagami/lnreader/blob/install_sources/src/plugins/pluginManager.ts)
|
||||
```ts
|
||||
const fetchPlugins = async () => {
|
||||
const availablePlugins: Record<Languages, Array<PluginItem>> = await fetch(
|
||||
'https://raw.githubusercontent.com/nyagami/plugins/main/plugins/plugins.min.json',
|
||||
).then(res => res.json());
|
||||
return availablePlugins;
|
||||
};
|
||||
```
|
||||
- Note: You dont have to remove your own json files when creating a PR.
|
||||
|
||||
----------
|
||||
|
||||
The developer of this application does not have any affiliation with the content providers available.
|
||||
|
||||
+1
-8
@@ -3,11 +3,6 @@ const languages = require('@libs/languages');
|
||||
const path = require('path')
|
||||
const root = path.dirname(require.main.filename);
|
||||
|
||||
const githubIconsLink = 'https://raw.githubusercontent.com/nyagami/plugins/main/icons';
|
||||
const githubIconSuffix = '?raw=true';
|
||||
const githubPluginsLink = 'https://raw.githubusercontent.com/nyagami/plugins/main/plugins';
|
||||
const githubPluginSuffix = '?newtest=true';
|
||||
|
||||
const all_plugins = () => {
|
||||
const res = {}
|
||||
for (let language in languages) { //language with English name
|
||||
@@ -19,10 +14,8 @@ const all_plugins = () => {
|
||||
if(plugin.startsWith('.')) return;
|
||||
const requirePath = `@plugins/${language.toLowerCase()}/${plugin.split('.')[0]}`
|
||||
const instance = require(requirePath);
|
||||
const { id, name, lang, version, icon, description } = instance;
|
||||
const { id, name, lang, version, description } = instance;
|
||||
const info = { id, name, lang, version, description } // lang: language with native name
|
||||
info.url = `${githubPluginsLink}/${language.toLowerCase()}/${plugin}${githubPluginSuffix}`;
|
||||
info.iconUrl = `${githubIconsLink}/${icon}${githubIconSuffix}`;
|
||||
info.requirePath = requirePath;
|
||||
res[lang].push(info);
|
||||
});
|
||||
|
||||
Vendored
+287
@@ -0,0 +1,287 @@
|
||||
{
|
||||
"中文, 汉语, 漢語": [],
|
||||
"English": [
|
||||
{
|
||||
"id": "ANF.com",
|
||||
"name": "AllNovelFull",
|
||||
"site": "https://allnovelfull.com",
|
||||
"lang": "English",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/plugins/english/allnovelfull.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/icons/src/en/allnovelfull/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "BLN.com",
|
||||
"name": "BestLightNovel",
|
||||
"site": "https://bestlightnovel.com/",
|
||||
"lang": "English",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/plugins/english/bestlightnovel.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/icons/src/en/bestlightnovel/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "comrademao",
|
||||
"name": "Comrade Mao",
|
||||
"site": "https://comrademao.com/",
|
||||
"lang": "English",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/plugins/english/comrademao.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/icons/src/en/comrademao/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "DDL.com",
|
||||
"name": "Divine Dao Library",
|
||||
"site": "https://www.divinedaolibrary.com/",
|
||||
"lang": "English",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/plugins/english/divinedaolibrary.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/icons/src/en/divinedaolibrary/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "foxaholic",
|
||||
"name": "Foxaholic",
|
||||
"site": "https://www.foxaholic.com/",
|
||||
"lang": "English",
|
||||
"version": "1.0.0",
|
||||
"description": "Digging Pits",
|
||||
"url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/plugins/english/foxaholic.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/icons/src/en/foxaholic/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "FWN.com",
|
||||
"name": "Web NOVEL",
|
||||
"site": "https://freewebnovel.com/",
|
||||
"lang": "English",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/plugins/english/freewebnovel.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/icons/src/en/freewebnovel/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "LNR.org",
|
||||
"name": "LightNovelReader",
|
||||
"site": "https://lightnovelreader.org",
|
||||
"lang": "English",
|
||||
"version": "1.0.0",
|
||||
"description": "This is description for plugin",
|
||||
"url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/plugins/english/LightNovelReader.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/icons/src/en/lightnovelreader/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "NF.me",
|
||||
"name": "NovelFull.me",
|
||||
"site": "https://novelfull.me/",
|
||||
"lang": "English",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/plugins/english/NovelFullMe.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/icons/src/en/novelfullme/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "NO.net",
|
||||
"name": "novelsOnline",
|
||||
"site": "https://novelsonline.net",
|
||||
"lang": "English",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/plugins/english/NovelOnline.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/icons/src/coverNotAvailable.jpg"
|
||||
},
|
||||
{
|
||||
"id": "novelpub.com",
|
||||
"name": "NovelPub",
|
||||
"site": "https://www.novelpub.com/",
|
||||
"lang": "English",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/plugins/english/novelpub.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/icons/src/en/novelpub/icon.png"
|
||||
}
|
||||
],
|
||||
"français, française": [
|
||||
{
|
||||
"id": "chireads.com",
|
||||
"name": "Chireads",
|
||||
"site": "https://chireads.com/",
|
||||
"lang": "français, française",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/plugins/french/chireads.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/icons/src/fr/chireads/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "NDG.com",
|
||||
"name": "NovelDeGlace",
|
||||
"site": "https://noveldeglace.com/",
|
||||
"lang": "français, française",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/plugins/french/noveldeglace.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/icons/src/fr/noveldeglace/icon.png"
|
||||
}
|
||||
],
|
||||
"Bahasa Indonesia": [
|
||||
{
|
||||
"id": "IDWN.id",
|
||||
"name": "IndoWebNovel",
|
||||
"site": "https://indowebnovel.id/id/",
|
||||
"lang": "Bahasa Indonesia",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/plugins/indonesian/indowebnovel.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/icons/src/id/indowebnovel/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "novelringan.com",
|
||||
"name": "NovelRingan",
|
||||
"site": "https://novelringan.com/",
|
||||
"lang": "Bahasa Indonesia",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/plugins/indonesian/novelringan.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/icons/src/id/novelringan/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "sakura.id",
|
||||
"name": "SakuraNovel",
|
||||
"site": "https://sakuranovel.id/",
|
||||
"lang": "Bahasa Indonesia",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/plugins/indonesian/sakuranovel.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/icons/src/id/sakuranovel/icon.png"
|
||||
}
|
||||
],
|
||||
"日本語": [
|
||||
{
|
||||
"id": "yomou.syosetu",
|
||||
"name": "Syosetu",
|
||||
"site": "https://yomou.syosetu.com/",
|
||||
"lang": "日本語",
|
||||
"version": "1.0.0",
|
||||
"description": "小説を読もう!は「小説家になろう」に投稿された",
|
||||
"url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/plugins/japanese/Syosetu.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/icons/src/jp/syosetu/icon.png"
|
||||
}
|
||||
],
|
||||
"한국어, 조선말": [
|
||||
{
|
||||
"id": "agit.xyz",
|
||||
"name": "Agitoon",
|
||||
"site": "https://agit501.xyz/",
|
||||
"lang": "한국어, 조선말",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/plugins/korean/Agitoon.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/icons/src/kr/agitoon/agit.png"
|
||||
}
|
||||
],
|
||||
"Português": [],
|
||||
"русский язык": [
|
||||
{
|
||||
"id": "jaomix.ru",
|
||||
"name": "Jaomix",
|
||||
"site": "https://jaomix.ru",
|
||||
"lang": "русский язык",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/plugins/russian/jaomix.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/icons/src/ru/jaomix/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "RNBH.org",
|
||||
"name": "RanobeHub",
|
||||
"site": "https://ranobehub.org/",
|
||||
"lang": "русский язык",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/plugins/russian/ranobehub.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/icons/src/ru/ranobehub/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "RNRF",
|
||||
"name": "РанобэРФ",
|
||||
"site": "https://ранобэ.рф",
|
||||
"lang": "русский язык",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/plugins/russian/ranoberf.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/icons/src/ru/ranoberf/icon.png"
|
||||
}
|
||||
],
|
||||
"español, castellano": [
|
||||
{
|
||||
"id": "awuxia.com",
|
||||
"name": "ReinoWuxia",
|
||||
"site": "http://www.reinowuxia.com/",
|
||||
"lang": "español, castellano",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/plugins/spanish/novelawuxia.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/icons/src/es/novelawuxia/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "HasuTL",
|
||||
"name": "Hasu Translations",
|
||||
"site": "https://hasutl.wordpress.com/",
|
||||
"lang": "español, castellano",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/plugins/spanish/hasutl.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/icons/src/es/hasutl/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "ligera.com",
|
||||
"name": "Novelas Ligera",
|
||||
"site": "https://novelasligera.com/",
|
||||
"lang": "español, castellano",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/plugins/spanish/novelasligera.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/icons/src/es/novelasligera/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "oasisTL.wp",
|
||||
"name": "Oasis Translations",
|
||||
"site": "https://oasistranslations.wordpress.com/",
|
||||
"lang": "español, castellano",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/plugins/spanish/oasistranslations.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/icons/src/es/oasistranslations/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "skynovels.net",
|
||||
"name": "SkyNovels",
|
||||
"site": "https://www.skynovels.net/",
|
||||
"lang": "español, castellano",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/plugins/spanish/skynovels.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/icons/src/es/skynovels/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "TNL.com",
|
||||
"name": "TuNovelaLigera",
|
||||
"site": "https://tunovelaligera.com/",
|
||||
"lang": "español, castellano",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/plugins/spanish/tunovelaligera.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/icons/src/es/tunovelaligera/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "yuukitls.com",
|
||||
"name": "Yuuki Tls",
|
||||
"site": "https://yuukitls.com/",
|
||||
"lang": "español, castellano",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/plugins/spanish/yukitls.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/icons/src/es/yuukitls/icon.png"
|
||||
}
|
||||
],
|
||||
"Türkçe": [
|
||||
{
|
||||
"id": "epiknovel.com",
|
||||
"name": "EpikNovel",
|
||||
"site": "https://www.epiknovel.com/",
|
||||
"lang": "Türkçe",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/plugins/turkish/epiknovel.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/icons/src/tr/epiknovel/icon.png"
|
||||
}
|
||||
],
|
||||
"Tiếng Việt": [
|
||||
{
|
||||
"id": "ln.hako",
|
||||
"name": "Hako",
|
||||
"site": "https://ln.hako.vn",
|
||||
"lang": "Tiếng Việt",
|
||||
"version": "1.0.0",
|
||||
"description": "Hầm trú ẩn Hako",
|
||||
"url": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/plugins/vietnamese/LNHako.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/LNReader/lnreader-sources/plugins/icons/src/vi/hakolightnovel/icon.png"
|
||||
}
|
||||
]
|
||||
}
|
||||
Vendored
+1
File diff suppressed because one or more lines are too long
@@ -43,5 +43,5 @@ app.get('/', (req, res) => {
|
||||
|
||||
|
||||
app.listen(port, host, () => {
|
||||
console.log("testing plugins web listening on http://localhost:3000");
|
||||
console.log("Testing plugins web listening on http://localhost:3000");
|
||||
});
|
||||
Generated
-14
@@ -13,7 +13,6 @@
|
||||
"cheerio": "^1.0.0-rc.10",
|
||||
"cli-color": "^2.0.3",
|
||||
"dayjs": "^1.11.4",
|
||||
"dotenv": "^16.0.3",
|
||||
"express": "^4.18.2",
|
||||
"module-alias": "^2.2.2",
|
||||
"node-fetch": "^3.3.1"
|
||||
@@ -435,14 +434,6 @@
|
||||
"url": "https://github.com/fb55/domutils?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/dotenv": {
|
||||
"version": "16.0.3",
|
||||
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz",
|
||||
"integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==",
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/ee-first": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
|
||||
@@ -1958,11 +1949,6 @@
|
||||
"domhandler": "^4.2.0"
|
||||
}
|
||||
},
|
||||
"dotenv": {
|
||||
"version": "16.0.3",
|
||||
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz",
|
||||
"integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ=="
|
||||
},
|
||||
"ee-first": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
|
||||
|
||||
+1
-2
@@ -6,7 +6,7 @@
|
||||
"scripts": {
|
||||
"start": "node ./index.js",
|
||||
"test": "exit 0",
|
||||
"json": "node ./scripts/json_plugins.js && git add ."
|
||||
"json": "node ./scripts/json_plugins.js && git add dist"
|
||||
},
|
||||
"author": "",
|
||||
"license": "MIT",
|
||||
@@ -15,7 +15,6 @@
|
||||
"cheerio": "^1.0.0-rc.10",
|
||||
"cli-color": "^2.0.3",
|
||||
"dayjs": "^1.11.4",
|
||||
"dotenv": "^16.0.3",
|
||||
"express": "^4.18.2",
|
||||
"module-alias": "^2.2.2",
|
||||
"node-fetch": "^3.3.1"
|
||||
|
||||
@@ -1,287 +0,0 @@
|
||||
{
|
||||
"中文, 汉语, 漢語": [],
|
||||
"English": [
|
||||
{
|
||||
"id": "LNR.org",
|
||||
"name": "LightNovelReader",
|
||||
"site": "https://lightnovelreader.org",
|
||||
"lang": "English",
|
||||
"version": "1.0.0",
|
||||
"description": "This is description for plugin",
|
||||
"url": "https://raw.githubusercontent.com/nyagami/plugins/main/plugins/english/LightNovelReader.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/nyagami/plugins/main/icons/src/en/lightnovelreader/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "NF.me",
|
||||
"name": "NovelFull.me",
|
||||
"site": "https://novelfull.me/",
|
||||
"lang": "English",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/nyagami/plugins/main/plugins/english/NovelFullMe.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/nyagami/plugins/main/icons/src/en/novelfullme/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "NO.net",
|
||||
"name": "novelsOnline",
|
||||
"site": "https://novelsonline.net",
|
||||
"lang": "English",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/nyagami/plugins/main/plugins/english/NovelOnline.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/nyagami/plugins/main/icons/src/coverNotAvailable.jpg"
|
||||
},
|
||||
{
|
||||
"id": "ANF.com",
|
||||
"name": "AllNovelFull",
|
||||
"site": "https://allnovelfull.com",
|
||||
"lang": "English",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/nyagami/plugins/main/plugins/english/allnovelfull.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/nyagami/plugins/main/icons/src/en/allnovelfull/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "BLN.com",
|
||||
"name": "BestLightNovel",
|
||||
"site": "https://bestlightnovel.com/",
|
||||
"lang": "English",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/nyagami/plugins/main/plugins/english/bestlightnovel.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/nyagami/plugins/main/icons/src/en/bestlightnovel/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "comrademao",
|
||||
"name": "Comrade Mao",
|
||||
"site": "https://comrademao.com/",
|
||||
"lang": "English",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/nyagami/plugins/main/plugins/english/comrademao.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/nyagami/plugins/main/icons/src/en/comrademao/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "DDL.com",
|
||||
"name": "Divine Dao Library",
|
||||
"site": "https://www.divinedaolibrary.com/",
|
||||
"lang": "English",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/nyagami/plugins/main/plugins/english/divinedaolibrary.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/nyagami/plugins/main/icons/src/en/divinedaolibrary/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "foxaholic",
|
||||
"name": "Foxaholic",
|
||||
"site": "https://www.foxaholic.com/",
|
||||
"lang": "English",
|
||||
"version": "1.0.0",
|
||||
"description": "Digging Pits",
|
||||
"url": "https://raw.githubusercontent.com/nyagami/plugins/main/plugins/english/foxaholic.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/nyagami/plugins/main/icons/src/en/foxaholic/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "FWN.com",
|
||||
"name": "Web NOVEL",
|
||||
"site": "https://freewebnovel.com/",
|
||||
"lang": "English",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/nyagami/plugins/main/plugins/english/freewebnovel.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/nyagami/plugins/main/icons/src/en/freewebnovel/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "novelpub.com",
|
||||
"name": "NovelPub",
|
||||
"site": "https://www.novelpub.com/",
|
||||
"lang": "English",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/nyagami/plugins/main/plugins/english/novelpub.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/nyagami/plugins/main/icons/src/en/novelpub/icon.png"
|
||||
}
|
||||
],
|
||||
"français, française": [
|
||||
{
|
||||
"id": "chireads.com",
|
||||
"name": "Chireads",
|
||||
"site": "https://chireads.com/",
|
||||
"lang": "français, française",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/nyagami/plugins/main/plugins/french/chireads.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/nyagami/plugins/main/icons/src/fr/chireads/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "NDG.com",
|
||||
"name": "NovelDeGlace",
|
||||
"site": "https://noveldeglace.com/",
|
||||
"lang": "français, française",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/nyagami/plugins/main/plugins/french/noveldeglace.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/nyagami/plugins/main/icons/src/fr/noveldeglace/icon.png"
|
||||
}
|
||||
],
|
||||
"Bahasa Indonesia": [
|
||||
{
|
||||
"id": "IDWN.id",
|
||||
"name": "IndoWebNovel",
|
||||
"site": "https://indowebnovel.id/id/",
|
||||
"lang": "Bahasa Indonesia",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/nyagami/plugins/main/plugins/indonesian/indowebnovel.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/nyagami/plugins/main/icons/src/id/indowebnovel/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "novelringan.com",
|
||||
"name": "NovelRingan",
|
||||
"site": "https://novelringan.com/",
|
||||
"lang": "Bahasa Indonesia",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/nyagami/plugins/main/plugins/indonesian/novelringan.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/nyagami/plugins/main/icons/src/id/novelringan/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "sakura.id",
|
||||
"name": "SakuraNovel",
|
||||
"site": "https://sakuranovel.id/",
|
||||
"lang": "Bahasa Indonesia",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/nyagami/plugins/main/plugins/indonesian/sakuranovel.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/nyagami/plugins/main/icons/src/id/sakuranovel/icon.png"
|
||||
}
|
||||
],
|
||||
"日本語": [
|
||||
{
|
||||
"id": "yomou.syosetu",
|
||||
"name": "Syosetu",
|
||||
"site": "https://yomou.syosetu.com/",
|
||||
"lang": "日本語",
|
||||
"version": "1.0.0",
|
||||
"description": "小説を読もう!は「小説家になろう」に投稿された",
|
||||
"url": "https://raw.githubusercontent.com/nyagami/plugins/main/plugins/japanese/Syosetu.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/nyagami/plugins/main/icons/src/jp/syosetu/icon.png"
|
||||
}
|
||||
],
|
||||
"한국어, 조선말": [
|
||||
{
|
||||
"id": "agit.xyz",
|
||||
"name": "Agitoon",
|
||||
"site": "https://agit501.xyz/",
|
||||
"lang": "한국어, 조선말",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/nyagami/plugins/main/plugins/korean/Agitoon.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/nyagami/plugins/main/icons/src/kr/agitoon/agit.png"
|
||||
}
|
||||
],
|
||||
"Português": [],
|
||||
"русский язык": [
|
||||
{
|
||||
"id": "jaomix.ru",
|
||||
"name": "Jaomix",
|
||||
"site": "https://jaomix.ru",
|
||||
"lang": "русский язык",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/nyagami/plugins/main/plugins/russian/jaomix.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/nyagami/plugins/main/icons/src/ru/jaomix/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "RNBH.org",
|
||||
"name": "RanobeHub",
|
||||
"site": "https://ranobehub.org/",
|
||||
"lang": "русский язык",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/nyagami/plugins/main/plugins/russian/ranobehub.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/nyagami/plugins/main/icons/src/ru/ranobehub/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "RNRF",
|
||||
"name": "РанобэРФ",
|
||||
"site": "https://ранобэ.рф",
|
||||
"lang": "русский язык",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/nyagami/plugins/main/plugins/russian/ranoberf.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/nyagami/plugins/main/icons/src/ru/ranoberf/icon.png"
|
||||
}
|
||||
],
|
||||
"español, castellano": [
|
||||
{
|
||||
"id": "HasuTL",
|
||||
"name": "Hasu Translations",
|
||||
"site": "https://hasutl.wordpress.com/",
|
||||
"lang": "español, castellano",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/nyagami/plugins/main/plugins/spanish/hasutl.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/nyagami/plugins/main/icons/src/es/hasutl/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "ligera.com",
|
||||
"name": "Novelas Ligera",
|
||||
"site": "https://novelasligera.com/",
|
||||
"lang": "español, castellano",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/nyagami/plugins/main/plugins/spanish/novelasligera.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/nyagami/plugins/main/icons/src/es/novelasligera/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "awuxia.com",
|
||||
"name": "ReinoWuxia",
|
||||
"site": "http://www.reinowuxia.com/",
|
||||
"lang": "español, castellano",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/nyagami/plugins/main/plugins/spanish/novelawuxia.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/nyagami/plugins/main/icons/src/es/novelawuxia/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "oasisTL.wp",
|
||||
"name": "Oasis Translations",
|
||||
"site": "https://oasistranslations.wordpress.com/",
|
||||
"lang": "español, castellano",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/nyagami/plugins/main/plugins/spanish/oasistranslations.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/nyagami/plugins/main/icons/src/es/oasistranslations/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "skynovels.net",
|
||||
"name": "SkyNovels",
|
||||
"site": "https://www.skynovels.net/",
|
||||
"lang": "español, castellano",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/nyagami/plugins/main/plugins/spanish/skynovels.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/nyagami/plugins/main/icons/src/es/skynovels/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "TNL.com",
|
||||
"name": "TuNovelaLigera",
|
||||
"site": "https://tunovelaligera.com/",
|
||||
"lang": "español, castellano",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/nyagami/plugins/main/plugins/spanish/tunovelaligera.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/nyagami/plugins/main/icons/src/es/tunovelaligera/icon.png"
|
||||
},
|
||||
{
|
||||
"id": "yuukitls.com",
|
||||
"name": "Yuuki Tls",
|
||||
"site": "https://yuukitls.com/",
|
||||
"lang": "español, castellano",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/nyagami/plugins/main/plugins/spanish/yukitls.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/nyagami/plugins/main/icons/src/es/yuukitls/icon.png"
|
||||
}
|
||||
],
|
||||
"Türkçe": [
|
||||
{
|
||||
"id": "epiknovel.com",
|
||||
"name": "EpikNovel",
|
||||
"site": "https://www.epiknovel.com/",
|
||||
"lang": "Türkçe",
|
||||
"version": "1.0.0",
|
||||
"url": "https://raw.githubusercontent.com/nyagami/plugins/main/plugins/turkish/epiknovel.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/nyagami/plugins/main/icons/src/tr/epiknovel/icon.png"
|
||||
}
|
||||
],
|
||||
"Tiếng Việt": [
|
||||
{
|
||||
"id": "ln.hako",
|
||||
"name": "Hako",
|
||||
"site": "https://ln.hako.vn",
|
||||
"lang": "Tiếng Việt",
|
||||
"version": "1.0.0",
|
||||
"description": "Cổng LightNovel",
|
||||
"url": "https://raw.githubusercontent.com/nyagami/plugins/main/plugins/vietnamese/LNHako.js",
|
||||
"iconUrl": "https://raw.githubusercontent.com/nyagami/plugins/main/icons/src/vi/hakolightnovel/icon.png"
|
||||
}
|
||||
]
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -189,7 +189,7 @@ module.exports = {
|
||||
icon: 'src/vi/hakolightnovel/icon.png',
|
||||
site: baseUrl,
|
||||
lang: languages.Vietnamese,
|
||||
description: 'Cổng LightNovel',
|
||||
description: 'Hầm trú ẩn Hako',
|
||||
protected: true,
|
||||
fetchImage,
|
||||
popularNovels,
|
||||
|
||||
+15
-6
@@ -1,19 +1,25 @@
|
||||
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 config = fs.existsSync(path.join(root, "config.json")) ? require("../config.json") : {};
|
||||
const username = config.githubUsername;
|
||||
const repo = config.githubRepository;
|
||||
const branch = config.githubBranch;
|
||||
|
||||
if(!username || !repo || !branch){
|
||||
process.exit();
|
||||
}
|
||||
if(!fs.existsSync(path.join(root, "dist", username))){
|
||||
fs.mkdirSync(path.join(root, "dist", username));
|
||||
}
|
||||
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');
|
||||
const jsonPath = path.join(root, 'dist', username, 'plugins.json');
|
||||
const jsonMinPath = path.join(root, 'dist', username, 'plugins.min.json');
|
||||
|
||||
for (let language in languages) { // language with English name
|
||||
const langPath = path.join(root, 'plugins', language.toLowerCase());
|
||||
@@ -35,6 +41,9 @@ for (let language in languages) { // language with English name
|
||||
console.log('Collected', name);
|
||||
});
|
||||
}
|
||||
|
||||
for(let lang in json) json[lang].sort((a, b) => a.id.localeCompare(b.id))
|
||||
|
||||
fs.writeFileSync(jsonMinPath, JSON.stringify(json));
|
||||
fs.writeFileSync(jsonPath, JSON.stringify(json, null, '\t'));
|
||||
console.log('Done ✅');
|
||||
|
||||
Reference in New Issue
Block a user