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:
nyagami
2023-05-16 22:39:22 +07:00
committed by GitHub
parent 8522c89195
commit 6bc3900d30
14 changed files with 419 additions and 349 deletions
-3
View File
@@ -1,3 +0,0 @@
GITHUB_USERNAME='nyagami'
GITHUB_REPOSITORY='plugins'
GITHUB_BRANCH='main'
+57
View File
@@ -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
+2
View File
@@ -1,2 +1,4 @@
node_modules/**/*
.vscode
.env
config.json
+53 -26
View File
@@ -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
View File
@@ -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);
});
+287
View File
@@ -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"
}
]
}
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -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");
});
-14
View File
@@ -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
View File
@@ -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"
-287
View File
@@ -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
+1 -1
View File
@@ -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
View File
@@ -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 ✅');