From 24012a17b8791a982e3f274bb4d562d957e79d57 Mon Sep 17 00:00:00 2001 From: cd-z Date: Sun, 29 Dec 2024 19:46:25 +0100 Subject: [PATCH 01/50] Add automatic issue labeling --- .github/ISSUE_TEMPLATE/report_issue.yml | 12 ++--- .github/workflows/issue_auto_label.yml | 47 ++++++++++++++++++++ .github/workflows/update_plugin_list.yml | 56 ++++++++++++++++++++++++ 3 files changed, 109 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/issue_auto_label.yml create mode 100644 .github/workflows/update_plugin_list.yml diff --git a/.github/ISSUE_TEMPLATE/report_issue.yml b/.github/ISSUE_TEMPLATE/report_issue.yml index be15d4fe3..9772f9510 100644 --- a/.github/ISSUE_TEMPLATE/report_issue.yml +++ b/.github/ISSUE_TEMPLATE/report_issue.yml @@ -2,14 +2,14 @@ name: Issue report description: Report a source issue in LNReader labels: [Bug] body: - - type: input + - type: dropdown id: source attributes: - label: Source information - description: | - You can find the source name in **Browse → Sources**. - placeholder: | - Example: "ReadLightNovel" + label: Plugin + description: Select the plugin associated with the issue. + options: + - ArNovel + - Azora validations: required: true diff --git a/.github/workflows/issue_auto_label.yml b/.github/workflows/issue_auto_label.yml new file mode 100644 index 000000000..03d3bce6a --- /dev/null +++ b/.github/workflows/issue_auto_label.yml @@ -0,0 +1,47 @@ +name: Auto Label Issues + +on: + issues: + types: + - opened + - edited + +jobs: + auto-label: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Extract plugin names and IDs + id: extract-plugins + run: | + # Read the plugins.json file to map plugin names to IDs + PLUGIN_MAP=$(jq -r '.[] | "\(.name)=\(.id)"' .dist/plugins.json) + echo "$PLUGIN_MAP" > plugin_map.txt + + - name: Extract the plugin from issue body + id: parse-issue + run: | + # Extract the plugin from the issue body + SELECTED_PLUGIN=$(jq -r '.issue.body' "$GITHUB_EVENT_PATH" | grep -oP '(?<=- Plugin:\s).*') + echo "SELECTED_PLUGIN=$SELECTED_PLUGIN" >> $GITHUB_ENV + + - name: Determine corresponding label + id: determine-label + run: | + # Map the selected plugin to its ID + LABEL=$(grep -oP "^$SELECTED_PLUGIN=.*" plugin_map.txt | cut -d= -f2) + echo "LABEL=$LABEL" >> $GITHUB_ENV + + - name: Add label to the issue + if: env.LABEL != '' + uses: actions-ecosystem/action-add-labels@v1 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + labels: ${{ env.LABEL }} + + - name: Handle missing label + if: env.LABEL == '' + run: echo "No matching label found for the selected plugin." diff --git a/.github/workflows/update_plugin_list.yml b/.github/workflows/update_plugin_list.yml new file mode 100644 index 000000000..c593e4531 --- /dev/null +++ b/.github/workflows/update_plugin_list.yml @@ -0,0 +1,56 @@ +name: Update Issue Template + +on: + workflow_run: + workflows: + - Publish Plugins + types: + - completed + +jobs: + update-template: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Read plugin names from JSON + run: | + # Extract plugin names from .dist/plugins.json + PLUGIN_OPTIONS=$(jq -r '.[] | .name' .dist/plugins.json | jq -R -s -c 'split("\n") | map(select(. != ""))') + + # Update the issue template with the extracted plugin names + jq --argjson options "$PLUGIN_OPTIONS" ' + (.body[] | select(.id == "source").attributes.placeholder) = "Example: Select a plugin from the list" + | .body |= map( + if .id == "source" then + { + type: "dropdown", + id: "source", + attributes: { + label: "Plugin", + description: "Select the plugin associated with the issue.", + options: $options + }, + validations: { + required: true + } + } + else + . + end + ) + ' .github/ISSUE_TEMPLATE/report_issue.yml > updated_template.yml + + mv updated_template.yml .github/ISSUE_TEMPLATE/report_issue.yml + + - name: Commit and Push Changes + run: | + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + git add .github/ISSUE_TEMPLATE/report_issue.yml + git commit -m "Update issue template with plugin dropdown options" + git push + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 3d7e14fdc1130f973f8ffd3406aa4f57eb4eb94f Mon Sep 17 00:00:00 2001 From: cd-z Date: Sun, 29 Dec 2024 20:23:11 +0100 Subject: [PATCH 02/50] branch issue fix --- .github/workflows/update_plugin_list.yml | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/.github/workflows/update_plugin_list.yml b/.github/workflows/update_plugin_list.yml index c593e4531..41358f154 100644 --- a/.github/workflows/update_plugin_list.yml +++ b/.github/workflows/update_plugin_list.yml @@ -12,14 +12,29 @@ jobs: runs-on: ubuntu-latest steps: - - name: Checkout code + # Checkout the master branch to start from there + - name: Checkout master branch uses: actions/checkout@v3 + with: + ref: master + # Fetch the plugins/v3.0.0 branch to access the JSON file + - name: Fetch plugins/v3.0.0 branch + run: git fetch origin plugins/v3.0.0 + + # Checkout the plugins/v3.0.0 branch to read the JSON file + - name: Checkout plugins/v3.0.0 branch + run: git checkout plugins/v3.0.0 + + # Read plugin names from the JSON file in the plugins/v3.0.0 branch - name: Read plugin names from JSON run: | # Extract plugin names from .dist/plugins.json PLUGIN_OPTIONS=$(jq -r '.[] | .name' .dist/plugins.json | jq -R -s -c 'split("\n") | map(select(. != ""))') + # Switch back to master branch + git checkout master + # Update the issue template with the extracted plugin names jq --argjson options "$PLUGIN_OPTIONS" ' (.body[] | select(.id == "source").attributes.placeholder) = "Example: Select a plugin from the list" @@ -45,12 +60,13 @@ jobs: mv updated_template.yml .github/ISSUE_TEMPLATE/report_issue.yml + # Commit and Push changes to master branch - name: Commit and Push Changes run: | git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" git add .github/ISSUE_TEMPLATE/report_issue.yml git commit -m "Update issue template with plugin dropdown options" - git push + git push origin master env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 09cb3387102d2cbfdda3f974e71cd4368b0c1299 Mon Sep 17 00:00:00 2001 From: cd-z Date: Sun, 29 Dec 2024 20:30:47 +0100 Subject: [PATCH 03/50] try debug --- .github/workflows/update_plugin_list.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update_plugin_list.yml b/.github/workflows/update_plugin_list.yml index 41358f154..609037654 100644 --- a/.github/workflows/update_plugin_list.yml +++ b/.github/workflows/update_plugin_list.yml @@ -31,7 +31,7 @@ jobs: run: | # Extract plugin names from .dist/plugins.json PLUGIN_OPTIONS=$(jq -r '.[] | .name' .dist/plugins.json | jq -R -s -c 'split("\n") | map(select(. != ""))') - + echo $PLUGIN_OPTIONS # Switch back to master branch git checkout master From 80a8ff12ca72cdded970f70baba6f73e54a61692 Mon Sep 17 00:00:00 2001 From: cd-z Date: Sun, 29 Dec 2024 20:37:18 +0100 Subject: [PATCH 04/50] maybe --- .github/workflows/update_plugin_list.yml | 59 +++++++++++++----------- 1 file changed, 31 insertions(+), 28 deletions(-) diff --git a/.github/workflows/update_plugin_list.yml b/.github/workflows/update_plugin_list.yml index 609037654..70671bedb 100644 --- a/.github/workflows/update_plugin_list.yml +++ b/.github/workflows/update_plugin_list.yml @@ -29,36 +29,39 @@ jobs: # Read plugin names from the JSON file in the plugins/v3.0.0 branch - name: Read plugin names from JSON run: | - # Extract plugin names from .dist/plugins.json - PLUGIN_OPTIONS=$(jq -r '.[] | .name' .dist/plugins.json | jq -R -s -c 'split("\n") | map(select(. != ""))') - echo $PLUGIN_OPTIONS - # Switch back to master branch - git checkout master + # Extract plugin names from .dist/plugins.json + PLUGIN_OPTIONS=$(jq -r '.[] | .name' .dist/plugins.json | jq -R -s -c 'split("\n") | map(select(. != ""))') - # Update the issue template with the extracted plugin names - jq --argjson options "$PLUGIN_OPTIONS" ' - (.body[] | select(.id == "source").attributes.placeholder) = "Example: Select a plugin from the list" - | .body |= map( - if .id == "source" then - { - type: "dropdown", - id: "source", - attributes: { - label: "Plugin", - description: "Select the plugin associated with the issue.", - options: $options - }, - validations: { - required: true - } - } - else - . - end - ) - ' .github/ISSUE_TEMPLATE/report_issue.yml > updated_template.yml + # Debugging: Print the extracted plugin names + echo "$PLUGIN_OPTIONS" # You can check this output to verify if the plugin names are extracted correctly - mv updated_template.yml .github/ISSUE_TEMPLATE/report_issue.yml + # Switch back to master branch + git checkout master + + # Update the issue template with the extracted plugin names + jq --argjson options "$PLUGIN_OPTIONS" ' + (.body[] | select(.id == "source").attributes.placeholder) = "Example: Select a plugin from the list" + | .body |= map( + if .id == "source" then + { + type: "dropdown", + id: "source", + attributes: { + label: "Plugin", + description: "Select the plugin associated with the issue.", + options: $options + }, + validations: { + required: true + } + } + else + . + end + ) + ' .github/ISSUE_TEMPLATE/report_issue.yml > updated_template.yml + + mv updated_template.yml .github/ISSUE_TEMPLATE/report_issue.yml # Commit and Push changes to master branch - name: Commit and Push Changes From a09ff4d2d5cfd10efb1299d1ccb2a075d0bfc8d0 Mon Sep 17 00:00:00 2001 From: cd-z Date: Sun, 29 Dec 2024 20:39:16 +0100 Subject: [PATCH 05/50] fix indents --- .github/workflows/update_plugin_list.yml | 66 ++++++++++++------------ 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/.github/workflows/update_plugin_list.yml b/.github/workflows/update_plugin_list.yml index 70671bedb..bba23b167 100644 --- a/.github/workflows/update_plugin_list.yml +++ b/.github/workflows/update_plugin_list.yml @@ -29,39 +29,39 @@ jobs: # Read plugin names from the JSON file in the plugins/v3.0.0 branch - name: Read plugin names from JSON run: | - # Extract plugin names from .dist/plugins.json - PLUGIN_OPTIONS=$(jq -r '.[] | .name' .dist/plugins.json | jq -R -s -c 'split("\n") | map(select(. != ""))') - - # Debugging: Print the extracted plugin names - echo "$PLUGIN_OPTIONS" # You can check this output to verify if the plugin names are extracted correctly - - # Switch back to master branch - git checkout master - - # Update the issue template with the extracted plugin names - jq --argjson options "$PLUGIN_OPTIONS" ' - (.body[] | select(.id == "source").attributes.placeholder) = "Example: Select a plugin from the list" - | .body |= map( - if .id == "source" then - { - type: "dropdown", - id: "source", - attributes: { - label: "Plugin", - description: "Select the plugin associated with the issue.", - options: $options - }, - validations: { - required: true - } - } - else - . - end - ) - ' .github/ISSUE_TEMPLATE/report_issue.yml > updated_template.yml - - mv updated_template.yml .github/ISSUE_TEMPLATE/report_issue.yml + # Extract plugin names from .dist/plugins.json + PLUGIN_OPTIONS=$(jq -r '.[] | .name' .dist/plugins.json | jq -R -s -c 'split("\n") | map(select(. != ""))') + + # Debugging: Print the extracted plugin names + echo "$PLUGIN_OPTIONS" # You can check this output to verify if the plugin names are extracted correctly + + # Switch back to master branch + git checkout master + + # Update the issue template with the extracted plugin names + jq --argjson options "$PLUGIN_OPTIONS" ' + (.body[] | select(.id == "source").attributes.placeholder) = "Example: Select a plugin from the list" + | .body |= map( + if .id == "source" then + { + type: "dropdown", + id: "source", + attributes: { + label: "Plugin", + description: "Select the plugin associated with the issue.", + options: $options + }, + validations: { + required: true + } + } + else + . + end + ) + ' .github/ISSUE_TEMPLATE/report_issue.yml > updated_template.yml + + mv updated_template.yml .github/ISSUE_TEMPLATE/report_issue.yml # Commit and Push changes to master branch - name: Commit and Push Changes From 4bdfdcde8ff2cbe935d287fbf5dbd7efeefd085c Mon Sep 17 00:00:00 2001 From: cd-z Date: Sun, 29 Dec 2024 23:11:47 +0100 Subject: [PATCH 06/50] f it I use js --- .github/ISSUE_TEMPLATE/report_issue.yml | 4 +- .github/scripts/blank_report_issue.yml | 94 ++++++++++++++++++++++++ .github/scripts/createOptions.sh | 35 +++++++++ .github/workflows/update_plugin_list.yml | 70 +++--------------- updated_issue.yml | 0 5 files changed, 140 insertions(+), 63 deletions(-) create mode 100644 .github/scripts/blank_report_issue.yml create mode 100644 .github/scripts/createOptions.sh create mode 100644 updated_issue.yml diff --git a/.github/ISSUE_TEMPLATE/report_issue.yml b/.github/ISSUE_TEMPLATE/report_issue.yml index 9772f9510..460ed7fb3 100644 --- a/.github/ISSUE_TEMPLATE/report_issue.yml +++ b/.github/ISSUE_TEMPLATE/report_issue.yml @@ -8,8 +8,8 @@ body: label: Plugin description: Select the plugin associated with the issue. options: - - ArNovel - - Azora + - "ArNovel Id: arnovel" + - "Azora Id: azora" validations: required: true diff --git a/.github/scripts/blank_report_issue.yml b/.github/scripts/blank_report_issue.yml new file mode 100644 index 000000000..4ada27425 --- /dev/null +++ b/.github/scripts/blank_report_issue.yml @@ -0,0 +1,94 @@ +name: Issue report +description: Report a source issue in LNReader +labels: [Bug] +body: + - type: dropdown + id: source + attributes: + label: Plugin + description: Select the plugin associated with the issue. + options: + {#CHANGE#} + validations: + required: true + + - type: textarea + id: reproduce-steps + attributes: + label: Steps to reproduce + description: Provide an example of the issue. + placeholder: | + Example: + 1. First step + 2. Second step + 3. Issue here + validations: + required: true + + - type: textarea + id: expected-behavior + attributes: + label: Expected behavior + placeholder: | + Example: + "This should happen..." + validations: + required: true + + - type: textarea + id: actual-behavior + attributes: + label: Actual behavior + placeholder: | + Example: + "This happened instead..." + validations: + required: true + + - type: input + id: lnreader-version + attributes: + label: LNReader version + description: | + You can find your LNReader version in **More → About**. + placeholder: | + Example: "1.1.19" + validations: + required: true + + - type: input + id: android-version + attributes: + label: Android version + description: | + You can find this somewhere in your Android settings. + placeholder: | + Example: "Android 11" + validations: + required: true + + - type: textarea + id: other-details + attributes: + label: Other details + placeholder: | + Additional details and attachments. + + - type: checkboxes + id: acknowledgements + attributes: + label: Acknowledgements + description: Your issue will be closed if you haven't done these steps. + options: + - label: I have searched the existing issues and this is a new ticket, **NOT** a duplicate or related to another open issue. + required: true + - label: I have written a short but informative title. + required: true + - label: I have updated the app to version **[1.1.19](https://github.com/LNReader/lnreader/releases/latest)**. + required: true + - label: I have updated all installed extensions. + required: true + - label: If this is an issue with the app itself, I should be opening an issue in the [app repository](https://github.com/LNReader/lnreader/issues/new/choose). + required: true + - label: I will fill out all of the requested information in this form. + required: true diff --git a/.github/scripts/createOptions.sh b/.github/scripts/createOptions.sh new file mode 100644 index 000000000..a5ea83b6d --- /dev/null +++ b/.github/scripts/createOptions.sh @@ -0,0 +1,35 @@ +current=`git rev-parse --abbrev-ref HEAD` +version=`node -e "console.log(require('./package.json').version);"` +dist="plugins/v$version" + +# PLUGIN_JSON=$(curl -s https://raw.githubusercontent.com/LNReader/lnreader-plugins/plugins/v3.0.0/.dist/plugins.min.json | jq '.[] | {(.id): .name}') +PLUGIN_CSV=$(curl -s https://raw.githubusercontent.com/LNReader/lnreader-plugins/{$dist}/.dist/plugins.min.json | jq '[.[] | {(.name + " Id: " + .id): .id}]' | jq 'reduce .[] as $item ({}; . * $item)') + +# $(echo "$PLUGIN_CSV"|jq 'keys[]' | jq -R -s -c 'split("\n") | map(select(. != ""))') +KEYS=$(echo $PLUGIN_CSV | jq 'keys_unsorted') +# echo "$KEYS" +node -e "const fs = require('fs');const filePath = '.github/scripts/blank_report_issue.yml';const rawText = fs.readFileSync(filePath, 'utf8');const text = $KEYS.join('\"\n - \"');fs.writeFileSync('.github/ISSUE_TEMPLATE/report_issue.yml', rawText.replace(/{#CHANGE#}/g,'- \"'+ text +'\"'));" +# OUTPUT=$(yq -iy '.body[0].type.attributes.options = "$KEYS"' .github/ISSUE_TEMPLATE/report_issue.yml ) + +# echo "$OUTPUT" +# git checkout --orphan $dist + +# if [ $? -eq 1 ]; then +# # If checkout failed +# echo "==========" +# echo "Could not checkout branch dist! See the error above and fix it!" +# exit 1 +# fi + +# git reset +# rm -rf .js +# npm run clearMultisrc +# npm run generate +# npx tsc --project tsconfig.production.json +# npm run json +# git add -f public/static .dist .js/src/plugins total.svg +# git commit -m "chore: Publish Plugins" +# git push -f origin $dist + +# git checkout -f $current + diff --git a/.github/workflows/update_plugin_list.yml b/.github/workflows/update_plugin_list.yml index bba23b167..59f332ca2 100644 --- a/.github/workflows/update_plugin_list.yml +++ b/.github/workflows/update_plugin_list.yml @@ -8,68 +8,16 @@ on: - completed jobs: - update-template: + Publish: + if: github.repository == 'LNReader/lnreader-plugins' runs-on: ubuntu-latest - steps: - # Checkout the master branch to start from there - - name: Checkout master branch - uses: actions/checkout@v3 + - uses: actions/checkout@v3 with: - ref: master - - # Fetch the plugins/v3.0.0 branch to access the JSON file - - name: Fetch plugins/v3.0.0 branch - run: git fetch origin plugins/v3.0.0 - - # Checkout the plugins/v3.0.0 branch to read the JSON file - - name: Checkout plugins/v3.0.0 branch - run: git checkout plugins/v3.0.0 - - # Read plugin names from the JSON file in the plugins/v3.0.0 branch - - name: Read plugin names from JSON - run: | - # Extract plugin names from .dist/plugins.json - PLUGIN_OPTIONS=$(jq -r '.[] | .name' .dist/plugins.json | jq -R -s -c 'split("\n") | map(select(. != ""))') - - # Debugging: Print the extracted plugin names - echo "$PLUGIN_OPTIONS" # You can check this output to verify if the plugin names are extracted correctly - - # Switch back to master branch - git checkout master - - # Update the issue template with the extracted plugin names - jq --argjson options "$PLUGIN_OPTIONS" ' - (.body[] | select(.id == "source").attributes.placeholder) = "Example: Select a plugin from the list" - | .body |= map( - if .id == "source" then - { - type: "dropdown", - id: "source", - attributes: { - label: "Plugin", - description: "Select the plugin associated with the issue.", - options: $options - }, - validations: { - required: true - } - } - else - . - end - ) - ' .github/ISSUE_TEMPLATE/report_issue.yml > updated_template.yml - - mv updated_template.yml .github/ISSUE_TEMPLATE/report_issue.yml - - # Commit and Push changes to master branch - - name: Commit and Push Changes + token: ${{ secrets.REPO_SCOPED_TOKEN }} + - uses: actions/setup-node@v3 + with: + node-version: '20' + - name: Recreating report issue template run: | - git config user.name "github-actions[bot]" - git config user.email "github-actions[bot]@users.noreply.github.com" - git add .github/ISSUE_TEMPLATE/report_issue.yml - git commit -m "Update issue template with plugin dropdown options" - git push origin master - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + bash ./.github/scripts/createOptions.sh diff --git a/updated_issue.yml b/updated_issue.yml new file mode 100644 index 000000000..e69de29bb From db3f5937130b99b293ab10be95df72cdec925219 Mon Sep 17 00:00:00 2001 From: cd-z Date: Sun, 29 Dec 2024 23:15:05 +0100 Subject: [PATCH 07/50] disable for testing --- .github/workflows/update_plugin_list.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/update_plugin_list.yml b/.github/workflows/update_plugin_list.yml index 59f332ca2..6b88ca8ee 100644 --- a/.github/workflows/update_plugin_list.yml +++ b/.github/workflows/update_plugin_list.yml @@ -8,8 +8,8 @@ on: - completed jobs: - Publish: - if: github.repository == 'LNReader/lnreader-plugins' + Update Template: + # if: github.repository == 'LNReader/lnreader-plugins' runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 From a7c69a9b62337b284cecad03d0c2ef18edb1bd18 Mon Sep 17 00:00:00 2001 From: cd-z Date: Sun, 29 Dec 2024 23:16:15 +0100 Subject: [PATCH 08/50] changed id --- .github/workflows/update_plugin_list.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update_plugin_list.yml b/.github/workflows/update_plugin_list.yml index 6b88ca8ee..e796b647d 100644 --- a/.github/workflows/update_plugin_list.yml +++ b/.github/workflows/update_plugin_list.yml @@ -8,7 +8,7 @@ on: - completed jobs: - Update Template: + update_template: # if: github.repository == 'LNReader/lnreader-plugins' runs-on: ubuntu-latest steps: From d2b7a302c0a9ceb203082a4262d5d732f1867934 Mon Sep 17 00:00:00 2001 From: cd-z Date: Sun, 29 Dec 2024 23:20:16 +0100 Subject: [PATCH 09/50] added git --- .github/workflows/update_plugin_list.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/update_plugin_list.yml b/.github/workflows/update_plugin_list.yml index e796b647d..750bc443b 100644 --- a/.github/workflows/update_plugin_list.yml +++ b/.github/workflows/update_plugin_list.yml @@ -14,10 +14,17 @@ jobs: steps: - uses: actions/checkout@v3 with: - token: ${{ secrets.REPO_SCOPED_TOKEN }} + ref: master - uses: actions/setup-node@v3 with: node-version: '20' - name: Recreating report issue template run: | bash ./.github/scripts/createOptions.sh + - name: Commit and Push Changes + run: | + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + git add .github/ISSUE_TEMPLATE/report_issue.yml + git commit -m "Update issue template with plugin dropdown options" + git push origin master From 94b7ccd69ea47087b15cd4dde7964d66a7697f4e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 29 Dec 2024 22:20:46 +0000 Subject: [PATCH 10/50] Update issue template with plugin dropdown options --- .github/ISSUE_TEMPLATE/report_issue.yml | 203 ++++++++++++++++++++++++ 1 file changed, 203 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/report_issue.yml b/.github/ISSUE_TEMPLATE/report_issue.yml index 460ed7fb3..f05061aaa 100644 --- a/.github/ISSUE_TEMPLATE/report_issue.yml +++ b/.github/ISSUE_TEMPLATE/report_issue.yml @@ -10,6 +10,209 @@ body: options: - "ArNovel Id: arnovel" - "Azora Id: azora" + - "dilar tube Id: dilartube" + - "HizoManga Id: hizomanga" + - "Kol Novel Id: kolnovel" + - "Novel4Up Id: novel4up" + - "Novels Paradise Id: novelsparadise" + - "Olaoe.cyou Id: olaoe" + - "Rewayat Club Id: rewayatclub" + - "Riwyat Id: riwyat" + - "Sunovels Id: sunovels" + - "69书吧 Id: 69shu" + - "69书吧 Id: 69xinshu" + - "Linovelib Id: linovelib" + - "Linovelib(繁體) Id: linovelib_tw" + - "FirstKissNovel Id: 1stkissnovel" + - "AllNovelFull Id: anf.net" + - "Arcane Translations Id: arcane" + - "Archive Of Our Own Id: archiveofourown" + - "Srank Manga Id: asuralightnovel" + - "Belle Reservoir Id: bellereservoir" + - "BestLightNovel Id: BLN" + - "BoxNovel Id: boxnovel" + - "Citrus Aurora Id: citrusaurora" + - "Coral Boutique Id: coralboutique" + - "CPUnovel Id: cpunovel" + - "DaoNovel Id: daonovel" + - "DaoTranslate Id: daotranslate" + - "Divine Dao Library Id: DDL.com" + - "Dragon Tea Id: dragontea" + - "Dream Big Translations Id: dreambigtl" + - "Dusk Blossoms Id: duskblossoms" + - "Early Novel Id: earlynovel" + - "ElloTL Id: ellotl" + - "Eternalune Id: eternalune" + - "FanNovel Id: fannovel" + - "Fans Translations Id: fanstranslations" + - "Fenrir Translations Id: fenrir" + - "Foxaholic Id: foxaholic" + - "Foxteller Id: foxteller" + - "Faq Wiki Id: FWK.US" + - "Free Web Novel Id: FWN.com" + - "Galaxy Translations Id: galaxytranslations" + - "Genesis Id: genesistudio" + - "Guavaread Id: guavaread" + - "Hiraeth Translation Id: hiraethtranslation" + - "HotNovelPub Id: hotnovelpub" + - "Ippotranslations Id: ippotranslations" + - "KnoxT Id: knoxt" + - "Lib Read Id: libread" + - "LightNovelCave Id: lightnovelcave" + - "LightNovelPub Id: lightnovelpub" + - "LightNovelPub Vip Id: lightnovelpubvip" + - "Light Novel Updates Id: LightNovelUpdates" + - "LightNovelWord Id: lightnovelworld" + - "LightNovelHeaven Id: lnheaven" + - "LnMTL Id: lnmtl" + - "Ltnovel Id: ltnovel" + - "LunarLetters Id: lunarletters" + - "Meownovel Id: meownovel" + - "Moonlight Novels Id: moonlightnovel" + - "MostNovel Id: mostnovel" + - "MTL-Novel Id: mtl-novel" + - "MTL Novel Id: mtlnovel" + - "MTL Reader Id: mtlreader" + - "MVLEMPYR Id: mvlempyr.com" + - "MysticalSeries Id: mysticalmerries" + - "NeoSekai Translations Id: neosekaiTLS" + - "Nitro Manga Id: nitromanga" + - "novelsOnline Id: NO.net" + - "NobleMTL Id: noblemtl" + - "Novel Bin Id: novelbin" + - "NovelBuddy.io Id: novelbuddy" + - "Novel Fire Id: novelfire" + - "NovelFull Id: novelfull" + - "Novel Hall Id: novelhall" + - "NovelMultiverse Id: novelmultiverse" + - "NovelsKnight Id: novelsknight" + - "NovelTranslate Id: novelTL" + - "Novel Updates Id: novelupdates" + - "Panda Machine Translations Id: pandamtl" + - "Pastel Tales Id: pasteltales" + - "PawRead Id: pawread" + - "Rainofsnow Id: rainofsnow" + - "Ranobes Id: ranobes" + - "ReadNovelFull Id: readnovelfull" + - "Re:Library Id: ReLib" + - "Requiem Translations Id: requiemtls" + - "ReadLiteNovel Id: rln.app" + - "Royal Road Id: royalroad" + - "Salmon Latte Id: salmonlatte" + - "Scribble Hub Id: scribblehub" + - "SleepyTranslations Id: sleeptTLS" + - "SonicMTL Id: sonicmtl" + - "StorySeedling Id: storyseedling" + - "System Translation Id: systemtranslation" + - "TranslatinOtaku Id: translatinotaku" + - "Universal Novel Id: universalnovel" + - "VyNovel Id: vynovel" + - "Webnovel Id: webnovel" + - "WebNovelLover Id: webnovelover" + - "Web Novel Pub Id: webnovelworld" + - "White Moonlight Novels Id: whitemoonlightnovels" + - "Wook's Teahouse Id: wooksteahouse" + - "WordExcerpt Id: wordexcerpt" + - "WTR-LAB Id: WTRLAB" + - "Wuxiafox Id: wuxiacity" + - "Fans MTL Id: wuxiamtl" + - "Wuxiabox Id: wuxiap" + - "Wuxia Space Id: wuxiaspace" + - "WuxiaV Id: wuxiav" + - "Wuxia World Id: wuxiaworld" + - "WuxiaWorld.Site Id: wuxiaworld.site" + - "Zetro Translation Id: zetroTL" + - "Chireads Id: chireads" + - "HarkenEliwood Id: harkeneliwood" + - "KissWood Id: kisswood" + - "Ligh Novel FR Id: lightnovelfr" + - "MTL Novel (FR) Id: mtlnovel-fr" + - "NovelDeGlace Id: noveldeglace" + - "Novhell Id: novhell" + - "PhenixScans Id: phenixscans" + - "Warrior Legend Trad Id: warriorlegendtrad" + - "WorldNovel Id: worldnovel" + - "WuxiaLnScantrad Id: wuxialnscantrad" + - "Xiaowaz Id: xiaowaz" + - "Baca Light Novel Id: bacalightnovel" + - "IndoWebNovel Id: IDWN.id" + - "MeioNovel Id: meionovel" + - "Risenovel Id: morenovel" + - "MTL Novel (ID) Id: mtlnovel-id" + - "NovelBookID Id: novelbookid" + - "NovelRingan Id: novelringan.com" + - "SakuraNovel Id: sakura.id" + - "Sekte Novel Id: sektenovel" + - "WBNovel Id: wbnovel" + - "kakuyomu Id: kakuyomu" + - "Syosetu Id: yomou.syosetu" + - "Agitoon Id: agit.xyz" + - "Novelki Id: novelki.pl" + - "Better Novels Id: betternovels" + - "Blog do Amon Novels Id: blogdoamonnovels" + - "Central Novel Id: centralnovel" + - "Kiniga Id: kiniga" + - "LaNovels Id: lanovels" + - "Light Novel Brasil Id: lightnovelbrasil" + - "MTL Novel (PT) Id: mtlnovel-pt" + - "Novel Mania Id: novelmania.com.br" + - "Tsundoku Traduções Id: tsundoku" + - "Автор Тудей Id: AT" + - "Bookhamster Id: bookhamster" + - "Bookriver Id: bookriver" + - "Erolate Id: erolate" + - "EzNovels Id: eznovels" + - "ficbook Id: ficbook" + - "LitSpace Id: freedlit.space" + - "Свободный Мир Ранобэ Id: ifreedom" + - "Jaomix Id: jaomix.ru" + - "MTL Novel (RU) Id: mtlnovel-ru" + - "Neobook Id: neobook" + - "НовелОВХ Id: novelovh" + - "Ranobes (RU) Id: ranobes-ru" + - "Renovels Id: ReN" + - "RanobeLib Id: RLIB" + - "RanobeHub Id: RNBH.org" + - "РанобэРФ Id: RNRF" + - "Rulate Id: rulate" + - "Ruvers Id: RV" + - "NovelTL Id: TL" + - "ТопЛиба Id: TopLiba" + - "Целлюлоза Id: zelluloza" + - "AllNovelRead Id: allnovelread" + - "Hasu Translations Id: HasuTL" + - "LightNovelDaily Id: lightnoveldaily" + - "MTL Novel (ES) Id: mtlnovel-es" + - "Novelas Ligera Id: novelasligera" + - "Oasis Translations Id: oasistranslations" + - "Pancho Translations Id: panchotranslations" + - "ReinoWuxia Id: reinowuxia" + - "SkyNovels Id: skynovels" + - "Traducciones Amistosas Id: traducciones" + - "TuNovelaLigera Id: tunovelaligera" + - "Yuuki Tls Id: yuukitls" + - "Novel Lucky Id: novel-lucky" + - "Novel PDF Id: novelpdf" + - "Araz Novel Id: azraznovel" + - "E-KİTAPLAR Id: ekitaplar" + - "EpikNovel Id: epiknovel" + - "Kodeks Library Id: kodekslibrary" + - "NABİ SCANS Id: nabiscans" + - "Namevt Id: namevt" + - "Novel oku Id: noveloku" + - "Novelokutr Id: novelokutr" + - "NovelTR Id: noveltr" + - "ThNovels Id: thnovels" + - "TurkceLightNovels Id: turkcelightnovels" + - "WebNovelOku Id: webnoveloku" + - "Смаколики Id: smakolykytl" + - "Light Novel VN Id: lightnovel.vn" + - "Hako Id: ln.hako" + - "Nettruyen Id: nettruyen" + - "Truyện Chữ Id: truyenchu" + - "Truyen Conect Id: truyenconect" + - "Truyện Full Id: truyenfull" + - "Komga Id: komga" validations: required: true From c57b6f23f0195b7ad3656f84bd99184edb3980ea Mon Sep 17 00:00:00 2001 From: cd-z Date: Mon, 30 Dec 2024 14:34:42 +0100 Subject: [PATCH 11/50] Only push on change --- .github/workflows/update_plugin_list.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/update_plugin_list.yml b/.github/workflows/update_plugin_list.yml index 750bc443b..b014f3fc0 100644 --- a/.github/workflows/update_plugin_list.yml +++ b/.github/workflows/update_plugin_list.yml @@ -26,5 +26,10 @@ jobs: git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" git add .github/ISSUE_TEMPLATE/report_issue.yml - git commit -m "Update issue template with plugin dropdown options" - git push origin master + git add .github/scripts/keys.json + if git diff --cached --quiet; then + echo "No changes to commit." + else + git commit -m "Update issue template with plugin dropdown options" + git push origin master + fi From 2b328a230588aadc9371b1f2dc69e502caea0c13 Mon Sep 17 00:00:00 2001 From: cd-z Date: Mon, 30 Dec 2024 14:34:52 +0100 Subject: [PATCH 12/50] Add multiple --- .github/scripts/blank_report_issue.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/scripts/blank_report_issue.yml b/.github/scripts/blank_report_issue.yml index 4ada27425..96288e908 100644 --- a/.github/scripts/blank_report_issue.yml +++ b/.github/scripts/blank_report_issue.yml @@ -7,6 +7,7 @@ body: attributes: label: Plugin description: Select the plugin associated with the issue. + multiple: true options: {#CHANGE#} validations: From aea4905839acd88b02d35fecf0b55a98d3dcd7ae Mon Sep 17 00:00:00 2001 From: cd-z Date: Mon, 30 Dec 2024 14:35:33 +0100 Subject: [PATCH 13/50] save keys file and additional safety --- .github/scripts/createOptions.sh | 50 +++++++++++++------------------- 1 file changed, 20 insertions(+), 30 deletions(-) diff --git a/.github/scripts/createOptions.sh b/.github/scripts/createOptions.sh index a5ea83b6d..c615101f3 100644 --- a/.github/scripts/createOptions.sh +++ b/.github/scripts/createOptions.sh @@ -1,35 +1,25 @@ -current=`git rev-parse --abbrev-ref HEAD` version=`node -e "console.log(require('./package.json').version);"` dist="plugins/v$version" -# PLUGIN_JSON=$(curl -s https://raw.githubusercontent.com/LNReader/lnreader-plugins/plugins/v3.0.0/.dist/plugins.min.json | jq '.[] | {(.id): .name}') -PLUGIN_CSV=$(curl -s https://raw.githubusercontent.com/LNReader/lnreader-plugins/{$dist}/.dist/plugins.min.json | jq '[.[] | {(.name + " Id: " + .id): .id}]' | jq 'reduce .[] as $item ({}; . * $item)') +PLUGINS=$(curl -s https://raw.githubusercontent.com/LNReader/lnreader-plugins/{$dist}/.dist/plugins.min.json | jq '[.[] | {(.name): .id}]' | jq 'reduce .[] as $item ({}; . * $item)') -# $(echo "$PLUGIN_CSV"|jq 'keys[]' | jq -R -s -c 'split("\n") | map(select(. != ""))') -KEYS=$(echo $PLUGIN_CSV | jq 'keys_unsorted') -# echo "$KEYS" -node -e "const fs = require('fs');const filePath = '.github/scripts/blank_report_issue.yml';const rawText = fs.readFileSync(filePath, 'utf8');const text = $KEYS.join('\"\n - \"');fs.writeFileSync('.github/ISSUE_TEMPLATE/report_issue.yml', rawText.replace(/{#CHANGE#}/g,'- \"'+ text +'\"'));" -# OUTPUT=$(yq -iy '.body[0].type.attributes.options = "$KEYS"' .github/ISSUE_TEMPLATE/report_issue.yml ) - -# echo "$OUTPUT" -# git checkout --orphan $dist - -# if [ $? -eq 1 ]; then -# # If checkout failed -# echo "==========" -# echo "Could not checkout branch dist! See the error above and fix it!" -# exit 1 -# fi - -# git reset -# rm -rf .js -# npm run clearMultisrc -# npm run generate -# npx tsc --project tsconfig.production.json -# npm run json -# git add -f public/static .dist .js/src/plugins total.svg -# git commit -m "chore: Publish Plugins" -# git push -f origin $dist - -# git checkout -f $current +KEYS=$(echo $PLUGINS | jq 'keys_unsorted') +node -e " + const fs = require('fs'); + const rawText = fs.readFileSync('.github/scripts/blank_report_issue.yml', 'utf8'); + const newKeys = $KEYS; + let savedKeys = []; + try { + let keys = JSON.parse(fs.readFileSync('.github/scripts/keys.json', 'utf8')); + savedKeys = Object.keys(keys); + } catch(err) {console.log(err)} + if(!sameKeys(newKeys, savedKeys) && Array.isArray(newKeys)) { + const text = newKeys.join('\n - '); + fs.writeFileSync('.github/ISSUE_TEMPLATE/report_issue.yml', rawText.replace(/{#CHANGE#}/g,'- '+ text )); + fs.writeFileSync('.github/scripts/keys.json', JSON.stringify($PLUGINS)); + } + function sameKeys(a, b) { + return a.length === b.length && a.every(value => b.includes(value)); + } + " From 0719d0274681f09f96cc0c1b56df24f806c813e8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 30 Dec 2024 13:36:08 +0000 Subject: [PATCH 14/50] Update issue template with plugin dropdown options --- .github/ISSUE_TEMPLATE/report_issue.yml | 410 ++++++++++++------------ .github/scripts/keys.json | 1 + 2 files changed, 206 insertions(+), 205 deletions(-) create mode 100644 .github/scripts/keys.json diff --git a/.github/ISSUE_TEMPLATE/report_issue.yml b/.github/ISSUE_TEMPLATE/report_issue.yml index f05061aaa..189639083 100644 --- a/.github/ISSUE_TEMPLATE/report_issue.yml +++ b/.github/ISSUE_TEMPLATE/report_issue.yml @@ -7,212 +7,212 @@ body: attributes: label: Plugin description: Select the plugin associated with the issue. + multiple: true options: - - "ArNovel Id: arnovel" - - "Azora Id: azora" - - "dilar tube Id: dilartube" - - "HizoManga Id: hizomanga" - - "Kol Novel Id: kolnovel" - - "Novel4Up Id: novel4up" - - "Novels Paradise Id: novelsparadise" - - "Olaoe.cyou Id: olaoe" - - "Rewayat Club Id: rewayatclub" - - "Riwyat Id: riwyat" - - "Sunovels Id: sunovels" - - "69书吧 Id: 69shu" - - "69书吧 Id: 69xinshu" - - "Linovelib Id: linovelib" - - "Linovelib(繁體) Id: linovelib_tw" - - "FirstKissNovel Id: 1stkissnovel" - - "AllNovelFull Id: anf.net" - - "Arcane Translations Id: arcane" - - "Archive Of Our Own Id: archiveofourown" - - "Srank Manga Id: asuralightnovel" - - "Belle Reservoir Id: bellereservoir" - - "BestLightNovel Id: BLN" - - "BoxNovel Id: boxnovel" - - "Citrus Aurora Id: citrusaurora" - - "Coral Boutique Id: coralboutique" - - "CPUnovel Id: cpunovel" - - "DaoNovel Id: daonovel" - - "DaoTranslate Id: daotranslate" - - "Divine Dao Library Id: DDL.com" - - "Dragon Tea Id: dragontea" - - "Dream Big Translations Id: dreambigtl" - - "Dusk Blossoms Id: duskblossoms" - - "Early Novel Id: earlynovel" - - "ElloTL Id: ellotl" - - "Eternalune Id: eternalune" - - "FanNovel Id: fannovel" - - "Fans Translations Id: fanstranslations" - - "Fenrir Translations Id: fenrir" - - "Foxaholic Id: foxaholic" - - "Foxteller Id: foxteller" - - "Faq Wiki Id: FWK.US" - - "Free Web Novel Id: FWN.com" - - "Galaxy Translations Id: galaxytranslations" - - "Genesis Id: genesistudio" - - "Guavaread Id: guavaread" - - "Hiraeth Translation Id: hiraethtranslation" - - "HotNovelPub Id: hotnovelpub" - - "Ippotranslations Id: ippotranslations" - - "KnoxT Id: knoxt" - - "Lib Read Id: libread" - - "LightNovelCave Id: lightnovelcave" - - "LightNovelPub Id: lightnovelpub" - - "LightNovelPub Vip Id: lightnovelpubvip" - - "Light Novel Updates Id: LightNovelUpdates" - - "LightNovelWord Id: lightnovelworld" - - "LightNovelHeaven Id: lnheaven" - - "LnMTL Id: lnmtl" - - "Ltnovel Id: ltnovel" - - "LunarLetters Id: lunarletters" - - "Meownovel Id: meownovel" - - "Moonlight Novels Id: moonlightnovel" - - "MostNovel Id: mostnovel" - - "MTL-Novel Id: mtl-novel" - - "MTL Novel Id: mtlnovel" - - "MTL Reader Id: mtlreader" - - "MVLEMPYR Id: mvlempyr.com" - - "MysticalSeries Id: mysticalmerries" - - "NeoSekai Translations Id: neosekaiTLS" - - "Nitro Manga Id: nitromanga" - - "novelsOnline Id: NO.net" - - "NobleMTL Id: noblemtl" - - "Novel Bin Id: novelbin" - - "NovelBuddy.io Id: novelbuddy" - - "Novel Fire Id: novelfire" - - "NovelFull Id: novelfull" - - "Novel Hall Id: novelhall" - - "NovelMultiverse Id: novelmultiverse" - - "NovelsKnight Id: novelsknight" - - "NovelTranslate Id: novelTL" - - "Novel Updates Id: novelupdates" - - "Panda Machine Translations Id: pandamtl" - - "Pastel Tales Id: pasteltales" - - "PawRead Id: pawread" - - "Rainofsnow Id: rainofsnow" - - "Ranobes Id: ranobes" - - "ReadNovelFull Id: readnovelfull" - - "Re:Library Id: ReLib" - - "Requiem Translations Id: requiemtls" - - "ReadLiteNovel Id: rln.app" - - "Royal Road Id: royalroad" - - "Salmon Latte Id: salmonlatte" - - "Scribble Hub Id: scribblehub" - - "SleepyTranslations Id: sleeptTLS" - - "SonicMTL Id: sonicmtl" - - "StorySeedling Id: storyseedling" - - "System Translation Id: systemtranslation" - - "TranslatinOtaku Id: translatinotaku" - - "Universal Novel Id: universalnovel" - - "VyNovel Id: vynovel" - - "Webnovel Id: webnovel" - - "WebNovelLover Id: webnovelover" - - "Web Novel Pub Id: webnovelworld" - - "White Moonlight Novels Id: whitemoonlightnovels" - - "Wook's Teahouse Id: wooksteahouse" - - "WordExcerpt Id: wordexcerpt" - - "WTR-LAB Id: WTRLAB" - - "Wuxiafox Id: wuxiacity" - - "Fans MTL Id: wuxiamtl" - - "Wuxiabox Id: wuxiap" - - "Wuxia Space Id: wuxiaspace" - - "WuxiaV Id: wuxiav" - - "Wuxia World Id: wuxiaworld" - - "WuxiaWorld.Site Id: wuxiaworld.site" - - "Zetro Translation Id: zetroTL" - - "Chireads Id: chireads" - - "HarkenEliwood Id: harkeneliwood" - - "KissWood Id: kisswood" - - "Ligh Novel FR Id: lightnovelfr" - - "MTL Novel (FR) Id: mtlnovel-fr" - - "NovelDeGlace Id: noveldeglace" - - "Novhell Id: novhell" - - "PhenixScans Id: phenixscans" - - "Warrior Legend Trad Id: warriorlegendtrad" - - "WorldNovel Id: worldnovel" - - "WuxiaLnScantrad Id: wuxialnscantrad" - - "Xiaowaz Id: xiaowaz" - - "Baca Light Novel Id: bacalightnovel" - - "IndoWebNovel Id: IDWN.id" - - "MeioNovel Id: meionovel" - - "Risenovel Id: morenovel" - - "MTL Novel (ID) Id: mtlnovel-id" - - "NovelBookID Id: novelbookid" - - "NovelRingan Id: novelringan.com" - - "SakuraNovel Id: sakura.id" - - "Sekte Novel Id: sektenovel" - - "WBNovel Id: wbnovel" - - "kakuyomu Id: kakuyomu" - - "Syosetu Id: yomou.syosetu" - - "Agitoon Id: agit.xyz" - - "Novelki Id: novelki.pl" - - "Better Novels Id: betternovels" - - "Blog do Amon Novels Id: blogdoamonnovels" - - "Central Novel Id: centralnovel" - - "Kiniga Id: kiniga" - - "LaNovels Id: lanovels" - - "Light Novel Brasil Id: lightnovelbrasil" - - "MTL Novel (PT) Id: mtlnovel-pt" - - "Novel Mania Id: novelmania.com.br" - - "Tsundoku Traduções Id: tsundoku" - - "Автор Тудей Id: AT" - - "Bookhamster Id: bookhamster" - - "Bookriver Id: bookriver" - - "Erolate Id: erolate" - - "EzNovels Id: eznovels" - - "ficbook Id: ficbook" - - "LitSpace Id: freedlit.space" - - "Свободный Мир Ранобэ Id: ifreedom" - - "Jaomix Id: jaomix.ru" - - "MTL Novel (RU) Id: mtlnovel-ru" - - "Neobook Id: neobook" - - "НовелОВХ Id: novelovh" - - "Ranobes (RU) Id: ranobes-ru" - - "Renovels Id: ReN" - - "RanobeLib Id: RLIB" - - "RanobeHub Id: RNBH.org" - - "РанобэРФ Id: RNRF" - - "Rulate Id: rulate" - - "Ruvers Id: RV" - - "NovelTL Id: TL" - - "ТопЛиба Id: TopLiba" - - "Целлюлоза Id: zelluloza" - - "AllNovelRead Id: allnovelread" - - "Hasu Translations Id: HasuTL" - - "LightNovelDaily Id: lightnoveldaily" - - "MTL Novel (ES) Id: mtlnovel-es" - - "Novelas Ligera Id: novelasligera" - - "Oasis Translations Id: oasistranslations" - - "Pancho Translations Id: panchotranslations" - - "ReinoWuxia Id: reinowuxia" - - "SkyNovels Id: skynovels" - - "Traducciones Amistosas Id: traducciones" - - "TuNovelaLigera Id: tunovelaligera" - - "Yuuki Tls Id: yuukitls" - - "Novel Lucky Id: novel-lucky" - - "Novel PDF Id: novelpdf" - - "Araz Novel Id: azraznovel" - - "E-KİTAPLAR Id: ekitaplar" - - "EpikNovel Id: epiknovel" - - "Kodeks Library Id: kodekslibrary" - - "NABİ SCANS Id: nabiscans" - - "Namevt Id: namevt" - - "Novel oku Id: noveloku" - - "Novelokutr Id: novelokutr" - - "NovelTR Id: noveltr" - - "ThNovels Id: thnovels" - - "TurkceLightNovels Id: turkcelightnovels" - - "WebNovelOku Id: webnoveloku" - - "Смаколики Id: smakolykytl" - - "Light Novel VN Id: lightnovel.vn" - - "Hako Id: ln.hako" - - "Nettruyen Id: nettruyen" - - "Truyện Chữ Id: truyenchu" - - "Truyen Conect Id: truyenconect" - - "Truyện Full Id: truyenfull" - - "Komga Id: komga" + - ArNovel + - Azora + - dilar tube + - HizoManga + - Kol Novel + - Novel4Up + - Novels Paradise + - Olaoe.cyou + - Rewayat Club + - Riwyat + - Sunovels + - 69书吧 + - Linovelib + - Linovelib(繁體) + - FirstKissNovel + - AllNovelFull + - Arcane Translations + - Archive Of Our Own + - Srank Manga + - Belle Reservoir + - BestLightNovel + - BoxNovel + - Citrus Aurora + - Coral Boutique + - CPUnovel + - DaoNovel + - DaoTranslate + - Divine Dao Library + - Dragon Tea + - Dream Big Translations + - Dusk Blossoms + - Early Novel + - ElloTL + - Eternalune + - FanNovel + - Fans Translations + - Fenrir Translations + - Foxaholic + - Foxteller + - Faq Wiki + - Free Web Novel + - Galaxy Translations + - Genesis + - Guavaread + - Hiraeth Translation + - HotNovelPub + - Ippotranslations + - KnoxT + - Lib Read + - LightNovelCave + - LightNovelPub + - LightNovelPub Vip + - Light Novel Updates + - LightNovelWord + - LightNovelHeaven + - LnMTL + - Ltnovel + - LunarLetters + - Meownovel + - Moonlight Novels + - MostNovel + - MTL-Novel + - MTL Novel + - MTL Reader + - MVLEMPYR + - MysticalSeries + - NeoSekai Translations + - Nitro Manga + - novelsOnline + - NobleMTL + - Novel Bin + - NovelBuddy.io + - Novel Fire + - NovelFull + - Novel Hall + - NovelMultiverse + - NovelsKnight + - NovelTranslate + - Novel Updates + - Panda Machine Translations + - Pastel Tales + - PawRead + - Rainofsnow + - Ranobes + - ReadNovelFull + - Re:Library + - Requiem Translations + - ReadLiteNovel + - Royal Road + - Salmon Latte + - Scribble Hub + - SleepyTranslations + - SonicMTL + - StorySeedling + - System Translation + - TranslatinOtaku + - Universal Novel + - VyNovel + - Webnovel + - WebNovelLover + - Web Novel Pub + - White Moonlight Novels + - Wook's Teahouse + - WordExcerpt + - WTR-LAB + - Wuxiafox + - Fans MTL + - Wuxiabox + - Wuxia Space + - WuxiaV + - Wuxia World + - WuxiaWorld.Site + - Zetro Translation + - Chireads + - HarkenEliwood + - KissWood + - Ligh Novel FR + - MTL Novel (FR) + - NovelDeGlace + - Novhell + - PhenixScans + - Warrior Legend Trad + - WorldNovel + - WuxiaLnScantrad + - Xiaowaz + - Baca Light Novel + - IndoWebNovel + - MeioNovel + - Risenovel + - MTL Novel (ID) + - NovelBookID + - NovelRingan + - SakuraNovel + - Sekte Novel + - WBNovel + - kakuyomu + - Syosetu + - Agitoon + - Novelki + - Better Novels + - Blog do Amon Novels + - Central Novel + - Kiniga + - LaNovels + - Light Novel Brasil + - MTL Novel (PT) + - Novel Mania + - Tsundoku Traduções + - Автор Тудей + - Bookhamster + - Bookriver + - Erolate + - EzNovels + - ficbook + - LitSpace + - Свободный Мир Ранобэ + - Jaomix + - MTL Novel (RU) + - Neobook + - НовелОВХ + - Ranobes (RU) + - Renovels + - RanobeLib + - RanobeHub + - РанобэРФ + - Rulate + - Ruvers + - NovelTL + - ТопЛиба + - Целлюлоза + - AllNovelRead + - Hasu Translations + - LightNovelDaily + - MTL Novel (ES) + - Novelas Ligera + - Oasis Translations + - Pancho Translations + - ReinoWuxia + - SkyNovels + - Traducciones Amistosas + - TuNovelaLigera + - Yuuki Tls + - Novel Lucky + - Novel PDF + - Araz Novel + - E-KİTAPLAR + - EpikNovel + - Kodeks Library + - NABİ SCANS + - Namevt + - Novel oku + - Novelokutr + - NovelTR + - ThNovels + - TurkceLightNovels + - WebNovelOku + - Смаколики + - Light Novel VN + - Hako + - Nettruyen + - Truyện Chữ + - Truyen Conect + - Truyện Full + - Komga validations: required: true diff --git a/.github/scripts/keys.json b/.github/scripts/keys.json new file mode 100644 index 000000000..1ef6244e3 --- /dev/null +++ b/.github/scripts/keys.json @@ -0,0 +1 @@ +{"ArNovel":"arnovel","Azora":"azora","dilar tube":"dilartube","HizoManga":"hizomanga","Kol Novel":"kolnovel","Novel4Up":"novel4up","Novels Paradise":"novelsparadise","Olaoe.cyou":"olaoe","Rewayat Club":"rewayatclub","Riwyat":"riwyat","Sunovels":"sunovels","69书吧":"69xinshu","Linovelib":"linovelib","Linovelib(繁體)":"linovelib_tw","FirstKissNovel":"1stkissnovel","AllNovelFull":"anf.net","Arcane Translations":"arcane","Archive Of Our Own":"archiveofourown","Srank Manga":"asuralightnovel","Belle Reservoir":"bellereservoir","BestLightNovel":"BLN","BoxNovel":"boxnovel","Citrus Aurora":"citrusaurora","Coral Boutique":"coralboutique","CPUnovel":"cpunovel","DaoNovel":"daonovel","DaoTranslate":"daotranslate","Divine Dao Library":"DDL.com","Dragon Tea":"dragontea","Dream Big Translations":"dreambigtl","Dusk Blossoms":"duskblossoms","Early Novel":"earlynovel","ElloTL":"ellotl","Eternalune":"eternalune","FanNovel":"fannovel","Fans Translations":"fanstranslations","Fenrir Translations":"fenrir","Foxaholic":"foxaholic","Foxteller":"foxteller","Faq Wiki":"FWK.US","Free Web Novel":"FWN.com","Galaxy Translations":"galaxytranslations","Genesis":"genesistudio","Guavaread":"guavaread","Hiraeth Translation":"hiraethtranslation","HotNovelPub":"hotnovelpub","Ippotranslations":"ippotranslations","KnoxT":"knoxt","Lib Read":"libread","LightNovelCave":"lightnovelcave","LightNovelPub":"lightnovelpub","LightNovelPub Vip":"lightnovelpubvip","Light Novel Updates":"LightNovelUpdates","LightNovelWord":"lightnovelworld","LightNovelHeaven":"lnheaven","LnMTL":"lnmtl","Ltnovel":"ltnovel","LunarLetters":"lunarletters","Meownovel":"meownovel","Moonlight Novels":"moonlightnovel","MostNovel":"mostnovel","MTL-Novel":"mtl-novel","MTL Novel":"mtlnovel","MTL Reader":"mtlreader","MVLEMPYR":"mvlempyr.com","MysticalSeries":"mysticalmerries","NeoSekai Translations":"neosekaiTLS","Nitro Manga":"nitromanga","novelsOnline":"NO.net","NobleMTL":"noblemtl","Novel Bin":"novelbin","NovelBuddy.io":"novelbuddy","Novel Fire":"novelfire","NovelFull":"novelfull","Novel Hall":"novelhall","NovelMultiverse":"novelmultiverse","NovelsKnight":"novelsknight","NovelTranslate":"novelTL","Novel Updates":"novelupdates","Panda Machine Translations":"pandamtl","Pastel Tales":"pasteltales","PawRead":"pawread","Rainofsnow":"rainofsnow","Ranobes":"ranobes","ReadNovelFull":"readnovelfull","Re:Library":"ReLib","Requiem Translations":"requiemtls","ReadLiteNovel":"rln.app","Royal Road":"royalroad","Salmon Latte":"salmonlatte","Scribble Hub":"scribblehub","SleepyTranslations":"sleeptTLS","SonicMTL":"sonicmtl","StorySeedling":"storyseedling","System Translation":"systemtranslation","TranslatinOtaku":"translatinotaku","Universal Novel":"universalnovel","VyNovel":"vynovel","Webnovel":"webnovel","WebNovelLover":"webnovelover","Web Novel Pub":"webnovelworld","White Moonlight Novels":"whitemoonlightnovels","Wook's Teahouse":"wooksteahouse","WordExcerpt":"wordexcerpt","WTR-LAB":"WTRLAB","Wuxiafox":"wuxiacity","Fans MTL":"wuxiamtl","Wuxiabox":"wuxiap","Wuxia Space":"wuxiaspace","WuxiaV":"wuxiav","Wuxia World":"wuxiaworld","WuxiaWorld.Site":"wuxiaworld.site","Zetro Translation":"zetroTL","Chireads":"chireads","HarkenEliwood":"harkeneliwood","KissWood":"kisswood","Ligh Novel FR":"lightnovelfr","MTL Novel (FR)":"mtlnovel-fr","NovelDeGlace":"noveldeglace","Novhell":"novhell","PhenixScans":"phenixscans","Warrior Legend Trad":"warriorlegendtrad","WorldNovel":"worldnovel","WuxiaLnScantrad":"wuxialnscantrad","Xiaowaz":"xiaowaz","Baca Light Novel":"bacalightnovel","IndoWebNovel":"IDWN.id","MeioNovel":"meionovel","Risenovel":"morenovel","MTL Novel (ID)":"mtlnovel-id","NovelBookID":"novelbookid","NovelRingan":"novelringan.com","SakuraNovel":"sakura.id","Sekte Novel":"sektenovel","WBNovel":"wbnovel","kakuyomu":"kakuyomu","Syosetu":"yomou.syosetu","Agitoon":"agit.xyz","Novelki":"novelki.pl","Better Novels":"betternovels","Blog do Amon Novels":"blogdoamonnovels","Central Novel":"centralnovel","Kiniga":"kiniga","LaNovels":"lanovels","Light Novel Brasil":"lightnovelbrasil","MTL Novel (PT)":"mtlnovel-pt","Novel Mania":"novelmania.com.br","Tsundoku Traduções":"tsundoku","Автор Тудей":"AT","Bookhamster":"bookhamster","Bookriver":"bookriver","Erolate":"erolate","EzNovels":"eznovels","ficbook":"ficbook","LitSpace":"freedlit.space","Свободный Мир Ранобэ":"ifreedom","Jaomix":"jaomix.ru","MTL Novel (RU)":"mtlnovel-ru","Neobook":"neobook","НовелОВХ":"novelovh","Ranobes (RU)":"ranobes-ru","Renovels":"ReN","RanobeLib":"RLIB","RanobeHub":"RNBH.org","РанобэРФ":"RNRF","Rulate":"rulate","Ruvers":"RV","NovelTL":"TL","ТопЛиба":"TopLiba","Целлюлоза":"zelluloza","AllNovelRead":"allnovelread","Hasu Translations":"HasuTL","LightNovelDaily":"lightnoveldaily","MTL Novel (ES)":"mtlnovel-es","Novelas Ligera":"novelasligera","Oasis Translations":"oasistranslations","Pancho Translations":"panchotranslations","ReinoWuxia":"reinowuxia","SkyNovels":"skynovels","Traducciones Amistosas":"traducciones","TuNovelaLigera":"tunovelaligera","Yuuki Tls":"yuukitls","Novel Lucky":"novel-lucky","Novel PDF":"novelpdf","Araz Novel":"azraznovel","E-KİTAPLAR":"ekitaplar","EpikNovel":"epiknovel","Kodeks Library":"kodekslibrary","NABİ SCANS":"nabiscans","Namevt":"namevt","Novel oku":"noveloku","Novelokutr":"novelokutr","NovelTR":"noveltr","ThNovels":"thnovels","TurkceLightNovels":"turkcelightnovels","WebNovelOku":"webnoveloku","Смаколики":"smakolykytl","Light Novel VN":"lightnovel.vn","Hako":"ln.hako","Nettruyen":"nettruyen","Truyện Chữ":"truyenchu","Truyen Conect":"truyenconect","Truyện Full":"truyenfull","Komga":"komga"} \ No newline at end of file From ca58de8b03dfbd1b1029b67fec7fbe991f476eaf Mon Sep 17 00:00:00 2001 From: cd-z Date: Mon, 30 Dec 2024 14:40:19 +0100 Subject: [PATCH 15/50] delete updated_issue.yml --- updated_issue.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 updated_issue.yml diff --git a/updated_issue.yml b/updated_issue.yml deleted file mode 100644 index e69de29bb..000000000 From 68a49b212a7c8c75f034ab5d260eccc7b5de7ad9 Mon Sep 17 00:00:00 2001 From: cd-z Date: Mon, 30 Dec 2024 14:56:48 +0100 Subject: [PATCH 16/50] Add Language in front of plugin name --- .github/scripts/createOptions.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/scripts/createOptions.sh b/.github/scripts/createOptions.sh index c615101f3..3ad0c66af 100644 --- a/.github/scripts/createOptions.sh +++ b/.github/scripts/createOptions.sh @@ -1,7 +1,7 @@ version=`node -e "console.log(require('./package.json').version);"` dist="plugins/v$version" -PLUGINS=$(curl -s https://raw.githubusercontent.com/LNReader/lnreader-plugins/{$dist}/.dist/plugins.min.json | jq '[.[] | {(.name): .id}]' | jq 'reduce .[] as $item ({}; . * $item)') +PLUGINS=$(curl -s https://raw.githubusercontent.com/LNReader/lnreader-plugins/{$dist}/.dist/plugins.min.json | jq '[.[] | {(.lang + ": " + .name): .id}]' | jq 'reduce .[] as $item ({}; . * $item)') KEYS=$(echo $PLUGINS | jq 'keys_unsorted') @@ -15,8 +15,8 @@ node -e " savedKeys = Object.keys(keys); } catch(err) {console.log(err)} if(!sameKeys(newKeys, savedKeys) && Array.isArray(newKeys)) { - const text = newKeys.join('\n - '); - fs.writeFileSync('.github/ISSUE_TEMPLATE/report_issue.yml', rawText.replace(/{#CHANGE#}/g,'- '+ text )); + const text = newKeys.join('\"\n - \"'); + fs.writeFileSync('.github/ISSUE_TEMPLATE/report_issue.yml', rawText.replace(/{#CHANGE#}/g,'- \"'+ text + '\"' )); fs.writeFileSync('.github/scripts/keys.json', JSON.stringify($PLUGINS)); } function sameKeys(a, b) { From af38e4823e372c22fc2d7d69a457a43ef44a3830 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 30 Dec 2024 13:58:14 +0000 Subject: [PATCH 17/50] Update issue template with plugin dropdown options --- .github/ISSUE_TEMPLATE/report_issue.yml | 408 ++++++++++++------------ .github/scripts/keys.json | 2 +- 2 files changed, 205 insertions(+), 205 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/report_issue.yml b/.github/ISSUE_TEMPLATE/report_issue.yml index 189639083..11ae391f2 100644 --- a/.github/ISSUE_TEMPLATE/report_issue.yml +++ b/.github/ISSUE_TEMPLATE/report_issue.yml @@ -9,210 +9,210 @@ body: description: Select the plugin associated with the issue. multiple: true options: - - ArNovel - - Azora - - dilar tube - - HizoManga - - Kol Novel - - Novel4Up - - Novels Paradise - - Olaoe.cyou - - Rewayat Club - - Riwyat - - Sunovels - - 69书吧 - - Linovelib - - Linovelib(繁體) - - FirstKissNovel - - AllNovelFull - - Arcane Translations - - Archive Of Our Own - - Srank Manga - - Belle Reservoir - - BestLightNovel - - BoxNovel - - Citrus Aurora - - Coral Boutique - - CPUnovel - - DaoNovel - - DaoTranslate - - Divine Dao Library - - Dragon Tea - - Dream Big Translations - - Dusk Blossoms - - Early Novel - - ElloTL - - Eternalune - - FanNovel - - Fans Translations - - Fenrir Translations - - Foxaholic - - Foxteller - - Faq Wiki - - Free Web Novel - - Galaxy Translations - - Genesis - - Guavaread - - Hiraeth Translation - - HotNovelPub - - Ippotranslations - - KnoxT - - Lib Read - - LightNovelCave - - LightNovelPub - - LightNovelPub Vip - - Light Novel Updates - - LightNovelWord - - LightNovelHeaven - - LnMTL - - Ltnovel - - LunarLetters - - Meownovel - - Moonlight Novels - - MostNovel - - MTL-Novel - - MTL Novel - - MTL Reader - - MVLEMPYR - - MysticalSeries - - NeoSekai Translations - - Nitro Manga - - novelsOnline - - NobleMTL - - Novel Bin - - NovelBuddy.io - - Novel Fire - - NovelFull - - Novel Hall - - NovelMultiverse - - NovelsKnight - - NovelTranslate - - Novel Updates - - Panda Machine Translations - - Pastel Tales - - PawRead - - Rainofsnow - - Ranobes - - ReadNovelFull - - Re:Library - - Requiem Translations - - ReadLiteNovel - - Royal Road - - Salmon Latte - - Scribble Hub - - SleepyTranslations - - SonicMTL - - StorySeedling - - System Translation - - TranslatinOtaku - - Universal Novel - - VyNovel - - Webnovel - - WebNovelLover - - Web Novel Pub - - White Moonlight Novels - - Wook's Teahouse - - WordExcerpt - - WTR-LAB - - Wuxiafox - - Fans MTL - - Wuxiabox - - Wuxia Space - - WuxiaV - - Wuxia World - - WuxiaWorld.Site - - Zetro Translation - - Chireads - - HarkenEliwood - - KissWood - - Ligh Novel FR - - MTL Novel (FR) - - NovelDeGlace - - Novhell - - PhenixScans - - Warrior Legend Trad - - WorldNovel - - WuxiaLnScantrad - - Xiaowaz - - Baca Light Novel - - IndoWebNovel - - MeioNovel - - Risenovel - - MTL Novel (ID) - - NovelBookID - - NovelRingan - - SakuraNovel - - Sekte Novel - - WBNovel - - kakuyomu - - Syosetu - - Agitoon - - Novelki - - Better Novels - - Blog do Amon Novels - - Central Novel - - Kiniga - - LaNovels - - Light Novel Brasil - - MTL Novel (PT) - - Novel Mania - - Tsundoku Traduções - - Автор Тудей - - Bookhamster - - Bookriver - - Erolate - - EzNovels - - ficbook - - LitSpace - - Свободный Мир Ранобэ - - Jaomix - - MTL Novel (RU) - - Neobook - - НовелОВХ - - Ranobes (RU) - - Renovels - - RanobeLib - - RanobeHub - - РанобэРФ - - Rulate - - Ruvers - - NovelTL - - ТопЛиба - - Целлюлоза - - AllNovelRead - - Hasu Translations - - LightNovelDaily - - MTL Novel (ES) - - Novelas Ligera - - Oasis Translations - - Pancho Translations - - ReinoWuxia - - SkyNovels - - Traducciones Amistosas - - TuNovelaLigera - - Yuuki Tls - - Novel Lucky - - Novel PDF - - Araz Novel - - E-KİTAPLAR - - EpikNovel - - Kodeks Library - - NABİ SCANS - - Namevt - - Novel oku - - Novelokutr - - NovelTR - - ThNovels - - TurkceLightNovels - - WebNovelOku - - Смаколики - - Light Novel VN - - Hako - - Nettruyen - - Truyện Chữ - - Truyen Conect - - Truyện Full - - Komga + - "‎العربية: ArNovel" + - "‎العربية: Azora" + - "‎العربية: dilar tube" + - "‎العربية: HizoManga" + - "‎العربية: Kol Novel" + - "‎العربية: Novel4Up" + - "‎العربية: Novels Paradise" + - "‎العربية: Olaoe.cyou" + - "‎العربية: Rewayat Club" + - "‎العربية: Riwyat" + - "‎العربية: Sunovels" + - "中文, 汉语, 漢語: 69书吧" + - "中文, 汉语, 漢語: Linovelib" + - "中文, 汉语, 漢語: Linovelib(繁體)" + - "English: FirstKissNovel" + - "English: AllNovelFull" + - "English: Arcane Translations" + - "English: Archive Of Our Own" + - "English: Srank Manga" + - "English: Belle Reservoir" + - "English: BestLightNovel" + - "English: BoxNovel" + - "English: Citrus Aurora" + - "English: Coral Boutique" + - "English: CPUnovel" + - "English: DaoNovel" + - "English: DaoTranslate" + - "English: Divine Dao Library" + - "English: Dragon Tea" + - "English: Dream Big Translations" + - "English: Dusk Blossoms" + - "English: Early Novel" + - "English: ElloTL" + - "English: Eternalune" + - "English: FanNovel" + - "English: Fans Translations" + - "English: Fenrir Translations" + - "English: Foxaholic" + - "English: Foxteller" + - "English: Faq Wiki" + - "English: Free Web Novel" + - "English: Galaxy Translations" + - "English: Genesis" + - "English: Guavaread" + - "English: Hiraeth Translation" + - "English: HotNovelPub" + - "English: Ippotranslations" + - "English: KnoxT" + - "English: Lib Read" + - "English: LightNovelCave" + - "English: LightNovelPub" + - "English: LightNovelPub Vip" + - "English: Light Novel Updates" + - "English: LightNovelWord" + - "English: LightNovelHeaven" + - "English: LnMTL" + - "English: Ltnovel" + - "English: LunarLetters" + - "English: Meownovel" + - "English: Moonlight Novels" + - "English: MostNovel" + - "English: MTL-Novel" + - "English: MTL Novel" + - "English: MTL Reader" + - "English: MVLEMPYR" + - "English: MysticalSeries" + - "English: NeoSekai Translations" + - "English: Nitro Manga" + - "English: novelsOnline" + - "English: NobleMTL" + - "English: Novel Bin" + - "English: NovelBuddy.io" + - "English: Novel Fire" + - "English: NovelFull" + - "English: Novel Hall" + - "English: NovelMultiverse" + - "English: NovelsKnight" + - "English: NovelTranslate" + - "English: Novel Updates" + - "English: Panda Machine Translations" + - "English: Pastel Tales" + - "English: PawRead" + - "English: Rainofsnow" + - "English: Ranobes" + - "English: ReadNovelFull" + - "English: Re:Library" + - "English: Requiem Translations" + - "English: ReadLiteNovel" + - "English: Royal Road" + - "English: Salmon Latte" + - "English: Scribble Hub" + - "English: SleepyTranslations" + - "English: SonicMTL" + - "English: StorySeedling" + - "English: System Translation" + - "English: TranslatinOtaku" + - "English: Universal Novel" + - "English: VyNovel" + - "English: Webnovel" + - "English: WebNovelLover" + - "English: Web Novel Pub" + - "English: White Moonlight Novels" + - "English: Wook's Teahouse" + - "English: WordExcerpt" + - "English: WTR-LAB" + - "English: Wuxiafox" + - "English: Fans MTL" + - "English: Wuxiabox" + - "English: Wuxia Space" + - "English: WuxiaV" + - "English: Wuxia World" + - "English: WuxiaWorld.Site" + - "English: Zetro Translation" + - "Français: Chireads" + - "Français: HarkenEliwood" + - "Français: KissWood" + - "Français: Ligh Novel FR" + - "Français: MTL Novel (FR)" + - "Français: NovelDeGlace" + - "Français: Novhell" + - "Français: PhenixScans" + - "Français: Warrior Legend Trad" + - "Français: WorldNovel" + - "Français: WuxiaLnScantrad" + - "Français: Xiaowaz" + - "Bahasa Indonesia: Baca Light Novel" + - "Bahasa Indonesia: IndoWebNovel" + - "Bahasa Indonesia: MeioNovel" + - "Bahasa Indonesia: Risenovel" + - "Bahasa Indonesia: MTL Novel (ID)" + - "Bahasa Indonesia: NovelBookID" + - "Bahasa Indonesia: NovelRingan" + - "Bahasa Indonesia: SakuraNovel" + - "Bahasa Indonesia: Sekte Novel" + - "Bahasa Indonesia: WBNovel" + - "日本語: kakuyomu" + - "日本語: Syosetu" + - "조선말, 한국어: Agitoon" + - "Polski: Novelki" + - "Português: Better Novels" + - "Português: Blog do Amon Novels" + - "Português: Central Novel" + - "Português: Kiniga" + - "Português: LaNovels" + - "Português: Light Novel Brasil" + - "Português: MTL Novel (PT)" + - "Português: Novel Mania" + - "Português: Tsundoku Traduções" + - "Русский: Автор Тудей" + - "Русский: Bookhamster" + - "Русский: Bookriver" + - "Русский: Erolate" + - "Русский: EzNovels" + - "Русский: ficbook" + - "Русский: LitSpace" + - "Русский: Свободный Мир Ранобэ" + - "Русский: Jaomix" + - "Русский: MTL Novel (RU)" + - "Русский: Neobook" + - "Русский: НовелОВХ" + - "Русский: Ranobes (RU)" + - "Русский: Renovels" + - "Русский: RanobeLib" + - "Русский: RanobeHub" + - "Русский: РанобэРФ" + - "Русский: Rulate" + - "Русский: Ruvers" + - "Русский: NovelTL" + - "Русский: ТопЛиба" + - "Русский: Целлюлоза" + - "Español: AllNovelRead" + - "Español: Hasu Translations" + - "Español: LightNovelDaily" + - "Español: MTL Novel (ES)" + - "Español: Novelas Ligera" + - "Español: Oasis Translations" + - "Español: Pancho Translations" + - "Español: ReinoWuxia" + - "Español: SkyNovels" + - "Español: Traducciones Amistosas" + - "Español: TuNovelaLigera" + - "Español: Yuuki Tls" + - "ไทย: Novel Lucky" + - "ไทย: Novel PDF" + - "Türkçe: Araz Novel" + - "Türkçe: E-KİTAPLAR" + - "Türkçe: EpikNovel" + - "Türkçe: Kodeks Library" + - "Türkçe: NABİ SCANS" + - "Türkçe: Namevt" + - "Türkçe: Novel oku" + - "Türkçe: Novelokutr" + - "Türkçe: NovelTR" + - "Türkçe: ThNovels" + - "Türkçe: TurkceLightNovels" + - "Türkçe: WebNovelOku" + - "Українська: Смаколики" + - "Tiếng Việt: Light Novel VN" + - "Tiếng Việt: Hako" + - "Tiếng Việt: Nettruyen" + - "Tiếng Việt: Truyện Chữ" + - "Tiếng Việt: Truyen Conect" + - "Tiếng Việt: Truyện Full" + - "Multi: Komga" validations: required: true diff --git a/.github/scripts/keys.json b/.github/scripts/keys.json index 1ef6244e3..411acb4ea 100644 --- a/.github/scripts/keys.json +++ b/.github/scripts/keys.json @@ -1 +1 @@ -{"ArNovel":"arnovel","Azora":"azora","dilar tube":"dilartube","HizoManga":"hizomanga","Kol Novel":"kolnovel","Novel4Up":"novel4up","Novels Paradise":"novelsparadise","Olaoe.cyou":"olaoe","Rewayat Club":"rewayatclub","Riwyat":"riwyat","Sunovels":"sunovels","69书吧":"69xinshu","Linovelib":"linovelib","Linovelib(繁體)":"linovelib_tw","FirstKissNovel":"1stkissnovel","AllNovelFull":"anf.net","Arcane Translations":"arcane","Archive Of Our Own":"archiveofourown","Srank Manga":"asuralightnovel","Belle Reservoir":"bellereservoir","BestLightNovel":"BLN","BoxNovel":"boxnovel","Citrus Aurora":"citrusaurora","Coral Boutique":"coralboutique","CPUnovel":"cpunovel","DaoNovel":"daonovel","DaoTranslate":"daotranslate","Divine Dao Library":"DDL.com","Dragon Tea":"dragontea","Dream Big Translations":"dreambigtl","Dusk Blossoms":"duskblossoms","Early Novel":"earlynovel","ElloTL":"ellotl","Eternalune":"eternalune","FanNovel":"fannovel","Fans Translations":"fanstranslations","Fenrir Translations":"fenrir","Foxaholic":"foxaholic","Foxteller":"foxteller","Faq Wiki":"FWK.US","Free Web Novel":"FWN.com","Galaxy Translations":"galaxytranslations","Genesis":"genesistudio","Guavaread":"guavaread","Hiraeth Translation":"hiraethtranslation","HotNovelPub":"hotnovelpub","Ippotranslations":"ippotranslations","KnoxT":"knoxt","Lib Read":"libread","LightNovelCave":"lightnovelcave","LightNovelPub":"lightnovelpub","LightNovelPub Vip":"lightnovelpubvip","Light Novel Updates":"LightNovelUpdates","LightNovelWord":"lightnovelworld","LightNovelHeaven":"lnheaven","LnMTL":"lnmtl","Ltnovel":"ltnovel","LunarLetters":"lunarletters","Meownovel":"meownovel","Moonlight Novels":"moonlightnovel","MostNovel":"mostnovel","MTL-Novel":"mtl-novel","MTL Novel":"mtlnovel","MTL Reader":"mtlreader","MVLEMPYR":"mvlempyr.com","MysticalSeries":"mysticalmerries","NeoSekai Translations":"neosekaiTLS","Nitro Manga":"nitromanga","novelsOnline":"NO.net","NobleMTL":"noblemtl","Novel Bin":"novelbin","NovelBuddy.io":"novelbuddy","Novel Fire":"novelfire","NovelFull":"novelfull","Novel Hall":"novelhall","NovelMultiverse":"novelmultiverse","NovelsKnight":"novelsknight","NovelTranslate":"novelTL","Novel Updates":"novelupdates","Panda Machine Translations":"pandamtl","Pastel Tales":"pasteltales","PawRead":"pawread","Rainofsnow":"rainofsnow","Ranobes":"ranobes","ReadNovelFull":"readnovelfull","Re:Library":"ReLib","Requiem Translations":"requiemtls","ReadLiteNovel":"rln.app","Royal Road":"royalroad","Salmon Latte":"salmonlatte","Scribble Hub":"scribblehub","SleepyTranslations":"sleeptTLS","SonicMTL":"sonicmtl","StorySeedling":"storyseedling","System Translation":"systemtranslation","TranslatinOtaku":"translatinotaku","Universal Novel":"universalnovel","VyNovel":"vynovel","Webnovel":"webnovel","WebNovelLover":"webnovelover","Web Novel Pub":"webnovelworld","White Moonlight Novels":"whitemoonlightnovels","Wook's Teahouse":"wooksteahouse","WordExcerpt":"wordexcerpt","WTR-LAB":"WTRLAB","Wuxiafox":"wuxiacity","Fans MTL":"wuxiamtl","Wuxiabox":"wuxiap","Wuxia Space":"wuxiaspace","WuxiaV":"wuxiav","Wuxia World":"wuxiaworld","WuxiaWorld.Site":"wuxiaworld.site","Zetro Translation":"zetroTL","Chireads":"chireads","HarkenEliwood":"harkeneliwood","KissWood":"kisswood","Ligh Novel FR":"lightnovelfr","MTL Novel (FR)":"mtlnovel-fr","NovelDeGlace":"noveldeglace","Novhell":"novhell","PhenixScans":"phenixscans","Warrior Legend Trad":"warriorlegendtrad","WorldNovel":"worldnovel","WuxiaLnScantrad":"wuxialnscantrad","Xiaowaz":"xiaowaz","Baca Light Novel":"bacalightnovel","IndoWebNovel":"IDWN.id","MeioNovel":"meionovel","Risenovel":"morenovel","MTL Novel (ID)":"mtlnovel-id","NovelBookID":"novelbookid","NovelRingan":"novelringan.com","SakuraNovel":"sakura.id","Sekte Novel":"sektenovel","WBNovel":"wbnovel","kakuyomu":"kakuyomu","Syosetu":"yomou.syosetu","Agitoon":"agit.xyz","Novelki":"novelki.pl","Better Novels":"betternovels","Blog do Amon Novels":"blogdoamonnovels","Central Novel":"centralnovel","Kiniga":"kiniga","LaNovels":"lanovels","Light Novel Brasil":"lightnovelbrasil","MTL Novel (PT)":"mtlnovel-pt","Novel Mania":"novelmania.com.br","Tsundoku Traduções":"tsundoku","Автор Тудей":"AT","Bookhamster":"bookhamster","Bookriver":"bookriver","Erolate":"erolate","EzNovels":"eznovels","ficbook":"ficbook","LitSpace":"freedlit.space","Свободный Мир Ранобэ":"ifreedom","Jaomix":"jaomix.ru","MTL Novel (RU)":"mtlnovel-ru","Neobook":"neobook","НовелОВХ":"novelovh","Ranobes (RU)":"ranobes-ru","Renovels":"ReN","RanobeLib":"RLIB","RanobeHub":"RNBH.org","РанобэРФ":"RNRF","Rulate":"rulate","Ruvers":"RV","NovelTL":"TL","ТопЛиба":"TopLiba","Целлюлоза":"zelluloza","AllNovelRead":"allnovelread","Hasu Translations":"HasuTL","LightNovelDaily":"lightnoveldaily","MTL Novel (ES)":"mtlnovel-es","Novelas Ligera":"novelasligera","Oasis Translations":"oasistranslations","Pancho Translations":"panchotranslations","ReinoWuxia":"reinowuxia","SkyNovels":"skynovels","Traducciones Amistosas":"traducciones","TuNovelaLigera":"tunovelaligera","Yuuki Tls":"yuukitls","Novel Lucky":"novel-lucky","Novel PDF":"novelpdf","Araz Novel":"azraznovel","E-KİTAPLAR":"ekitaplar","EpikNovel":"epiknovel","Kodeks Library":"kodekslibrary","NABİ SCANS":"nabiscans","Namevt":"namevt","Novel oku":"noveloku","Novelokutr":"novelokutr","NovelTR":"noveltr","ThNovels":"thnovels","TurkceLightNovels":"turkcelightnovels","WebNovelOku":"webnoveloku","Смаколики":"smakolykytl","Light Novel VN":"lightnovel.vn","Hako":"ln.hako","Nettruyen":"nettruyen","Truyện Chữ":"truyenchu","Truyen Conect":"truyenconect","Truyện Full":"truyenfull","Komga":"komga"} \ No newline at end of file +{"‎العربية: ArNovel":"arnovel","‎العربية: Azora":"azora","‎العربية: dilar tube":"dilartube","‎العربية: HizoManga":"hizomanga","‎العربية: Kol Novel":"kolnovel","‎العربية: Novel4Up":"novel4up","‎العربية: Novels Paradise":"novelsparadise","‎العربية: Olaoe.cyou":"olaoe","‎العربية: Rewayat Club":"rewayatclub","‎العربية: Riwyat":"riwyat","‎العربية: Sunovels":"sunovels","中文, 汉语, 漢語: 69书吧":"69xinshu","中文, 汉语, 漢語: Linovelib":"linovelib","中文, 汉语, 漢語: Linovelib(繁體)":"linovelib_tw","English: FirstKissNovel":"1stkissnovel","English: AllNovelFull":"anf.net","English: Arcane Translations":"arcane","English: Archive Of Our Own":"archiveofourown","English: Srank Manga":"asuralightnovel","English: Belle Reservoir":"bellereservoir","English: BestLightNovel":"BLN","English: BoxNovel":"boxnovel","English: Citrus Aurora":"citrusaurora","English: Coral Boutique":"coralboutique","English: CPUnovel":"cpunovel","English: DaoNovel":"daonovel","English: DaoTranslate":"daotranslate","English: Divine Dao Library":"DDL.com","English: Dragon Tea":"dragontea","English: Dream Big Translations":"dreambigtl","English: Dusk Blossoms":"duskblossoms","English: Early Novel":"earlynovel","English: ElloTL":"ellotl","English: Eternalune":"eternalune","English: FanNovel":"fannovel","English: Fans Translations":"fanstranslations","English: Fenrir Translations":"fenrir","English: Foxaholic":"foxaholic","English: Foxteller":"foxteller","English: Faq Wiki":"FWK.US","English: Free Web Novel":"FWN.com","English: Galaxy Translations":"galaxytranslations","English: Genesis":"genesistudio","English: Guavaread":"guavaread","English: Hiraeth Translation":"hiraethtranslation","English: HotNovelPub":"hotnovelpub","English: Ippotranslations":"ippotranslations","English: KnoxT":"knoxt","English: Lib Read":"libread","English: LightNovelCave":"lightnovelcave","English: LightNovelPub":"lightnovelpub","English: LightNovelPub Vip":"lightnovelpubvip","English: Light Novel Updates":"LightNovelUpdates","English: LightNovelWord":"lightnovelworld","English: LightNovelHeaven":"lnheaven","English: LnMTL":"lnmtl","English: Ltnovel":"ltnovel","English: LunarLetters":"lunarletters","English: Meownovel":"meownovel","English: Moonlight Novels":"moonlightnovel","English: MostNovel":"mostnovel","English: MTL-Novel":"mtl-novel","English: MTL Novel":"mtlnovel","English: MTL Reader":"mtlreader","English: MVLEMPYR":"mvlempyr.com","English: MysticalSeries":"mysticalmerries","English: NeoSekai Translations":"neosekaiTLS","English: Nitro Manga":"nitromanga","English: novelsOnline":"NO.net","English: NobleMTL":"noblemtl","English: Novel Bin":"novelbin","English: NovelBuddy.io":"novelbuddy","English: Novel Fire":"novelfire","English: NovelFull":"novelfull","English: Novel Hall":"novelhall","English: NovelMultiverse":"novelmultiverse","English: NovelsKnight":"novelsknight","English: NovelTranslate":"novelTL","English: Novel Updates":"novelupdates","English: Panda Machine Translations":"pandamtl","English: Pastel Tales":"pasteltales","English: PawRead":"pawread","English: Rainofsnow":"rainofsnow","English: Ranobes":"ranobes","English: ReadNovelFull":"readnovelfull","English: Re:Library":"ReLib","English: Requiem Translations":"requiemtls","English: ReadLiteNovel":"rln.app","English: Royal Road":"royalroad","English: Salmon Latte":"salmonlatte","English: Scribble Hub":"scribblehub","English: SleepyTranslations":"sleeptTLS","English: SonicMTL":"sonicmtl","English: StorySeedling":"storyseedling","English: System Translation":"systemtranslation","English: TranslatinOtaku":"translatinotaku","English: Universal Novel":"universalnovel","English: VyNovel":"vynovel","English: Webnovel":"webnovel","English: WebNovelLover":"webnovelover","English: Web Novel Pub":"webnovelworld","English: White Moonlight Novels":"whitemoonlightnovels","English: Wook's Teahouse":"wooksteahouse","English: WordExcerpt":"wordexcerpt","English: WTR-LAB":"WTRLAB","English: Wuxiafox":"wuxiacity","English: Fans MTL":"wuxiamtl","English: Wuxiabox":"wuxiap","English: Wuxia Space":"wuxiaspace","English: WuxiaV":"wuxiav","English: Wuxia World":"wuxiaworld","English: WuxiaWorld.Site":"wuxiaworld.site","English: Zetro Translation":"zetroTL","Français: Chireads":"chireads","Français: HarkenEliwood":"harkeneliwood","Français: KissWood":"kisswood","Français: Ligh Novel FR":"lightnovelfr","Français: MTL Novel (FR)":"mtlnovel-fr","Français: NovelDeGlace":"noveldeglace","Français: Novhell":"novhell","Français: PhenixScans":"phenixscans","Français: Warrior Legend Trad":"warriorlegendtrad","Français: WorldNovel":"worldnovel","Français: WuxiaLnScantrad":"wuxialnscantrad","Français: Xiaowaz":"xiaowaz","Bahasa Indonesia: Baca Light Novel":"bacalightnovel","Bahasa Indonesia: IndoWebNovel":"IDWN.id","Bahasa Indonesia: MeioNovel":"meionovel","Bahasa Indonesia: Risenovel":"morenovel","Bahasa Indonesia: MTL Novel (ID)":"mtlnovel-id","Bahasa Indonesia: NovelBookID":"novelbookid","Bahasa Indonesia: NovelRingan":"novelringan.com","Bahasa Indonesia: SakuraNovel":"sakura.id","Bahasa Indonesia: Sekte Novel":"sektenovel","Bahasa Indonesia: WBNovel":"wbnovel","日本語: kakuyomu":"kakuyomu","日本語: Syosetu":"yomou.syosetu","조선말, 한국어: Agitoon":"agit.xyz","Polski: Novelki":"novelki.pl","Português: Better Novels":"betternovels","Português: Blog do Amon Novels":"blogdoamonnovels","Português: Central Novel":"centralnovel","Português: Kiniga":"kiniga","Português: LaNovels":"lanovels","Português: Light Novel Brasil":"lightnovelbrasil","Português: MTL Novel (PT)":"mtlnovel-pt","Português: Novel Mania":"novelmania.com.br","Português: Tsundoku Traduções":"tsundoku","Русский: Автор Тудей":"AT","Русский: Bookhamster":"bookhamster","Русский: Bookriver":"bookriver","Русский: Erolate":"erolate","Русский: EzNovels":"eznovels","Русский: ficbook":"ficbook","Русский: LitSpace":"freedlit.space","Русский: Свободный Мир Ранобэ":"ifreedom","Русский: Jaomix":"jaomix.ru","Русский: MTL Novel (RU)":"mtlnovel-ru","Русский: Neobook":"neobook","Русский: НовелОВХ":"novelovh","Русский: Ranobes (RU)":"ranobes-ru","Русский: Renovels":"ReN","Русский: RanobeLib":"RLIB","Русский: RanobeHub":"RNBH.org","Русский: РанобэРФ":"RNRF","Русский: Rulate":"rulate","Русский: Ruvers":"RV","Русский: NovelTL":"TL","Русский: ТопЛиба":"TopLiba","Русский: Целлюлоза":"zelluloza","Español: AllNovelRead":"allnovelread","Español: Hasu Translations":"HasuTL","Español: LightNovelDaily":"lightnoveldaily","Español: MTL Novel (ES)":"mtlnovel-es","Español: Novelas Ligera":"novelasligera","Español: Oasis Translations":"oasistranslations","Español: Pancho Translations":"panchotranslations","Español: ReinoWuxia":"reinowuxia","Español: SkyNovels":"skynovels","Español: Traducciones Amistosas":"traducciones","Español: TuNovelaLigera":"tunovelaligera","Español: Yuuki Tls":"yuukitls","ไทย: Novel Lucky":"novel-lucky","ไทย: Novel PDF":"novelpdf","Türkçe: Araz Novel":"azraznovel","Türkçe: E-KİTAPLAR":"ekitaplar","Türkçe: EpikNovel":"epiknovel","Türkçe: Kodeks Library":"kodekslibrary","Türkçe: NABİ SCANS":"nabiscans","Türkçe: Namevt":"namevt","Türkçe: Novel oku":"noveloku","Türkçe: Novelokutr":"novelokutr","Türkçe: NovelTR":"noveltr","Türkçe: ThNovels":"thnovels","Türkçe: TurkceLightNovels":"turkcelightnovels","Türkçe: WebNovelOku":"webnoveloku","Українська: Смаколики":"smakolykytl","Tiếng Việt: Light Novel VN":"lightnovel.vn","Tiếng Việt: Hako":"ln.hako","Tiếng Việt: Nettruyen":"nettruyen","Tiếng Việt: Truyện Chữ":"truyenchu","Tiếng Việt: Truyen Conect":"truyenconect","Tiếng Việt: Truyện Full":"truyenfull","Multi: Komga":"komga"} \ No newline at end of file From 73698cb65ffb0c93755f1c31bd7b026a327cab05 Mon Sep 17 00:00:00 2001 From: cd-z Date: Mon, 30 Dec 2024 15:18:14 +0100 Subject: [PATCH 18/50] Add Labels --- .github/workflows/issue_auto_label.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/issue_auto_label.yml b/.github/workflows/issue_auto_label.yml index 03d3bce6a..69885ac84 100644 --- a/.github/workflows/issue_auto_label.yml +++ b/.github/workflows/issue_auto_label.yml @@ -17,29 +17,28 @@ jobs: - name: Extract plugin names and IDs id: extract-plugins run: | - # Read the plugins.json file to map plugin names to IDs - PLUGIN_MAP=$(jq -r '.[] | "\(.name)=\(.id)"' .dist/plugins.json) - echo "$PLUGIN_MAP" > plugin_map.txt + cat ./.github/scripts/keys.json > plugin_map.txt - name: Extract the plugin from issue body id: parse-issue run: | # Extract the plugin from the issue body SELECTED_PLUGIN=$(jq -r '.issue.body' "$GITHUB_EVENT_PATH" | grep -oP '(?<=- Plugin:\s).*') + echo $GITHUB_EVENT_PATH + echo $SELECTED_PLUGIN echo "SELECTED_PLUGIN=$SELECTED_PLUGIN" >> $GITHUB_ENV - name: Determine corresponding label id: determine-label run: | # Map the selected plugin to its ID - LABEL=$(grep -oP "^$SELECTED_PLUGIN=.*" plugin_map.txt | cut -d= -f2) + LABEL=$(jq -r ".$SELECTED_PLUGIN" plugin_map.txt) echo "LABEL=$LABEL" >> $GITHUB_ENV - name: Add label to the issue if: env.LABEL != '' uses: actions-ecosystem/action-add-labels@v1 with: - github_token: ${{ secrets.GITHUB_TOKEN }} labels: ${{ env.LABEL }} - name: Handle missing label From 4b135d1d475bde37052a8f098e2aa2c51518c0f7 Mon Sep 17 00:00:00 2001 From: cd-z Date: Mon, 30 Dec 2024 15:25:18 +0100 Subject: [PATCH 19/50] debug auto labeling --- .github/workflows/issue_auto_label.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/issue_auto_label.yml b/.github/workflows/issue_auto_label.yml index 69885ac84..98b29c21a 100644 --- a/.github/workflows/issue_auto_label.yml +++ b/.github/workflows/issue_auto_label.yml @@ -23,6 +23,7 @@ jobs: id: parse-issue run: | # Extract the plugin from the issue body + echo "Issue body: ${{ github.event.issue.body }}" SELECTED_PLUGIN=$(jq -r '.issue.body' "$GITHUB_EVENT_PATH" | grep -oP '(?<=- Plugin:\s).*') echo $GITHUB_EVENT_PATH echo $SELECTED_PLUGIN From a15ab0d2cdbc4a0ba295674ac1f9b64ee52335e0 Mon Sep 17 00:00:00 2001 From: cd-z Date: Mon, 30 Dec 2024 15:48:27 +0100 Subject: [PATCH 20/50] new extraction method --- .github/workflows/issue_auto_label.yml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.github/workflows/issue_auto_label.yml b/.github/workflows/issue_auto_label.yml index 98b29c21a..45c79d705 100644 --- a/.github/workflows/issue_auto_label.yml +++ b/.github/workflows/issue_auto_label.yml @@ -23,17 +23,15 @@ jobs: id: parse-issue run: | # Extract the plugin from the issue body - echo "Issue body: ${{ github.event.issue.body }}" - SELECTED_PLUGIN=$(jq -r '.issue.body' "$GITHUB_EVENT_PATH" | grep -oP '(?<=- Plugin:\s).*') - echo $GITHUB_EVENT_PATH - echo $SELECTED_PLUGIN - echo "SELECTED_PLUGIN=$SELECTED_PLUGIN" >> $GITHUB_ENV + SELECTED_PLUGINS=$(echo "${{ github.event.issue.body }}" | grep "### Plugin" -A 2 | tail -n 1) + echo "Selected Plugins: ${{ SELECTED_PLUGINS }}" + echo "SELECTED_PLUGINS=$SELECTED_PLUGINS" >> $GITHUB_ENV - name: Determine corresponding label id: determine-label run: | # Map the selected plugin to its ID - LABEL=$(jq -r ".$SELECTED_PLUGIN" plugin_map.txt) + LABEL=$(jq -r ".$SELECTED_PLUGINS" plugin_map.txt) echo "LABEL=$LABEL" >> $GITHUB_ENV - name: Add label to the issue From e37e68176cfe01055e9c9aa4c1b202d6d86a4731 Mon Sep 17 00:00:00 2001 From: cd-z Date: Mon, 30 Dec 2024 15:50:40 +0100 Subject: [PATCH 21/50] SELECTED_PLUGINS not available --- .github/workflows/issue_auto_label.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/issue_auto_label.yml b/.github/workflows/issue_auto_label.yml index 45c79d705..5dd341167 100644 --- a/.github/workflows/issue_auto_label.yml +++ b/.github/workflows/issue_auto_label.yml @@ -23,15 +23,15 @@ jobs: id: parse-issue run: | # Extract the plugin from the issue body - SELECTED_PLUGINS=$(echo "${{ github.event.issue.body }}" | grep "### Plugin" -A 2 | tail -n 1) - echo "Selected Plugins: ${{ SELECTED_PLUGINS }}" - echo "SELECTED_PLUGINS=$SELECTED_PLUGINS" >> $GITHUB_ENV + SELECTED_PLUGIN=$(echo "${{ github.event.issue.body }}" | grep "### Plugin" -A 2 | tail -n 1) + echo "Selected Plugins: ${{ SELECTED_PLUGIN }}" + echo "SELECTED_PLUGIN=$SELECTED_PLUGIN" >> $GITHUB_ENV - name: Determine corresponding label id: determine-label run: | # Map the selected plugin to its ID - LABEL=$(jq -r ".$SELECTED_PLUGINS" plugin_map.txt) + LABEL=$(jq -r ".$SELECTED_PLUGIN" plugin_map.txt) echo "LABEL=$LABEL" >> $GITHUB_ENV - name: Add label to the issue From 971dd421cb0af7d36774b3b6e1aa5c090327b153 Mon Sep 17 00:00:00 2001 From: cd-z Date: Mon, 30 Dec 2024 15:56:07 +0100 Subject: [PATCH 22/50] Maybe --- .github/workflows/issue_auto_label.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/issue_auto_label.yml b/.github/workflows/issue_auto_label.yml index 5dd341167..bd025dba2 100644 --- a/.github/workflows/issue_auto_label.yml +++ b/.github/workflows/issue_auto_label.yml @@ -23,7 +23,8 @@ jobs: id: parse-issue run: | # Extract the plugin from the issue body - SELECTED_PLUGIN=$(echo "${{ github.event.issue.body }}" | grep "### Plugin" -A 2 | tail -n 1) + BODY=$(echo "Issue body: ${{ github.event.issue.body }}") + SELECTED_PLUGIN=$(echo "$BODY" | grep "### Plugin" -A 2 | tail -n 1) echo "Selected Plugins: ${{ SELECTED_PLUGIN }}" echo "SELECTED_PLUGIN=$SELECTED_PLUGIN" >> $GITHUB_ENV From af4c501a4c9a31fa76c8647abeeb57f3898f9b53 Mon Sep 17 00:00:00 2001 From: cd-z Date: Mon, 30 Dec 2024 15:58:15 +0100 Subject: [PATCH 23/50] maybe this --- .github/workflows/issue_auto_label.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/issue_auto_label.yml b/.github/workflows/issue_auto_label.yml index bd025dba2..f99a77027 100644 --- a/.github/workflows/issue_auto_label.yml +++ b/.github/workflows/issue_auto_label.yml @@ -25,7 +25,7 @@ jobs: # Extract the plugin from the issue body BODY=$(echo "Issue body: ${{ github.event.issue.body }}") SELECTED_PLUGIN=$(echo "$BODY" | grep "### Plugin" -A 2 | tail -n 1) - echo "Selected Plugins: ${{ SELECTED_PLUGIN }}" + echo "SELECTED_PLUGIN=$SELECTED_PLUGIN" >> $GITHUB_ENV - name: Determine corresponding label From 37d98c410f9790aa0b7a4369d76b3e48291ccdd1 Mon Sep 17 00:00:00 2001 From: cd-z Date: Mon, 30 Dec 2024 16:13:01 +0100 Subject: [PATCH 24/50] Now --- .github/workflows/issue_auto_label.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/workflows/issue_auto_label.yml b/.github/workflows/issue_auto_label.yml index f99a77027..25411fead 100644 --- a/.github/workflows/issue_auto_label.yml +++ b/.github/workflows/issue_auto_label.yml @@ -23,8 +23,8 @@ jobs: id: parse-issue run: | # Extract the plugin from the issue body - BODY=$(echo "Issue body: ${{ github.event.issue.body }}") - SELECTED_PLUGIN=$(echo "$BODY" | grep "### Plugin" -A 2 | tail -n 1) + + SELECTED_PLUGIN=$(echo "${{ github.event.issue.body }}" | grep "### Plugin" -A 2 | tail -n 1) echo "SELECTED_PLUGIN=$SELECTED_PLUGIN" >> $GITHUB_ENV @@ -32,15 +32,16 @@ jobs: id: determine-label run: | # Map the selected plugin to its ID - LABEL=$(jq -r ".$SELECTED_PLUGIN" plugin_map.txt) - echo "LABEL=$LABEL" >> $GITHUB_ENV + + LABELS=$(jq -r '.["$SELECTED_PLUGIN"]' ./.github/scripts/keys.json | tr ',' '\n') + echo "LABELS=$LABELS" >> $GITHUB_ENV - name: Add label to the issue - if: env.LABEL != '' + if: env.LABELS != '' uses: actions-ecosystem/action-add-labels@v1 with: - labels: ${{ env.LABEL }} + labels: ${{ env.LABELS }} - name: Handle missing label - if: env.LABEL == '' + if: env.LABELS == '' run: echo "No matching label found for the selected plugin." From 1e3c8e034fc2b3caac9365fa890df48db554a250 Mon Sep 17 00:00:00 2001 From: cd-z Date: Mon, 30 Dec 2024 17:45:51 +0100 Subject: [PATCH 25/50] please --- .github/workflows/issue_auto_label.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/issue_auto_label.yml b/.github/workflows/issue_auto_label.yml index 25411fead..8deaf83b4 100644 --- a/.github/workflows/issue_auto_label.yml +++ b/.github/workflows/issue_auto_label.yml @@ -32,8 +32,8 @@ jobs: id: determine-label run: | # Map the selected plugin to its ID - - LABELS=$(jq -r '.["$SELECTED_PLUGIN"]' ./.github/scripts/keys.json | tr ',' '\n') + QUERY=.[\"$SELECTED_PLUGIN\"] + LABELS=$( jq --arg keys "$QUERY" '. as $data | $keys | split(",") as $keyList | $keyList[] | . as $key | if $data[$key] != null then $data[$key] else empty end' ./.github/scripts/keys.json ) echo "LABELS=$LABELS" >> $GITHUB_ENV - name: Add label to the issue From d24cc086b9964683331ba8fb490185cf43ed93fb Mon Sep 17 00:00:00 2001 From: cd-z Date: Mon, 30 Dec 2024 17:57:13 +0100 Subject: [PATCH 26/50] Now really --- .github/workflows/issue_auto_label.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/issue_auto_label.yml b/.github/workflows/issue_auto_label.yml index 8deaf83b4..2586f4d27 100644 --- a/.github/workflows/issue_auto_label.yml +++ b/.github/workflows/issue_auto_label.yml @@ -31,9 +31,7 @@ jobs: - name: Determine corresponding label id: determine-label run: | - # Map the selected plugin to its ID - QUERY=.[\"$SELECTED_PLUGIN\"] - LABELS=$( jq --arg keys "$QUERY" '. as $data | $keys | split(",") as $keyList | $keyList[] | . as $key | if $data[$key] != null then $data[$key] else empty end' ./.github/scripts/keys.json ) + LABELS=$( jq --arg keys "$SELECTED_PLUGIN" '. as $data | $keys | split(",") as $keyList | $keyList[] | . as $key | if $data[$key] != null then $data[$key] else empty end' ./.github/scripts/keys.json ) echo "LABELS=$LABELS" >> $GITHUB_ENV - name: Add label to the issue From aee7dd7671e21303f8c3510f1beff744e6288d5d Mon Sep 17 00:00:00 2001 From: cd-z Date: Mon, 30 Dec 2024 18:01:34 +0100 Subject: [PATCH 27/50] maybe --- .github/workflows/issue_auto_label.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/issue_auto_label.yml b/.github/workflows/issue_auto_label.yml index 2586f4d27..8b6d22c7b 100644 --- a/.github/workflows/issue_auto_label.yml +++ b/.github/workflows/issue_auto_label.yml @@ -31,7 +31,7 @@ jobs: - name: Determine corresponding label id: determine-label run: | - LABELS=$( jq --arg keys "$SELECTED_PLUGIN" '. as $data | $keys | split(",") as $keyList | $keyList[] | . as $key | if $data[$key] != null then $data[$key] else empty end' ./.github/scripts/keys.json ) + LABELS=$( jq --arg keys "${{ env.SELECTED_PLUGIN }}" '. as $data | $keys | split(",") as $keyList | $keyList[] | . as $key | if $data[$key] != null then $data[$key] else empty end' ./.github/scripts/keys.json ) echo "LABELS=$LABELS" >> $GITHUB_ENV - name: Add label to the issue From d37653f29b5338b98ec6927520268f5a9bbc8091 Mon Sep 17 00:00:00 2001 From: cd-z Date: Mon, 30 Dec 2024 18:05:06 +0100 Subject: [PATCH 28/50] debug --- .github/workflows/issue_auto_label.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/issue_auto_label.yml b/.github/workflows/issue_auto_label.yml index 8b6d22c7b..9c2358822 100644 --- a/.github/workflows/issue_auto_label.yml +++ b/.github/workflows/issue_auto_label.yml @@ -32,6 +32,7 @@ jobs: id: determine-label run: | LABELS=$( jq --arg keys "${{ env.SELECTED_PLUGIN }}" '. as $data | $keys | split(",") as $keyList | $keyList[] | . as $key | if $data[$key] != null then $data[$key] else empty end' ./.github/scripts/keys.json ) + echo $(cat ./.github/scripts/keys.json) echo "LABELS=$LABELS" >> $GITHUB_ENV - name: Add label to the issue From 76e6e945497ea964fe0a776ceaae1e9bca89c56d Mon Sep 17 00:00:00 2001 From: cd-z Date: Mon, 30 Dec 2024 18:06:47 +0100 Subject: [PATCH 29/50] debug --- .github/workflows/issue_auto_label.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/issue_auto_label.yml b/.github/workflows/issue_auto_label.yml index 9c2358822..bd0b19946 100644 --- a/.github/workflows/issue_auto_label.yml +++ b/.github/workflows/issue_auto_label.yml @@ -32,7 +32,7 @@ jobs: id: determine-label run: | LABELS=$( jq --arg keys "${{ env.SELECTED_PLUGIN }}" '. as $data | $keys | split(",") as $keyList | $keyList[] | . as $key | if $data[$key] != null then $data[$key] else empty end' ./.github/scripts/keys.json ) - echo $(cat ./.github/scripts/keys.json) + echo $LABELS echo "LABELS=$LABELS" >> $GITHUB_ENV - name: Add label to the issue From 2032cf1effea65d57010d606cf41347be253166d Mon Sep 17 00:00:00 2001 From: cd-z Date: Mon, 30 Dec 2024 18:14:28 +0100 Subject: [PATCH 30/50] remove linebreak --- .github/workflows/issue_auto_label.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/issue_auto_label.yml b/.github/workflows/issue_auto_label.yml index bd0b19946..2e82bbc63 100644 --- a/.github/workflows/issue_auto_label.yml +++ b/.github/workflows/issue_auto_label.yml @@ -24,7 +24,7 @@ jobs: run: | # Extract the plugin from the issue body - SELECTED_PLUGIN=$(echo "${{ github.event.issue.body }}" | grep "### Plugin" -A 2 | tail -n 1) + SELECTED_PLUGIN=$(echo "${{ github.event.issue.body }}" | grep "### Plugin" -A 2 | tail -n 1 | sed 's/[[:space:]]*$//') echo "SELECTED_PLUGIN=$SELECTED_PLUGIN" >> $GITHUB_ENV From 9733653bdf471623a697f7134602a7f11464aa03 Mon Sep 17 00:00:00 2001 From: cd-z Date: Mon, 30 Dec 2024 18:18:23 +0100 Subject: [PATCH 31/50] delete " --- .github/workflows/issue_auto_label.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/issue_auto_label.yml b/.github/workflows/issue_auto_label.yml index 2e82bbc63..b911b3e8a 100644 --- a/.github/workflows/issue_auto_label.yml +++ b/.github/workflows/issue_auto_label.yml @@ -31,8 +31,7 @@ jobs: - name: Determine corresponding label id: determine-label run: | - LABELS=$( jq --arg keys "${{ env.SELECTED_PLUGIN }}" '. as $data | $keys | split(",") as $keyList | $keyList[] | . as $key | if $data[$key] != null then $data[$key] else empty end' ./.github/scripts/keys.json ) - echo $LABELS + LABELS=$( jq --arg keys "${{ env.SELECTED_PLUGIN }}" '. as $data | $keys | split(",") as $keyList | $keyList[] | . as $key | if $data[$key] != null then $data[$key] else empty end' ./.github/scripts/keys.json | tr -d `\"` ) echo "LABELS=$LABELS" >> $GITHUB_ENV - name: Add label to the issue From c0e10ca9e7fabb8a6a077fa6a70b78f237fd1544 Mon Sep 17 00:00:00 2001 From: cd-z Date: Mon, 30 Dec 2024 18:22:12 +0100 Subject: [PATCH 32/50] delete " differently --- .github/workflows/issue_auto_label.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/issue_auto_label.yml b/.github/workflows/issue_auto_label.yml index b911b3e8a..10a712767 100644 --- a/.github/workflows/issue_auto_label.yml +++ b/.github/workflows/issue_auto_label.yml @@ -31,7 +31,7 @@ jobs: - name: Determine corresponding label id: determine-label run: | - LABELS=$( jq --arg keys "${{ env.SELECTED_PLUGIN }}" '. as $data | $keys | split(",") as $keyList | $keyList[] | . as $key | if $data[$key] != null then $data[$key] else empty end' ./.github/scripts/keys.json | tr -d `\"` ) + LABELS=$( jq --arg keys "${{ env.SELECTED_PLUGIN }}" '. as $data | $keys | split(",") as $keyList | $keyList[] | . as $key | if $data[$key] != null then $data[$key] else empty end' ./.github/scripts/keys.json | sed 's/"//g' ) echo "LABELS=$LABELS" >> $GITHUB_ENV - name: Add label to the issue From e6437ef29f485b51f250e5773a8ff0c7ab55b29b Mon Sep 17 00:00:00 2001 From: cd-z Date: Mon, 30 Dec 2024 18:30:49 +0100 Subject: [PATCH 33/50] corrected split --- .github/workflows/issue_auto_label.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/issue_auto_label.yml b/.github/workflows/issue_auto_label.yml index 10a712767..fca646018 100644 --- a/.github/workflows/issue_auto_label.yml +++ b/.github/workflows/issue_auto_label.yml @@ -31,7 +31,7 @@ jobs: - name: Determine corresponding label id: determine-label run: | - LABELS=$( jq --arg keys "${{ env.SELECTED_PLUGIN }}" '. as $data | $keys | split(",") as $keyList | $keyList[] | . as $key | if $data[$key] != null then $data[$key] else empty end' ./.github/scripts/keys.json | sed 's/"//g' ) + LABELS=$( jq --arg keys "${{ env.SELECTED_PLUGIN }}" '. as $data | $keys | split(", ") as $keyList | $keyList[] | . as $key | if $data[$key] != null then $data[$key] else empty end' ./.github/scripts/keys.json | sed 's/"//g' ) echo "LABELS=$LABELS" >> $GITHUB_ENV - name: Add label to the issue From bf39b4990b9ef53c2438cc646f299d21b00d49cc Mon Sep 17 00:00:00 2001 From: cd-z Date: Mon, 30 Dec 2024 18:43:24 +0100 Subject: [PATCH 34/50] fix multiline issue --- .github/workflows/issue_auto_label.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/issue_auto_label.yml b/.github/workflows/issue_auto_label.yml index fca646018..b60f38b3f 100644 --- a/.github/workflows/issue_auto_label.yml +++ b/.github/workflows/issue_auto_label.yml @@ -31,7 +31,7 @@ jobs: - name: Determine corresponding label id: determine-label run: | - LABELS=$( jq --arg keys "${{ env.SELECTED_PLUGIN }}" '. as $data | $keys | split(", ") as $keyList | $keyList[] | . as $key | if $data[$key] != null then $data[$key] else empty end' ./.github/scripts/keys.json | sed 's/"//g' ) + LABELS="$( jq --arg keys "${{ env.SELECTED_PLUGIN }}" '. as $data | $keys | split(", ") as $keyList | $keyList[] | . as $key | if $data[$key] != null then $data[$key] else empty end' ./.github/scripts/keys.json | sed 's/"//g' )" echo "LABELS=$LABELS" >> $GITHUB_ENV - name: Add label to the issue From e3ae3c07976a31a998833810ab97313b1bc289d0 Mon Sep 17 00:00:00 2001 From: cd-z Date: Mon, 30 Dec 2024 19:25:04 +0100 Subject: [PATCH 35/50] maybe this way --- .github/workflows/issue_auto_label.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/issue_auto_label.yml b/.github/workflows/issue_auto_label.yml index b60f38b3f..68d5dfbdc 100644 --- a/.github/workflows/issue_auto_label.yml +++ b/.github/workflows/issue_auto_label.yml @@ -32,7 +32,7 @@ jobs: id: determine-label run: | LABELS="$( jq --arg keys "${{ env.SELECTED_PLUGIN }}" '. as $data | $keys | split(", ") as $keyList | $keyList[] | . as $key | if $data[$key] != null then $data[$key] else empty end' ./.github/scripts/keys.json | sed 's/"//g' )" - echo "LABELS=$LABELS" >> $GITHUB_ENV + printf "LABELS<> $GITHUB_ENV - name: Add label to the issue if: env.LABELS != '' From 6be7768488416b0ada7846453fa48931db8e6428 Mon Sep 17 00:00:00 2001 From: cd-z Date: Mon, 30 Dec 2024 19:53:11 +0100 Subject: [PATCH 36/50] Added Severity --- .github/scripts/blank_report_issue.yml | 19 +++++++++++++++++-- .github/scripts/keys.json | 2 +- .github/workflows/issue_auto_label.yml | 26 +++++++++++++++++++------- 3 files changed, 37 insertions(+), 10 deletions(-) diff --git a/.github/scripts/blank_report_issue.yml b/.github/scripts/blank_report_issue.yml index 96288e908..214f8e5c1 100644 --- a/.github/scripts/blank_report_issue.yml +++ b/.github/scripts/blank_report_issue.yml @@ -13,6 +13,22 @@ body: validations: required: true + - type: dropdown + id: severity + attributes: + label: Severity + description: Select the severity of the issue you want to report. + multiple: false + options: + - Wrong formatting + - Wrong content + - Missing chapter + - Missing images + - Can't load novels + - Other + validations: + required: true + - type: textarea id: reproduce-steps attributes: @@ -91,5 +107,4 @@ body: required: true - label: If this is an issue with the app itself, I should be opening an issue in the [app repository](https://github.com/LNReader/lnreader/issues/new/choose). required: true - - label: I will fill out all of the requested information in this form. - required: true + diff --git a/.github/scripts/keys.json b/.github/scripts/keys.json index 411acb4ea..fb40941c5 100644 --- a/.github/scripts/keys.json +++ b/.github/scripts/keys.json @@ -1 +1 @@ -{"‎العربية: ArNovel":"arnovel","‎العربية: Azora":"azora","‎العربية: dilar tube":"dilartube","‎العربية: HizoManga":"hizomanga","‎العربية: Kol Novel":"kolnovel","‎العربية: Novel4Up":"novel4up","‎العربية: Novels Paradise":"novelsparadise","‎العربية: Olaoe.cyou":"olaoe","‎العربية: Rewayat Club":"rewayatclub","‎العربية: Riwyat":"riwyat","‎العربية: Sunovels":"sunovels","中文, 汉语, 漢語: 69书吧":"69xinshu","中文, 汉语, 漢語: Linovelib":"linovelib","中文, 汉语, 漢語: Linovelib(繁體)":"linovelib_tw","English: FirstKissNovel":"1stkissnovel","English: AllNovelFull":"anf.net","English: Arcane Translations":"arcane","English: Archive Of Our Own":"archiveofourown","English: Srank Manga":"asuralightnovel","English: Belle Reservoir":"bellereservoir","English: BestLightNovel":"BLN","English: BoxNovel":"boxnovel","English: Citrus Aurora":"citrusaurora","English: Coral Boutique":"coralboutique","English: CPUnovel":"cpunovel","English: DaoNovel":"daonovel","English: DaoTranslate":"daotranslate","English: Divine Dao Library":"DDL.com","English: Dragon Tea":"dragontea","English: Dream Big Translations":"dreambigtl","English: Dusk Blossoms":"duskblossoms","English: Early Novel":"earlynovel","English: ElloTL":"ellotl","English: Eternalune":"eternalune","English: FanNovel":"fannovel","English: Fans Translations":"fanstranslations","English: Fenrir Translations":"fenrir","English: Foxaholic":"foxaholic","English: Foxteller":"foxteller","English: Faq Wiki":"FWK.US","English: Free Web Novel":"FWN.com","English: Galaxy Translations":"galaxytranslations","English: Genesis":"genesistudio","English: Guavaread":"guavaread","English: Hiraeth Translation":"hiraethtranslation","English: HotNovelPub":"hotnovelpub","English: Ippotranslations":"ippotranslations","English: KnoxT":"knoxt","English: Lib Read":"libread","English: LightNovelCave":"lightnovelcave","English: LightNovelPub":"lightnovelpub","English: LightNovelPub Vip":"lightnovelpubvip","English: Light Novel Updates":"LightNovelUpdates","English: LightNovelWord":"lightnovelworld","English: LightNovelHeaven":"lnheaven","English: LnMTL":"lnmtl","English: Ltnovel":"ltnovel","English: LunarLetters":"lunarletters","English: Meownovel":"meownovel","English: Moonlight Novels":"moonlightnovel","English: MostNovel":"mostnovel","English: MTL-Novel":"mtl-novel","English: MTL Novel":"mtlnovel","English: MTL Reader":"mtlreader","English: MVLEMPYR":"mvlempyr.com","English: MysticalSeries":"mysticalmerries","English: NeoSekai Translations":"neosekaiTLS","English: Nitro Manga":"nitromanga","English: novelsOnline":"NO.net","English: NobleMTL":"noblemtl","English: Novel Bin":"novelbin","English: NovelBuddy.io":"novelbuddy","English: Novel Fire":"novelfire","English: NovelFull":"novelfull","English: Novel Hall":"novelhall","English: NovelMultiverse":"novelmultiverse","English: NovelsKnight":"novelsknight","English: NovelTranslate":"novelTL","English: Novel Updates":"novelupdates","English: Panda Machine Translations":"pandamtl","English: Pastel Tales":"pasteltales","English: PawRead":"pawread","English: Rainofsnow":"rainofsnow","English: Ranobes":"ranobes","English: ReadNovelFull":"readnovelfull","English: Re:Library":"ReLib","English: Requiem Translations":"requiemtls","English: ReadLiteNovel":"rln.app","English: Royal Road":"royalroad","English: Salmon Latte":"salmonlatte","English: Scribble Hub":"scribblehub","English: SleepyTranslations":"sleeptTLS","English: SonicMTL":"sonicmtl","English: StorySeedling":"storyseedling","English: System Translation":"systemtranslation","English: TranslatinOtaku":"translatinotaku","English: Universal Novel":"universalnovel","English: VyNovel":"vynovel","English: Webnovel":"webnovel","English: WebNovelLover":"webnovelover","English: Web Novel Pub":"webnovelworld","English: White Moonlight Novels":"whitemoonlightnovels","English: Wook's Teahouse":"wooksteahouse","English: WordExcerpt":"wordexcerpt","English: WTR-LAB":"WTRLAB","English: Wuxiafox":"wuxiacity","English: Fans MTL":"wuxiamtl","English: Wuxiabox":"wuxiap","English: Wuxia Space":"wuxiaspace","English: WuxiaV":"wuxiav","English: Wuxia World":"wuxiaworld","English: WuxiaWorld.Site":"wuxiaworld.site","English: Zetro Translation":"zetroTL","Français: Chireads":"chireads","Français: HarkenEliwood":"harkeneliwood","Français: KissWood":"kisswood","Français: Ligh Novel FR":"lightnovelfr","Français: MTL Novel (FR)":"mtlnovel-fr","Français: NovelDeGlace":"noveldeglace","Français: Novhell":"novhell","Français: PhenixScans":"phenixscans","Français: Warrior Legend Trad":"warriorlegendtrad","Français: WorldNovel":"worldnovel","Français: WuxiaLnScantrad":"wuxialnscantrad","Français: Xiaowaz":"xiaowaz","Bahasa Indonesia: Baca Light Novel":"bacalightnovel","Bahasa Indonesia: IndoWebNovel":"IDWN.id","Bahasa Indonesia: MeioNovel":"meionovel","Bahasa Indonesia: Risenovel":"morenovel","Bahasa Indonesia: MTL Novel (ID)":"mtlnovel-id","Bahasa Indonesia: NovelBookID":"novelbookid","Bahasa Indonesia: NovelRingan":"novelringan.com","Bahasa Indonesia: SakuraNovel":"sakura.id","Bahasa Indonesia: Sekte Novel":"sektenovel","Bahasa Indonesia: WBNovel":"wbnovel","日本語: kakuyomu":"kakuyomu","日本語: Syosetu":"yomou.syosetu","조선말, 한국어: Agitoon":"agit.xyz","Polski: Novelki":"novelki.pl","Português: Better Novels":"betternovels","Português: Blog do Amon Novels":"blogdoamonnovels","Português: Central Novel":"centralnovel","Português: Kiniga":"kiniga","Português: LaNovels":"lanovels","Português: Light Novel Brasil":"lightnovelbrasil","Português: MTL Novel (PT)":"mtlnovel-pt","Português: Novel Mania":"novelmania.com.br","Português: Tsundoku Traduções":"tsundoku","Русский: Автор Тудей":"AT","Русский: Bookhamster":"bookhamster","Русский: Bookriver":"bookriver","Русский: Erolate":"erolate","Русский: EzNovels":"eznovels","Русский: ficbook":"ficbook","Русский: LitSpace":"freedlit.space","Русский: Свободный Мир Ранобэ":"ifreedom","Русский: Jaomix":"jaomix.ru","Русский: MTL Novel (RU)":"mtlnovel-ru","Русский: Neobook":"neobook","Русский: НовелОВХ":"novelovh","Русский: Ranobes (RU)":"ranobes-ru","Русский: Renovels":"ReN","Русский: RanobeLib":"RLIB","Русский: RanobeHub":"RNBH.org","Русский: РанобэРФ":"RNRF","Русский: Rulate":"rulate","Русский: Ruvers":"RV","Русский: NovelTL":"TL","Русский: ТопЛиба":"TopLiba","Русский: Целлюлоза":"zelluloza","Español: AllNovelRead":"allnovelread","Español: Hasu Translations":"HasuTL","Español: LightNovelDaily":"lightnoveldaily","Español: MTL Novel (ES)":"mtlnovel-es","Español: Novelas Ligera":"novelasligera","Español: Oasis Translations":"oasistranslations","Español: Pancho Translations":"panchotranslations","Español: ReinoWuxia":"reinowuxia","Español: SkyNovels":"skynovels","Español: Traducciones Amistosas":"traducciones","Español: TuNovelaLigera":"tunovelaligera","Español: Yuuki Tls":"yuukitls","ไทย: Novel Lucky":"novel-lucky","ไทย: Novel PDF":"novelpdf","Türkçe: Araz Novel":"azraznovel","Türkçe: E-KİTAPLAR":"ekitaplar","Türkçe: EpikNovel":"epiknovel","Türkçe: Kodeks Library":"kodekslibrary","Türkçe: NABİ SCANS":"nabiscans","Türkçe: Namevt":"namevt","Türkçe: Novel oku":"noveloku","Türkçe: Novelokutr":"novelokutr","Türkçe: NovelTR":"noveltr","Türkçe: ThNovels":"thnovels","Türkçe: TurkceLightNovels":"turkcelightnovels","Türkçe: WebNovelOku":"webnoveloku","Українська: Смаколики":"smakolykytl","Tiếng Việt: Light Novel VN":"lightnovel.vn","Tiếng Việt: Hako":"ln.hako","Tiếng Việt: Nettruyen":"nettruyen","Tiếng Việt: Truyện Chữ":"truyenchu","Tiếng Việt: Truyen Conect":"truyenconect","Tiếng Việt: Truyện Full":"truyenfull","Multi: Komga":"komga"} \ No newline at end of file +{"‎العربية: ArNovel":"arnovel","‎العربية: Azora":"azora","‎العربية: dilar tube":"dilartube","‎العربية: HizoManga":"hizomanga","‎العربية: Kol Novel":"kolnovel","‎العربية: Novel4Up":"novel4up","‎العربية: Novels Paradise":"novelsparadise","‎العربية: Olaoe.cyou":"olaoe","‎العربية: Rewayat Club":"rewayatclub","‎العربية: Riwyat":"riwyat","‎العربية: Sunovels":"sunovels","中文, 汉语, 漢語: 69书吧":"69xinshu","中文, 汉语, 漢語: Linovelib":"linovelib","中文, 汉语, 漢語: Linovelib(繁體)":"linovelib_tw","English: FirstKissNovel":"1stkissnovel","English: AllNovelFull":"anf.net","English: Arcane Translations":"arcane","English: Archive Of Our Own":"archiveofourown","English: Srank Manga":"asuralightnovel","English: Belle Reservoir":"bellereservoir","English: BestLightNovel":"BLN","English: BoxNovel":"boxnovel","English: Citrus Aurora":"citrusaurora","English: Coral Boutique":"coralboutique","English: CPUnovel":"cpunovel","English: DaoNovel":"daonovel","English: DaoTranslate":"daotranslate","English: Divine Dao Library":"DDL.com","English: Dragon Tea":"dragontea","English: Dream Big Translations":"dreambigtl","English: Dusk Blossoms":"duskblossoms","English: Early Novel":"earlynovel","English: ElloTL":"ellotl","English: Eternalune":"eternalune","English: FanNovel":"fannovel","English: Fans Translations":"fanstranslations","English: Fenrir Translations":"fenrir","English: Foxaholic":"foxaholic","English: Foxteller":"foxteller","English: Faq Wiki":"FWK.US","English: Free Web Novel":"FWN.com","English: Galaxy Translations":"galaxytranslations","English: Genesis":"genesistudio","English: Guavaread":"guavaread","English: Hiraeth Translation":"hiraethtranslation","English: HotNovelPub":"hotnovelpub","English: Ippotranslations":"ippotranslations","English: KnoxT":"knoxt","English: Lib Read":"libread","English: LightNovelCave":"lightnovelcave","English: LightNovelPub":"lightnovelpub","English: LightNovelPub Vip":"lightnovelpubvip","English: Light Novel Updates":"LightNovelUpdates","English: LightNovelWord":"lightnovelworld","English: LightNovelHeaven":"lnheaven","English: LnMTL":"lnmtl","English: Ltnovel":"ltnovel","English: LunarLetters":"lunarletters","English: Meownovel":"meownovel","English: Moonlight Novels":"moonlightnovel","English: MostNovel":"mostnovel","English: MTL-Novel":"mtl-novel","English: MTL Novel":"mtlnovel","English: MTL Reader":"mtlreader","English: MVLEMPYR":"mvlempyr.com","English: MysticalSeries":"mysticalmerries","English: NeoSekai Translations":"neosekaiTLS","English: Nitro Manga":"nitromanga","English: novelsOnline":"NO.net","English: NobleMTL":"noblemtl","English: Novel Bin":"novelbin","English: NovelBuddy.io":"novelbuddy","English: Novel Fire":"novelfire","English: NovelFull":"novelfull","English: Novel Hall":"novelhall","English: NovelMultiverse":"novelmultiverse","English: NovelsKnight":"novelsknight","English: NovelTranslate":"novelTL","English: Novel Updates":"novelupdates","English: Panda Machine Translations":"pandamtl","English: Pastel Tales":"pasteltales","English: PawRead":"pawread","English: Rainofsnow":"rainofsnow","English: Ranobes":"ranobes","English: ReadNovelFull":"readnovelfull","English: Re:Library":"ReLib","English: Requiem Translations":"requiemtls","English: ReadLiteNovel":"rln.app","English: Royal Road":"royalroad","English: Salmon Latte":"salmonlatte","English: Scribble Hub":"scribblehub","English: SleepyTranslations":"sleeptTLS","English: SonicMTL":"sonicmtl","English: StorySeedling":"storyseedling","English: System Translation":"systemtranslation","English: TranslatinOtaku":"translatinotaku","English: Universal Novel":"universalnovel","English: VyNovel":"vynovel","English: Webnovel":"webnovel","English: WebNovelLover":"webnovelover","English: Web Novel Pub":"webnovelworld","English: White Moonlight Novels":"whitemoonlightnovels","English: Wook's Teahouse":"wooksteahouse","English: WordExcerpt":"wordexcerpt","English: WTR-LAB":"WTRLAB","English: Wuxiafox":"wuxiacity","English: Fans MTL":"wuxiamtl","English: Wuxiabox":"wuxiap","English: Wuxia Space":"wuxiaspace","English: WuxiaV":"wuxiav","English: Wuxia World":"wuxiaworld","English: WuxiaWorld.Site":"wuxiaworld.site","English: Zetro Translation":"zetroTL","Français: Chireads":"chireads","Français: HarkenEliwood":"harkeneliwood","Français: KissWood":"kisswood","Français: Ligh Novel FR":"lightnovelfr","Français: MTL Novel (FR)":"mtlnovel-fr","Français: NovelDeGlace":"noveldeglace","Français: Novhell":"novhell","Français: PhenixScans":"phenixscans","Français: Warrior Legend Trad":"warriorlegendtrad","Français: WorldNovel":"worldnovel","Français: WuxiaLnScantrad":"wuxialnscantrad","Français: Xiaowaz":"xiaowaz","Bahasa Indonesia: Baca Light Novel":"bacalightnovel","Bahasa Indonesia: IndoWebNovel":"IDWN.id","Bahasa Indonesia: MeioNovel":"meionovel","Bahasa Indonesia: Risenovel":"morenovel","Bahasa Indonesia: MTL Novel (ID)":"mtlnovel-id","Bahasa Indonesia: NovelBookID":"novelbookid","Bahasa Indonesia: NovelRingan":"novelringan.com","Bahasa Indonesia: SakuraNovel":"sakura.id","Bahasa Indonesia: Sekte Novel":"sektenovel","Bahasa Indonesia: WBNovel":"wbnovel","日本語: kakuyomu":"kakuyomu","日本語: Syosetu":"yomou.syosetu","조선말, 한국어: Agitoon":"agit.xyz","Polski: Novelki":"novelki.pl","Português: Better Novels":"betternovels","Português: Blog do Amon Novels":"blogdoamonnovels","Português: Central Novel":"centralnovel","Português: Kiniga":"kiniga","Português: LaNovels":"lanovels","Português: Light Novel Brasil":"lightnovelbrasil","Português: MTL Novel (PT)":"mtlnovel-pt","Português: Novel Mania":"novelmania.com.br","Português: Tsundoku Traduções":"tsundoku","Русский: Автор Тудей":"AT","Русский: Bookhamster":"bookhamster","Русский: Bookriver":"bookriver","Русский: Erolate":"erolate","Русский: EzNovels":"eznovels","Русский: ficbook":"ficbook","Русский: LitSpace":"freedlit.space","Русский: Свободный Мир Ранобэ":"ifreedom","Русский: Jaomix":"jaomix.ru","Русский: MTL Novel (RU)":"mtlnovel-ru","Русский: Neobook":"neobook","Русский: НовелОВХ":"novelovh","Русский: Ranobes (RU)":"ranobes-ru","Русский: Renovels":"ReN","Русский: RanobeLib":"RLIB","Русский: RanobeHub":"RNBH.org","Русский: РанобэРФ":"RNRF","Русский: Rulate":"rulate","Русский: Ruvers":"RV","Русский: NovelTL":"TL","Русский: ТопЛиба":"TopLiba","Русский: Целлюлоза":"zelluloza","Español: AllNovelRead":"allnovelread","Español: Hasu Translations":"HasuTL","Español: LightNovelDaily":"lightnoveldaily","Español: MTL Novel (ES)":"mtlnovel-es","Español: Novelas Ligera":"novelasligera","Español: Oasis Translations":"oasistranslations","Español: Pancho Translations":"panchotranslations","Español: ReinoWuxia":"reinowuxia","Español: SkyNovels":"skynovels","Español: Traducciones Amistosas":"traducciones","Español: TuNovelaLigera":"tunovelaligera","Español: Yuuki Tls":"yuukitls","ไทย: Novel Lucky":"novel-lucky","ไทย: Novel PDF":"novelpdf","Türkçe: Araz Novel":"azraznovel","Türkçe: E-KİTAPLAR":"ekitaplar","Türkçe: EpikNovel":"epiknovel","Türkçe: Kodeks Library":"kodekslibrary","Türkçe: NABİ SCANS":"nabiscans","Türkçe: Namevt":"namevt","Türkçe: Novel oku":"noveloku","Türkçe: Novelokutr":"novelokutr","Türkçe: NovelTR":"noveltr","Türkçe: ThNovels":"thnovels","Türkçe: TurkceLightNovels":"turkcelightnovels","Türkçe: WebNovelOku":"webnoveloku","Українська: Смаколики":"smakolykytl","Tiếng Việt: Light Novel VN":"lightnovel.vn","Tiếng Việt: Hako":"ln.hako","Tiếng Việt: Nettruyen":"nettruyen","Tiếng Việt: Truyện Chữ":"truyenchu","Tiếng Việt: Truyen Conect":"truyenconect","Tiếng Việt: Truyện Full":"truyenfull"} \ No newline at end of file diff --git a/.github/workflows/issue_auto_label.yml b/.github/workflows/issue_auto_label.yml index 68d5dfbdc..c66c040c9 100644 --- a/.github/workflows/issue_auto_label.yml +++ b/.github/workflows/issue_auto_label.yml @@ -14,16 +14,25 @@ jobs: - name: Checkout repository uses: actions/checkout@v3 - - name: Extract plugin names and IDs - id: extract-plugins + - name: Extract the severity from issue body + id: extract-severity run: | - cat ./.github/scripts/keys.json > plugin_map.txt + USER_SELECTED_SEVERITY=$(echo "${{ github.event.issue.body }}" | grep "### Severity" -A 2 | tail -n 1 | sed 's/[[:space:]]*$//') + SELECTED_SEVERITY="" + + case "$USER_SELECTED_SEVERITY" in + "Wrong formatting"|"Wrong content"|"Missing chapter"|"Missing images"|"Can't load novels") + SELECTED_SEVERITY="$USER_SELECTED_SEVERITY" + ;; + *) + SELECTED_SEVERITY="Other" + ;; + esac + echo "SELECTED_SEVERITY=$SELECTED_SEVERITY" >> $GITHUB_ENV - name: Extract the plugin from issue body id: parse-issue - run: | - # Extract the plugin from the issue body - + run: | SELECTED_PLUGIN=$(echo "${{ github.event.issue.body }}" | grep "### Plugin" -A 2 | tail -n 1 | sed 's/[[:space:]]*$//') echo "SELECTED_PLUGIN=$SELECTED_PLUGIN" >> $GITHUB_ENV @@ -38,7 +47,10 @@ jobs: if: env.LABELS != '' uses: actions-ecosystem/action-add-labels@v1 with: - labels: ${{ env.LABELS }} + labels: | + BUG + ${{ env.SELECTED_SEVERITY }} + ${{ env.LABELS }} - name: Handle missing label if: env.LABELS == '' From 15636672ebca84d32f03bd6be31907975b9c02dc Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 30 Dec 2024 18:53:43 +0000 Subject: [PATCH 37/50] Update issue template with plugin dropdown options --- .github/ISSUE_TEMPLATE/report_issue.yml | 19 +++++++++++++++++-- .github/scripts/keys.json | 2 +- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/report_issue.yml b/.github/ISSUE_TEMPLATE/report_issue.yml index 11ae391f2..602c53af5 100644 --- a/.github/ISSUE_TEMPLATE/report_issue.yml +++ b/.github/ISSUE_TEMPLATE/report_issue.yml @@ -216,6 +216,22 @@ body: validations: required: true + - type: dropdown + id: severity + attributes: + label: Severity + description: Select the severity of the issue you want to report. + multiple: false + options: + - Wrong formatting + - Wrong content + - Missing chapter + - Missing images + - Can't load novels + - Other + validations: + required: true + - type: textarea id: reproduce-steps attributes: @@ -294,5 +310,4 @@ body: required: true - label: If this is an issue with the app itself, I should be opening an issue in the [app repository](https://github.com/LNReader/lnreader/issues/new/choose). required: true - - label: I will fill out all of the requested information in this form. - required: true + diff --git a/.github/scripts/keys.json b/.github/scripts/keys.json index fb40941c5..411acb4ea 100644 --- a/.github/scripts/keys.json +++ b/.github/scripts/keys.json @@ -1 +1 @@ -{"‎العربية: ArNovel":"arnovel","‎العربية: Azora":"azora","‎العربية: dilar tube":"dilartube","‎العربية: HizoManga":"hizomanga","‎العربية: Kol Novel":"kolnovel","‎العربية: Novel4Up":"novel4up","‎العربية: Novels Paradise":"novelsparadise","‎العربية: Olaoe.cyou":"olaoe","‎العربية: Rewayat Club":"rewayatclub","‎العربية: Riwyat":"riwyat","‎العربية: Sunovels":"sunovels","中文, 汉语, 漢語: 69书吧":"69xinshu","中文, 汉语, 漢語: Linovelib":"linovelib","中文, 汉语, 漢語: Linovelib(繁體)":"linovelib_tw","English: FirstKissNovel":"1stkissnovel","English: AllNovelFull":"anf.net","English: Arcane Translations":"arcane","English: Archive Of Our Own":"archiveofourown","English: Srank Manga":"asuralightnovel","English: Belle Reservoir":"bellereservoir","English: BestLightNovel":"BLN","English: BoxNovel":"boxnovel","English: Citrus Aurora":"citrusaurora","English: Coral Boutique":"coralboutique","English: CPUnovel":"cpunovel","English: DaoNovel":"daonovel","English: DaoTranslate":"daotranslate","English: Divine Dao Library":"DDL.com","English: Dragon Tea":"dragontea","English: Dream Big Translations":"dreambigtl","English: Dusk Blossoms":"duskblossoms","English: Early Novel":"earlynovel","English: ElloTL":"ellotl","English: Eternalune":"eternalune","English: FanNovel":"fannovel","English: Fans Translations":"fanstranslations","English: Fenrir Translations":"fenrir","English: Foxaholic":"foxaholic","English: Foxteller":"foxteller","English: Faq Wiki":"FWK.US","English: Free Web Novel":"FWN.com","English: Galaxy Translations":"galaxytranslations","English: Genesis":"genesistudio","English: Guavaread":"guavaread","English: Hiraeth Translation":"hiraethtranslation","English: HotNovelPub":"hotnovelpub","English: Ippotranslations":"ippotranslations","English: KnoxT":"knoxt","English: Lib Read":"libread","English: LightNovelCave":"lightnovelcave","English: LightNovelPub":"lightnovelpub","English: LightNovelPub Vip":"lightnovelpubvip","English: Light Novel Updates":"LightNovelUpdates","English: LightNovelWord":"lightnovelworld","English: LightNovelHeaven":"lnheaven","English: LnMTL":"lnmtl","English: Ltnovel":"ltnovel","English: LunarLetters":"lunarletters","English: Meownovel":"meownovel","English: Moonlight Novels":"moonlightnovel","English: MostNovel":"mostnovel","English: MTL-Novel":"mtl-novel","English: MTL Novel":"mtlnovel","English: MTL Reader":"mtlreader","English: MVLEMPYR":"mvlempyr.com","English: MysticalSeries":"mysticalmerries","English: NeoSekai Translations":"neosekaiTLS","English: Nitro Manga":"nitromanga","English: novelsOnline":"NO.net","English: NobleMTL":"noblemtl","English: Novel Bin":"novelbin","English: NovelBuddy.io":"novelbuddy","English: Novel Fire":"novelfire","English: NovelFull":"novelfull","English: Novel Hall":"novelhall","English: NovelMultiverse":"novelmultiverse","English: NovelsKnight":"novelsknight","English: NovelTranslate":"novelTL","English: Novel Updates":"novelupdates","English: Panda Machine Translations":"pandamtl","English: Pastel Tales":"pasteltales","English: PawRead":"pawread","English: Rainofsnow":"rainofsnow","English: Ranobes":"ranobes","English: ReadNovelFull":"readnovelfull","English: Re:Library":"ReLib","English: Requiem Translations":"requiemtls","English: ReadLiteNovel":"rln.app","English: Royal Road":"royalroad","English: Salmon Latte":"salmonlatte","English: Scribble Hub":"scribblehub","English: SleepyTranslations":"sleeptTLS","English: SonicMTL":"sonicmtl","English: StorySeedling":"storyseedling","English: System Translation":"systemtranslation","English: TranslatinOtaku":"translatinotaku","English: Universal Novel":"universalnovel","English: VyNovel":"vynovel","English: Webnovel":"webnovel","English: WebNovelLover":"webnovelover","English: Web Novel Pub":"webnovelworld","English: White Moonlight Novels":"whitemoonlightnovels","English: Wook's Teahouse":"wooksteahouse","English: WordExcerpt":"wordexcerpt","English: WTR-LAB":"WTRLAB","English: Wuxiafox":"wuxiacity","English: Fans MTL":"wuxiamtl","English: Wuxiabox":"wuxiap","English: Wuxia Space":"wuxiaspace","English: WuxiaV":"wuxiav","English: Wuxia World":"wuxiaworld","English: WuxiaWorld.Site":"wuxiaworld.site","English: Zetro Translation":"zetroTL","Français: Chireads":"chireads","Français: HarkenEliwood":"harkeneliwood","Français: KissWood":"kisswood","Français: Ligh Novel FR":"lightnovelfr","Français: MTL Novel (FR)":"mtlnovel-fr","Français: NovelDeGlace":"noveldeglace","Français: Novhell":"novhell","Français: PhenixScans":"phenixscans","Français: Warrior Legend Trad":"warriorlegendtrad","Français: WorldNovel":"worldnovel","Français: WuxiaLnScantrad":"wuxialnscantrad","Français: Xiaowaz":"xiaowaz","Bahasa Indonesia: Baca Light Novel":"bacalightnovel","Bahasa Indonesia: IndoWebNovel":"IDWN.id","Bahasa Indonesia: MeioNovel":"meionovel","Bahasa Indonesia: Risenovel":"morenovel","Bahasa Indonesia: MTL Novel (ID)":"mtlnovel-id","Bahasa Indonesia: NovelBookID":"novelbookid","Bahasa Indonesia: NovelRingan":"novelringan.com","Bahasa Indonesia: SakuraNovel":"sakura.id","Bahasa Indonesia: Sekte Novel":"sektenovel","Bahasa Indonesia: WBNovel":"wbnovel","日本語: kakuyomu":"kakuyomu","日本語: Syosetu":"yomou.syosetu","조선말, 한국어: Agitoon":"agit.xyz","Polski: Novelki":"novelki.pl","Português: Better Novels":"betternovels","Português: Blog do Amon Novels":"blogdoamonnovels","Português: Central Novel":"centralnovel","Português: Kiniga":"kiniga","Português: LaNovels":"lanovels","Português: Light Novel Brasil":"lightnovelbrasil","Português: MTL Novel (PT)":"mtlnovel-pt","Português: Novel Mania":"novelmania.com.br","Português: Tsundoku Traduções":"tsundoku","Русский: Автор Тудей":"AT","Русский: Bookhamster":"bookhamster","Русский: Bookriver":"bookriver","Русский: Erolate":"erolate","Русский: EzNovels":"eznovels","Русский: ficbook":"ficbook","Русский: LitSpace":"freedlit.space","Русский: Свободный Мир Ранобэ":"ifreedom","Русский: Jaomix":"jaomix.ru","Русский: MTL Novel (RU)":"mtlnovel-ru","Русский: Neobook":"neobook","Русский: НовелОВХ":"novelovh","Русский: Ranobes (RU)":"ranobes-ru","Русский: Renovels":"ReN","Русский: RanobeLib":"RLIB","Русский: RanobeHub":"RNBH.org","Русский: РанобэРФ":"RNRF","Русский: Rulate":"rulate","Русский: Ruvers":"RV","Русский: NovelTL":"TL","Русский: ТопЛиба":"TopLiba","Русский: Целлюлоза":"zelluloza","Español: AllNovelRead":"allnovelread","Español: Hasu Translations":"HasuTL","Español: LightNovelDaily":"lightnoveldaily","Español: MTL Novel (ES)":"mtlnovel-es","Español: Novelas Ligera":"novelasligera","Español: Oasis Translations":"oasistranslations","Español: Pancho Translations":"panchotranslations","Español: ReinoWuxia":"reinowuxia","Español: SkyNovels":"skynovels","Español: Traducciones Amistosas":"traducciones","Español: TuNovelaLigera":"tunovelaligera","Español: Yuuki Tls":"yuukitls","ไทย: Novel Lucky":"novel-lucky","ไทย: Novel PDF":"novelpdf","Türkçe: Araz Novel":"azraznovel","Türkçe: E-KİTAPLAR":"ekitaplar","Türkçe: EpikNovel":"epiknovel","Türkçe: Kodeks Library":"kodekslibrary","Türkçe: NABİ SCANS":"nabiscans","Türkçe: Namevt":"namevt","Türkçe: Novel oku":"noveloku","Türkçe: Novelokutr":"novelokutr","Türkçe: NovelTR":"noveltr","Türkçe: ThNovels":"thnovels","Türkçe: TurkceLightNovels":"turkcelightnovels","Türkçe: WebNovelOku":"webnoveloku","Українська: Смаколики":"smakolykytl","Tiếng Việt: Light Novel VN":"lightnovel.vn","Tiếng Việt: Hako":"ln.hako","Tiếng Việt: Nettruyen":"nettruyen","Tiếng Việt: Truyện Chữ":"truyenchu","Tiếng Việt: Truyen Conect":"truyenconect","Tiếng Việt: Truyện Full":"truyenfull"} \ No newline at end of file +{"‎العربية: ArNovel":"arnovel","‎العربية: Azora":"azora","‎العربية: dilar tube":"dilartube","‎العربية: HizoManga":"hizomanga","‎العربية: Kol Novel":"kolnovel","‎العربية: Novel4Up":"novel4up","‎العربية: Novels Paradise":"novelsparadise","‎العربية: Olaoe.cyou":"olaoe","‎العربية: Rewayat Club":"rewayatclub","‎العربية: Riwyat":"riwyat","‎العربية: Sunovels":"sunovels","中文, 汉语, 漢語: 69书吧":"69xinshu","中文, 汉语, 漢語: Linovelib":"linovelib","中文, 汉语, 漢語: Linovelib(繁體)":"linovelib_tw","English: FirstKissNovel":"1stkissnovel","English: AllNovelFull":"anf.net","English: Arcane Translations":"arcane","English: Archive Of Our Own":"archiveofourown","English: Srank Manga":"asuralightnovel","English: Belle Reservoir":"bellereservoir","English: BestLightNovel":"BLN","English: BoxNovel":"boxnovel","English: Citrus Aurora":"citrusaurora","English: Coral Boutique":"coralboutique","English: CPUnovel":"cpunovel","English: DaoNovel":"daonovel","English: DaoTranslate":"daotranslate","English: Divine Dao Library":"DDL.com","English: Dragon Tea":"dragontea","English: Dream Big Translations":"dreambigtl","English: Dusk Blossoms":"duskblossoms","English: Early Novel":"earlynovel","English: ElloTL":"ellotl","English: Eternalune":"eternalune","English: FanNovel":"fannovel","English: Fans Translations":"fanstranslations","English: Fenrir Translations":"fenrir","English: Foxaholic":"foxaholic","English: Foxteller":"foxteller","English: Faq Wiki":"FWK.US","English: Free Web Novel":"FWN.com","English: Galaxy Translations":"galaxytranslations","English: Genesis":"genesistudio","English: Guavaread":"guavaread","English: Hiraeth Translation":"hiraethtranslation","English: HotNovelPub":"hotnovelpub","English: Ippotranslations":"ippotranslations","English: KnoxT":"knoxt","English: Lib Read":"libread","English: LightNovelCave":"lightnovelcave","English: LightNovelPub":"lightnovelpub","English: LightNovelPub Vip":"lightnovelpubvip","English: Light Novel Updates":"LightNovelUpdates","English: LightNovelWord":"lightnovelworld","English: LightNovelHeaven":"lnheaven","English: LnMTL":"lnmtl","English: Ltnovel":"ltnovel","English: LunarLetters":"lunarletters","English: Meownovel":"meownovel","English: Moonlight Novels":"moonlightnovel","English: MostNovel":"mostnovel","English: MTL-Novel":"mtl-novel","English: MTL Novel":"mtlnovel","English: MTL Reader":"mtlreader","English: MVLEMPYR":"mvlempyr.com","English: MysticalSeries":"mysticalmerries","English: NeoSekai Translations":"neosekaiTLS","English: Nitro Manga":"nitromanga","English: novelsOnline":"NO.net","English: NobleMTL":"noblemtl","English: Novel Bin":"novelbin","English: NovelBuddy.io":"novelbuddy","English: Novel Fire":"novelfire","English: NovelFull":"novelfull","English: Novel Hall":"novelhall","English: NovelMultiverse":"novelmultiverse","English: NovelsKnight":"novelsknight","English: NovelTranslate":"novelTL","English: Novel Updates":"novelupdates","English: Panda Machine Translations":"pandamtl","English: Pastel Tales":"pasteltales","English: PawRead":"pawread","English: Rainofsnow":"rainofsnow","English: Ranobes":"ranobes","English: ReadNovelFull":"readnovelfull","English: Re:Library":"ReLib","English: Requiem Translations":"requiemtls","English: ReadLiteNovel":"rln.app","English: Royal Road":"royalroad","English: Salmon Latte":"salmonlatte","English: Scribble Hub":"scribblehub","English: SleepyTranslations":"sleeptTLS","English: SonicMTL":"sonicmtl","English: StorySeedling":"storyseedling","English: System Translation":"systemtranslation","English: TranslatinOtaku":"translatinotaku","English: Universal Novel":"universalnovel","English: VyNovel":"vynovel","English: Webnovel":"webnovel","English: WebNovelLover":"webnovelover","English: Web Novel Pub":"webnovelworld","English: White Moonlight Novels":"whitemoonlightnovels","English: Wook's Teahouse":"wooksteahouse","English: WordExcerpt":"wordexcerpt","English: WTR-LAB":"WTRLAB","English: Wuxiafox":"wuxiacity","English: Fans MTL":"wuxiamtl","English: Wuxiabox":"wuxiap","English: Wuxia Space":"wuxiaspace","English: WuxiaV":"wuxiav","English: Wuxia World":"wuxiaworld","English: WuxiaWorld.Site":"wuxiaworld.site","English: Zetro Translation":"zetroTL","Français: Chireads":"chireads","Français: HarkenEliwood":"harkeneliwood","Français: KissWood":"kisswood","Français: Ligh Novel FR":"lightnovelfr","Français: MTL Novel (FR)":"mtlnovel-fr","Français: NovelDeGlace":"noveldeglace","Français: Novhell":"novhell","Français: PhenixScans":"phenixscans","Français: Warrior Legend Trad":"warriorlegendtrad","Français: WorldNovel":"worldnovel","Français: WuxiaLnScantrad":"wuxialnscantrad","Français: Xiaowaz":"xiaowaz","Bahasa Indonesia: Baca Light Novel":"bacalightnovel","Bahasa Indonesia: IndoWebNovel":"IDWN.id","Bahasa Indonesia: MeioNovel":"meionovel","Bahasa Indonesia: Risenovel":"morenovel","Bahasa Indonesia: MTL Novel (ID)":"mtlnovel-id","Bahasa Indonesia: NovelBookID":"novelbookid","Bahasa Indonesia: NovelRingan":"novelringan.com","Bahasa Indonesia: SakuraNovel":"sakura.id","Bahasa Indonesia: Sekte Novel":"sektenovel","Bahasa Indonesia: WBNovel":"wbnovel","日本語: kakuyomu":"kakuyomu","日本語: Syosetu":"yomou.syosetu","조선말, 한국어: Agitoon":"agit.xyz","Polski: Novelki":"novelki.pl","Português: Better Novels":"betternovels","Português: Blog do Amon Novels":"blogdoamonnovels","Português: Central Novel":"centralnovel","Português: Kiniga":"kiniga","Português: LaNovels":"lanovels","Português: Light Novel Brasil":"lightnovelbrasil","Português: MTL Novel (PT)":"mtlnovel-pt","Português: Novel Mania":"novelmania.com.br","Português: Tsundoku Traduções":"tsundoku","Русский: Автор Тудей":"AT","Русский: Bookhamster":"bookhamster","Русский: Bookriver":"bookriver","Русский: Erolate":"erolate","Русский: EzNovels":"eznovels","Русский: ficbook":"ficbook","Русский: LitSpace":"freedlit.space","Русский: Свободный Мир Ранобэ":"ifreedom","Русский: Jaomix":"jaomix.ru","Русский: MTL Novel (RU)":"mtlnovel-ru","Русский: Neobook":"neobook","Русский: НовелОВХ":"novelovh","Русский: Ranobes (RU)":"ranobes-ru","Русский: Renovels":"ReN","Русский: RanobeLib":"RLIB","Русский: RanobeHub":"RNBH.org","Русский: РанобэРФ":"RNRF","Русский: Rulate":"rulate","Русский: Ruvers":"RV","Русский: NovelTL":"TL","Русский: ТопЛиба":"TopLiba","Русский: Целлюлоза":"zelluloza","Español: AllNovelRead":"allnovelread","Español: Hasu Translations":"HasuTL","Español: LightNovelDaily":"lightnoveldaily","Español: MTL Novel (ES)":"mtlnovel-es","Español: Novelas Ligera":"novelasligera","Español: Oasis Translations":"oasistranslations","Español: Pancho Translations":"panchotranslations","Español: ReinoWuxia":"reinowuxia","Español: SkyNovels":"skynovels","Español: Traducciones Amistosas":"traducciones","Español: TuNovelaLigera":"tunovelaligera","Español: Yuuki Tls":"yuukitls","ไทย: Novel Lucky":"novel-lucky","ไทย: Novel PDF":"novelpdf","Türkçe: Araz Novel":"azraznovel","Türkçe: E-KİTAPLAR":"ekitaplar","Türkçe: EpikNovel":"epiknovel","Türkçe: Kodeks Library":"kodekslibrary","Türkçe: NABİ SCANS":"nabiscans","Türkçe: Namevt":"namevt","Türkçe: Novel oku":"noveloku","Türkçe: Novelokutr":"novelokutr","Türkçe: NovelTR":"noveltr","Türkçe: ThNovels":"thnovels","Türkçe: TurkceLightNovels":"turkcelightnovels","Türkçe: WebNovelOku":"webnoveloku","Українська: Смаколики":"smakolykytl","Tiếng Việt: Light Novel VN":"lightnovel.vn","Tiếng Việt: Hako":"ln.hako","Tiếng Việt: Nettruyen":"nettruyen","Tiếng Việt: Truyện Chữ":"truyenchu","Tiếng Việt: Truyen Conect":"truyenconect","Tiếng Việt: Truyện Full":"truyenfull","Multi: Komga":"komga"} \ No newline at end of file From 61aa43af6c3218f806754cec5304f5e64ddd60ac Mon Sep 17 00:00:00 2001 From: cd-z Date: Mon, 30 Dec 2024 20:29:05 +0100 Subject: [PATCH 38/50] ignore if not plugin issue --- .github/workflows/issue_auto_label.yml | 1 + .github/workflows/update_plugin_list.yml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/issue_auto_label.yml b/.github/workflows/issue_auto_label.yml index c66c040c9..8fd97e1a5 100644 --- a/.github/workflows/issue_auto_label.yml +++ b/.github/workflows/issue_auto_label.yml @@ -8,6 +8,7 @@ on: jobs: auto-label: + if: ${{ github.event.issue.body && contains(github.event.issue.body, '### Plugin') }} runs-on: ubuntu-latest steps: diff --git a/.github/workflows/update_plugin_list.yml b/.github/workflows/update_plugin_list.yml index b014f3fc0..bbffba5b1 100644 --- a/.github/workflows/update_plugin_list.yml +++ b/.github/workflows/update_plugin_list.yml @@ -9,7 +9,7 @@ on: jobs: update_template: - # if: github.repository == 'LNReader/lnreader-plugins' + if: github.repository == 'LNReader/lnreader-plugins' runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 From 98902a3555ce9684fd73ee9008d0e8ccbf6dcb7d Mon Sep 17 00:00:00 2001 From: cd-z Date: Sun, 5 Jan 2025 13:51:17 +0100 Subject: [PATCH 39/50] add string infront of labels --- .github/workflows/issue_auto_label.yml | 10 ++++++++-- .github/workflows/update_plugin_list.yml | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.github/workflows/issue_auto_label.yml b/.github/workflows/issue_auto_label.yml index 8fd97e1a5..84c54a1da 100644 --- a/.github/workflows/issue_auto_label.yml +++ b/.github/workflows/issue_auto_label.yml @@ -42,7 +42,13 @@ jobs: id: determine-label run: | LABELS="$( jq --arg keys "${{ env.SELECTED_PLUGIN }}" '. as $data | $keys | split(", ") as $keyList | $keyList[] | . as $key | if $data[$key] != null then $data[$key] else empty end' ./.github/scripts/keys.json | sed 's/"//g' )" - printf "LABELS<> $GITHUB_ENV + + # Add "Plugin: " in front of each label + LABELS_WITH_PREFIX="$(echo "$LABELS" | sed 's/^/Plugin: /')" + + # Save to GitHub environment + printf "LABELS<> $GITHUB_ENV + - name: Add label to the issue if: env.LABELS != '' @@ -50,7 +56,7 @@ jobs: with: labels: | BUG - ${{ env.SELECTED_SEVERITY }} + Severity: ${{ env.SELECTED_SEVERITY }} ${{ env.LABELS }} - name: Handle missing label diff --git a/.github/workflows/update_plugin_list.yml b/.github/workflows/update_plugin_list.yml index bbffba5b1..a900588b9 100644 --- a/.github/workflows/update_plugin_list.yml +++ b/.github/workflows/update_plugin_list.yml @@ -9,7 +9,7 @@ on: jobs: update_template: - if: github.repository == 'LNReader/lnreader-plugins' + # if: github.repository == 'LNReader/lnreader-plugins' && github.event.workflow_run.conclusion == 'success' runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 From e170f5bd18f29ef6db1d059d50fbc65884bbae0e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 5 Jan 2025 12:52:13 +0000 Subject: [PATCH 40/50] Update issue template with plugin dropdown options --- .github/ISSUE_TEMPLATE/report_issue.yml | 1 + .github/scripts/keys.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/report_issue.yml b/.github/ISSUE_TEMPLATE/report_issue.yml index 602c53af5..7279c6446 100644 --- a/.github/ISSUE_TEMPLATE/report_issue.yml +++ b/.github/ISSUE_TEMPLATE/report_issue.yml @@ -147,6 +147,7 @@ body: - "日本語: kakuyomu" - "日本語: Syosetu" - "조선말, 한국어: Agitoon" + - "조선말, 한국어: Fortune Eternal" - "Polski: Novelki" - "Português: Better Novels" - "Português: Blog do Amon Novels" diff --git a/.github/scripts/keys.json b/.github/scripts/keys.json index 411acb4ea..684e86aae 100644 --- a/.github/scripts/keys.json +++ b/.github/scripts/keys.json @@ -1 +1 @@ -{"‎العربية: ArNovel":"arnovel","‎العربية: Azora":"azora","‎العربية: dilar tube":"dilartube","‎العربية: HizoManga":"hizomanga","‎العربية: Kol Novel":"kolnovel","‎العربية: Novel4Up":"novel4up","‎العربية: Novels Paradise":"novelsparadise","‎العربية: Olaoe.cyou":"olaoe","‎العربية: Rewayat Club":"rewayatclub","‎العربية: Riwyat":"riwyat","‎العربية: Sunovels":"sunovels","中文, 汉语, 漢語: 69书吧":"69xinshu","中文, 汉语, 漢語: Linovelib":"linovelib","中文, 汉语, 漢語: Linovelib(繁體)":"linovelib_tw","English: FirstKissNovel":"1stkissnovel","English: AllNovelFull":"anf.net","English: Arcane Translations":"arcane","English: Archive Of Our Own":"archiveofourown","English: Srank Manga":"asuralightnovel","English: Belle Reservoir":"bellereservoir","English: BestLightNovel":"BLN","English: BoxNovel":"boxnovel","English: Citrus Aurora":"citrusaurora","English: Coral Boutique":"coralboutique","English: CPUnovel":"cpunovel","English: DaoNovel":"daonovel","English: DaoTranslate":"daotranslate","English: Divine Dao Library":"DDL.com","English: Dragon Tea":"dragontea","English: Dream Big Translations":"dreambigtl","English: Dusk Blossoms":"duskblossoms","English: Early Novel":"earlynovel","English: ElloTL":"ellotl","English: Eternalune":"eternalune","English: FanNovel":"fannovel","English: Fans Translations":"fanstranslations","English: Fenrir Translations":"fenrir","English: Foxaholic":"foxaholic","English: Foxteller":"foxteller","English: Faq Wiki":"FWK.US","English: Free Web Novel":"FWN.com","English: Galaxy Translations":"galaxytranslations","English: Genesis":"genesistudio","English: Guavaread":"guavaread","English: Hiraeth Translation":"hiraethtranslation","English: HotNovelPub":"hotnovelpub","English: Ippotranslations":"ippotranslations","English: KnoxT":"knoxt","English: Lib Read":"libread","English: LightNovelCave":"lightnovelcave","English: LightNovelPub":"lightnovelpub","English: LightNovelPub Vip":"lightnovelpubvip","English: Light Novel Updates":"LightNovelUpdates","English: LightNovelWord":"lightnovelworld","English: LightNovelHeaven":"lnheaven","English: LnMTL":"lnmtl","English: Ltnovel":"ltnovel","English: LunarLetters":"lunarletters","English: Meownovel":"meownovel","English: Moonlight Novels":"moonlightnovel","English: MostNovel":"mostnovel","English: MTL-Novel":"mtl-novel","English: MTL Novel":"mtlnovel","English: MTL Reader":"mtlreader","English: MVLEMPYR":"mvlempyr.com","English: MysticalSeries":"mysticalmerries","English: NeoSekai Translations":"neosekaiTLS","English: Nitro Manga":"nitromanga","English: novelsOnline":"NO.net","English: NobleMTL":"noblemtl","English: Novel Bin":"novelbin","English: NovelBuddy.io":"novelbuddy","English: Novel Fire":"novelfire","English: NovelFull":"novelfull","English: Novel Hall":"novelhall","English: NovelMultiverse":"novelmultiverse","English: NovelsKnight":"novelsknight","English: NovelTranslate":"novelTL","English: Novel Updates":"novelupdates","English: Panda Machine Translations":"pandamtl","English: Pastel Tales":"pasteltales","English: PawRead":"pawread","English: Rainofsnow":"rainofsnow","English: Ranobes":"ranobes","English: ReadNovelFull":"readnovelfull","English: Re:Library":"ReLib","English: Requiem Translations":"requiemtls","English: ReadLiteNovel":"rln.app","English: Royal Road":"royalroad","English: Salmon Latte":"salmonlatte","English: Scribble Hub":"scribblehub","English: SleepyTranslations":"sleeptTLS","English: SonicMTL":"sonicmtl","English: StorySeedling":"storyseedling","English: System Translation":"systemtranslation","English: TranslatinOtaku":"translatinotaku","English: Universal Novel":"universalnovel","English: VyNovel":"vynovel","English: Webnovel":"webnovel","English: WebNovelLover":"webnovelover","English: Web Novel Pub":"webnovelworld","English: White Moonlight Novels":"whitemoonlightnovels","English: Wook's Teahouse":"wooksteahouse","English: WordExcerpt":"wordexcerpt","English: WTR-LAB":"WTRLAB","English: Wuxiafox":"wuxiacity","English: Fans MTL":"wuxiamtl","English: Wuxiabox":"wuxiap","English: Wuxia Space":"wuxiaspace","English: WuxiaV":"wuxiav","English: Wuxia World":"wuxiaworld","English: WuxiaWorld.Site":"wuxiaworld.site","English: Zetro Translation":"zetroTL","Français: Chireads":"chireads","Français: HarkenEliwood":"harkeneliwood","Français: KissWood":"kisswood","Français: Ligh Novel FR":"lightnovelfr","Français: MTL Novel (FR)":"mtlnovel-fr","Français: NovelDeGlace":"noveldeglace","Français: Novhell":"novhell","Français: PhenixScans":"phenixscans","Français: Warrior Legend Trad":"warriorlegendtrad","Français: WorldNovel":"worldnovel","Français: WuxiaLnScantrad":"wuxialnscantrad","Français: Xiaowaz":"xiaowaz","Bahasa Indonesia: Baca Light Novel":"bacalightnovel","Bahasa Indonesia: IndoWebNovel":"IDWN.id","Bahasa Indonesia: MeioNovel":"meionovel","Bahasa Indonesia: Risenovel":"morenovel","Bahasa Indonesia: MTL Novel (ID)":"mtlnovel-id","Bahasa Indonesia: NovelBookID":"novelbookid","Bahasa Indonesia: NovelRingan":"novelringan.com","Bahasa Indonesia: SakuraNovel":"sakura.id","Bahasa Indonesia: Sekte Novel":"sektenovel","Bahasa Indonesia: WBNovel":"wbnovel","日本語: kakuyomu":"kakuyomu","日本語: Syosetu":"yomou.syosetu","조선말, 한국어: Agitoon":"agit.xyz","Polski: Novelki":"novelki.pl","Português: Better Novels":"betternovels","Português: Blog do Amon Novels":"blogdoamonnovels","Português: Central Novel":"centralnovel","Português: Kiniga":"kiniga","Português: LaNovels":"lanovels","Português: Light Novel Brasil":"lightnovelbrasil","Português: MTL Novel (PT)":"mtlnovel-pt","Português: Novel Mania":"novelmania.com.br","Português: Tsundoku Traduções":"tsundoku","Русский: Автор Тудей":"AT","Русский: Bookhamster":"bookhamster","Русский: Bookriver":"bookriver","Русский: Erolate":"erolate","Русский: EzNovels":"eznovels","Русский: ficbook":"ficbook","Русский: LitSpace":"freedlit.space","Русский: Свободный Мир Ранобэ":"ifreedom","Русский: Jaomix":"jaomix.ru","Русский: MTL Novel (RU)":"mtlnovel-ru","Русский: Neobook":"neobook","Русский: НовелОВХ":"novelovh","Русский: Ranobes (RU)":"ranobes-ru","Русский: Renovels":"ReN","Русский: RanobeLib":"RLIB","Русский: RanobeHub":"RNBH.org","Русский: РанобэРФ":"RNRF","Русский: Rulate":"rulate","Русский: Ruvers":"RV","Русский: NovelTL":"TL","Русский: ТопЛиба":"TopLiba","Русский: Целлюлоза":"zelluloza","Español: AllNovelRead":"allnovelread","Español: Hasu Translations":"HasuTL","Español: LightNovelDaily":"lightnoveldaily","Español: MTL Novel (ES)":"mtlnovel-es","Español: Novelas Ligera":"novelasligera","Español: Oasis Translations":"oasistranslations","Español: Pancho Translations":"panchotranslations","Español: ReinoWuxia":"reinowuxia","Español: SkyNovels":"skynovels","Español: Traducciones Amistosas":"traducciones","Español: TuNovelaLigera":"tunovelaligera","Español: Yuuki Tls":"yuukitls","ไทย: Novel Lucky":"novel-lucky","ไทย: Novel PDF":"novelpdf","Türkçe: Araz Novel":"azraznovel","Türkçe: E-KİTAPLAR":"ekitaplar","Türkçe: EpikNovel":"epiknovel","Türkçe: Kodeks Library":"kodekslibrary","Türkçe: NABİ SCANS":"nabiscans","Türkçe: Namevt":"namevt","Türkçe: Novel oku":"noveloku","Türkçe: Novelokutr":"novelokutr","Türkçe: NovelTR":"noveltr","Türkçe: ThNovels":"thnovels","Türkçe: TurkceLightNovels":"turkcelightnovels","Türkçe: WebNovelOku":"webnoveloku","Українська: Смаколики":"smakolykytl","Tiếng Việt: Light Novel VN":"lightnovel.vn","Tiếng Việt: Hako":"ln.hako","Tiếng Việt: Nettruyen":"nettruyen","Tiếng Việt: Truyện Chữ":"truyenchu","Tiếng Việt: Truyen Conect":"truyenconect","Tiếng Việt: Truyện Full":"truyenfull","Multi: Komga":"komga"} \ No newline at end of file +{"‎العربية: ArNovel":"arnovel","‎العربية: Azora":"azora","‎العربية: dilar tube":"dilartube","‎العربية: HizoManga":"hizomanga","‎العربية: Kol Novel":"kolnovel","‎العربية: Novel4Up":"novel4up","‎العربية: Novels Paradise":"novelsparadise","‎العربية: Olaoe.cyou":"olaoe","‎العربية: Rewayat Club":"rewayatclub","‎العربية: Riwyat":"riwyat","‎العربية: Sunovels":"sunovels","中文, 汉语, 漢語: 69书吧":"69xinshu","中文, 汉语, 漢語: Linovelib":"linovelib","中文, 汉语, 漢語: Linovelib(繁體)":"linovelib_tw","English: FirstKissNovel":"1stkissnovel","English: AllNovelFull":"anf.net","English: Arcane Translations":"arcane","English: Archive Of Our Own":"archiveofourown","English: Srank Manga":"asuralightnovel","English: Belle Reservoir":"bellereservoir","English: BestLightNovel":"BLN","English: BoxNovel":"boxnovel","English: Citrus Aurora":"citrusaurora","English: Coral Boutique":"coralboutique","English: CPUnovel":"cpunovel","English: DaoNovel":"daonovel","English: DaoTranslate":"daotranslate","English: Divine Dao Library":"DDL.com","English: Dragon Tea":"dragontea","English: Dream Big Translations":"dreambigtl","English: Dusk Blossoms":"duskblossoms","English: Early Novel":"earlynovel","English: ElloTL":"ellotl","English: Eternalune":"eternalune","English: FanNovel":"fannovel","English: Fans Translations":"fanstranslations","English: Fenrir Translations":"fenrir","English: Foxaholic":"foxaholic","English: Foxteller":"foxteller","English: Faq Wiki":"FWK.US","English: Free Web Novel":"FWN.com","English: Galaxy Translations":"galaxytranslations","English: Genesis":"genesistudio","English: Guavaread":"guavaread","English: Hiraeth Translation":"hiraethtranslation","English: HotNovelPub":"hotnovelpub","English: Ippotranslations":"ippotranslations","English: KnoxT":"knoxt","English: Lib Read":"libread","English: LightNovelCave":"lightnovelcave","English: LightNovelPub":"lightnovelpub","English: LightNovelPub Vip":"lightnovelpubvip","English: Light Novel Updates":"LightNovelUpdates","English: LightNovelWord":"lightnovelworld","English: LightNovelHeaven":"lnheaven","English: LnMTL":"lnmtl","English: Ltnovel":"ltnovel","English: LunarLetters":"lunarletters","English: Meownovel":"meownovel","English: Moonlight Novels":"moonlightnovel","English: MostNovel":"mostnovel","English: MTL-Novel":"mtl-novel","English: MTL Novel":"mtlnovel","English: MTL Reader":"mtlreader","English: MVLEMPYR":"mvlempyr.com","English: MysticalSeries":"mysticalmerries","English: NeoSekai Translations":"neosekaiTLS","English: Nitro Manga":"nitromanga","English: novelsOnline":"NO.net","English: NobleMTL":"noblemtl","English: Novel Bin":"novelbin","English: NovelBuddy.io":"novelbuddy","English: Novel Fire":"novelfire","English: NovelFull":"novelfull","English: Novel Hall":"novelhall","English: NovelMultiverse":"novelmultiverse","English: NovelsKnight":"novelsknight","English: NovelTranslate":"novelTL","English: Novel Updates":"novelupdates","English: Panda Machine Translations":"pandamtl","English: Pastel Tales":"pasteltales","English: PawRead":"pawread","English: Rainofsnow":"rainofsnow","English: Ranobes":"ranobes","English: ReadNovelFull":"readnovelfull","English: Re:Library":"ReLib","English: Requiem Translations":"requiemtls","English: ReadLiteNovel":"rln.app","English: Royal Road":"royalroad","English: Salmon Latte":"salmonlatte","English: Scribble Hub":"scribblehub","English: SleepyTranslations":"sleeptTLS","English: SonicMTL":"sonicmtl","English: StorySeedling":"storyseedling","English: System Translation":"systemtranslation","English: TranslatinOtaku":"translatinotaku","English: Universal Novel":"universalnovel","English: VyNovel":"vynovel","English: Webnovel":"webnovel","English: WebNovelLover":"webnovelover","English: Web Novel Pub":"webnovelworld","English: White Moonlight Novels":"whitemoonlightnovels","English: Wook's Teahouse":"wooksteahouse","English: WordExcerpt":"wordexcerpt","English: WTR-LAB":"WTRLAB","English: Wuxiafox":"wuxiacity","English: Fans MTL":"wuxiamtl","English: Wuxiabox":"wuxiap","English: Wuxia Space":"wuxiaspace","English: WuxiaV":"wuxiav","English: Wuxia World":"wuxiaworld","English: WuxiaWorld.Site":"wuxiaworld.site","English: Zetro Translation":"zetroTL","Français: Chireads":"chireads","Français: HarkenEliwood":"harkeneliwood","Français: KissWood":"kisswood","Français: Ligh Novel FR":"lightnovelfr","Français: MTL Novel (FR)":"mtlnovel-fr","Français: NovelDeGlace":"noveldeglace","Français: Novhell":"novhell","Français: PhenixScans":"phenixscans","Français: Warrior Legend Trad":"warriorlegendtrad","Français: WorldNovel":"worldnovel","Français: WuxiaLnScantrad":"wuxialnscantrad","Français: Xiaowaz":"xiaowaz","Bahasa Indonesia: Baca Light Novel":"bacalightnovel","Bahasa Indonesia: IndoWebNovel":"IDWN.id","Bahasa Indonesia: MeioNovel":"meionovel","Bahasa Indonesia: Risenovel":"morenovel","Bahasa Indonesia: MTL Novel (ID)":"mtlnovel-id","Bahasa Indonesia: NovelBookID":"novelbookid","Bahasa Indonesia: NovelRingan":"novelringan.com","Bahasa Indonesia: SakuraNovel":"sakura.id","Bahasa Indonesia: Sekte Novel":"sektenovel","Bahasa Indonesia: WBNovel":"wbnovel","日本語: kakuyomu":"kakuyomu","日本語: Syosetu":"yomou.syosetu","조선말, 한국어: Agitoon":"agit.xyz","조선말, 한국어: Fortune Eternal":"fortuneeternal","Polski: Novelki":"novelki.pl","Português: Better Novels":"betternovels","Português: Blog do Amon Novels":"blogdoamonnovels","Português: Central Novel":"centralnovel","Português: Kiniga":"kiniga","Português: LaNovels":"lanovels","Português: Light Novel Brasil":"lightnovelbrasil","Português: MTL Novel (PT)":"mtlnovel-pt","Português: Novel Mania":"novelmania.com.br","Português: Tsundoku Traduções":"tsundoku","Русский: Автор Тудей":"AT","Русский: Bookhamster":"bookhamster","Русский: Bookriver":"bookriver","Русский: Erolate":"erolate","Русский: EzNovels":"eznovels","Русский: ficbook":"ficbook","Русский: LitSpace":"freedlit.space","Русский: Свободный Мир Ранобэ":"ifreedom","Русский: Jaomix":"jaomix.ru","Русский: MTL Novel (RU)":"mtlnovel-ru","Русский: Neobook":"neobook","Русский: НовелОВХ":"novelovh","Русский: Ranobes (RU)":"ranobes-ru","Русский: Renovels":"ReN","Русский: RanobeLib":"RLIB","Русский: RanobeHub":"RNBH.org","Русский: РанобэРФ":"RNRF","Русский: Rulate":"rulate","Русский: Ruvers":"RV","Русский: NovelTL":"TL","Русский: ТопЛиба":"TopLiba","Русский: Целлюлоза":"zelluloza","Español: AllNovelRead":"allnovelread","Español: Hasu Translations":"HasuTL","Español: LightNovelDaily":"lightnoveldaily","Español: MTL Novel (ES)":"mtlnovel-es","Español: Novelas Ligera":"novelasligera","Español: Oasis Translations":"oasistranslations","Español: Pancho Translations":"panchotranslations","Español: ReinoWuxia":"reinowuxia","Español: SkyNovels":"skynovels","Español: Traducciones Amistosas":"traducciones","Español: TuNovelaLigera":"tunovelaligera","Español: Yuuki Tls":"yuukitls","ไทย: Novel Lucky":"novel-lucky","ไทย: Novel PDF":"novelpdf","Türkçe: Araz Novel":"azraznovel","Türkçe: E-KİTAPLAR":"ekitaplar","Türkçe: EpikNovel":"epiknovel","Türkçe: Kodeks Library":"kodekslibrary","Türkçe: NABİ SCANS":"nabiscans","Türkçe: Namevt":"namevt","Türkçe: Novel oku":"noveloku","Türkçe: Novelokutr":"novelokutr","Türkçe: NovelTR":"noveltr","Türkçe: ThNovels":"thnovels","Türkçe: TurkceLightNovels":"turkcelightnovels","Türkçe: WebNovelOku":"webnoveloku","Українська: Смаколики":"smakolykytl","Tiếng Việt: Light Novel VN":"lightnovel.vn","Tiếng Việt: Hako":"ln.hako","Tiếng Việt: Nettruyen":"nettruyen","Tiếng Việt: Truyện Chữ":"truyenchu","Tiếng Việt: Truyen Conect":"truyenconect","Tiếng Việt: Truyện Full":"truyenfull","Multi: Komga":"komga"} \ No newline at end of file From d4d5669505f0651bc0f4a68f9bd71598a9fe9a91 Mon Sep 17 00:00:00 2001 From: cd-z Date: Sun, 5 Jan 2025 13:56:16 +0100 Subject: [PATCH 41/50] Test job skip --- .github/workflows/update_plugin_list.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update_plugin_list.yml b/.github/workflows/update_plugin_list.yml index a900588b9..2f0369163 100644 --- a/.github/workflows/update_plugin_list.yml +++ b/.github/workflows/update_plugin_list.yml @@ -9,7 +9,7 @@ on: jobs: update_template: - # if: github.repository == 'LNReader/lnreader-plugins' && github.event.workflow_run.conclusion == 'success' + if: true && github.event.workflow_run.conclusion == 'success' runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 From 5b8734ee2316ef28b19f21ecaba81e88095c75e8 Mon Sep 17 00:00:00 2001 From: cd-z Date: Sun, 5 Jan 2025 13:58:34 +0100 Subject: [PATCH 42/50] Test job skip 2 --- .github/workflows/host_plugins.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/host_plugins.yml b/.github/workflows/host_plugins.yml index f00c6f7c9..86141d35b 100644 --- a/.github/workflows/host_plugins.yml +++ b/.github/workflows/host_plugins.yml @@ -7,7 +7,7 @@ on: jobs: Publish: - if: github.repository == 'LNReader/lnreader-plugins' + # if: github.repository == 'LNReader/lnreader-plugins' runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 From 86728ef9270b48b0eaa05ffb4dd4f576ab27b34b Mon Sep 17 00:00:00 2001 From: cd-z Date: Sun, 5 Jan 2025 14:00:48 +0100 Subject: [PATCH 43/50] Test job skip 2.1 --- .github/workflows/host_plugins.yml | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/.github/workflows/host_plugins.yml b/.github/workflows/host_plugins.yml index 86141d35b..6bb5289e7 100644 --- a/.github/workflows/host_plugins.yml +++ b/.github/workflows/host_plugins.yml @@ -10,18 +10,20 @@ jobs: # if: github.repository == 'LNReader/lnreader-plugins' runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - with: - token: ${{ secrets.REPO_SCOPED_TOKEN }} - - uses: actions/setup-node@v3 - with: - node-version: '20' - - name: Install Dependencies - run: npm install --omit=dev --ignore-scripts + - name: Test + run: echo "Hello World" + # - uses: actions/checkout@v3 + # with: + # token: ${{ secrets.REPO_SCOPED_TOKEN }} + # - uses: actions/setup-node@v3 + # with: + # node-version: '20' + # - name: Install Dependencies + # run: npm install --omit=dev --ignore-scripts - - name: Publish Plugins - run: | - git config user.name "github-actions[bot]" - git config user.email 41898282+github-actions[bot]@users.noreply.github.com - npm run host-linux - shell: bash + # - name: Publish Plugins + # run: | + # git config user.name "github-actions[bot]" + # git config user.email 41898282+github-actions[bot]@users.noreply.github.com + # npm run host-linux + # shell: bash From 9a87808c5d5a403f24acbbb752edb0b150b2fbdd Mon Sep 17 00:00:00 2001 From: cd-z Date: Sun, 5 Jan 2025 14:09:16 +0100 Subject: [PATCH 44/50] reactivated checks --- .github/workflows/host_plugins.yml | 32 +++++++++++------------- .github/workflows/update_plugin_list.yml | 2 +- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/.github/workflows/host_plugins.yml b/.github/workflows/host_plugins.yml index 6bb5289e7..f00c6f7c9 100644 --- a/.github/workflows/host_plugins.yml +++ b/.github/workflows/host_plugins.yml @@ -7,23 +7,21 @@ on: jobs: Publish: - # if: github.repository == 'LNReader/lnreader-plugins' + if: github.repository == 'LNReader/lnreader-plugins' runs-on: ubuntu-latest steps: - - name: Test - run: echo "Hello World" - # - uses: actions/checkout@v3 - # with: - # token: ${{ secrets.REPO_SCOPED_TOKEN }} - # - uses: actions/setup-node@v3 - # with: - # node-version: '20' - # - name: Install Dependencies - # run: npm install --omit=dev --ignore-scripts + - uses: actions/checkout@v3 + with: + token: ${{ secrets.REPO_SCOPED_TOKEN }} + - uses: actions/setup-node@v3 + with: + node-version: '20' + - name: Install Dependencies + run: npm install --omit=dev --ignore-scripts - # - name: Publish Plugins - # run: | - # git config user.name "github-actions[bot]" - # git config user.email 41898282+github-actions[bot]@users.noreply.github.com - # npm run host-linux - # shell: bash + - name: Publish Plugins + run: | + git config user.name "github-actions[bot]" + git config user.email 41898282+github-actions[bot]@users.noreply.github.com + npm run host-linux + shell: bash diff --git a/.github/workflows/update_plugin_list.yml b/.github/workflows/update_plugin_list.yml index 2f0369163..e195b5a15 100644 --- a/.github/workflows/update_plugin_list.yml +++ b/.github/workflows/update_plugin_list.yml @@ -9,7 +9,7 @@ on: jobs: update_template: - if: true && github.event.workflow_run.conclusion == 'success' + if: github.repository == 'LNReader/lnreader-plugins' && github.event.workflow_run.conclusion == 'success' runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 From 42d5f8195a94b829b7f0044d6f08c00e587ffd73 Mon Sep 17 00:00:00 2001 From: cd-z Date: Sun, 5 Jan 2025 14:11:05 +0100 Subject: [PATCH 45/50] Added [skip ci] to commit message --- .github/workflows/update_plugin_list.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update_plugin_list.yml b/.github/workflows/update_plugin_list.yml index e195b5a15..ed2765584 100644 --- a/.github/workflows/update_plugin_list.yml +++ b/.github/workflows/update_plugin_list.yml @@ -30,6 +30,6 @@ jobs: if git diff --cached --quiet; then echo "No changes to commit." else - git commit -m "Update issue template with plugin dropdown options" + git commit -m "[skip ci] Update issue template with plugin dropdown options" git push origin master fi From fc9cf1ddf31c6f8123ad45b1c548200d048833ef Mon Sep 17 00:00:00 2001 From: cd-z Date: Sun, 5 Jan 2025 14:28:48 +0100 Subject: [PATCH 46/50] change label format --- .github/workflows/issue_auto_label.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/issue_auto_label.yml b/.github/workflows/issue_auto_label.yml index 84c54a1da..eaf61aa24 100644 --- a/.github/workflows/issue_auto_label.yml +++ b/.github/workflows/issue_auto_label.yml @@ -41,11 +41,11 @@ jobs: - name: Determine corresponding label id: determine-label run: | - LABELS="$( jq --arg keys "${{ env.SELECTED_PLUGIN }}" '. as $data | $keys | split(", ") as $keyList | $keyList[] | . as $key | if $data[$key] != null then $data[$key] else empty end' ./.github/scripts/keys.json | sed 's/"//g' )" + LABELS="$( jq --arg keys "${{ env.SELECTED_PLUGIN }}" '. as $data | $keys | split(", ") as $keyList | $keyList[] | . as $key | if $data[$key] != null then "\($key)[\($data[$key])]" else empty end' ./.github/scripts/keys.json | sed 's/"//g' | sed 's/^[^:]*: //' )" # Add "Plugin: " in front of each label LABELS_WITH_PREFIX="$(echo "$LABELS" | sed 's/^/Plugin: /')" - + # Save to GitHub environment printf "LABELS<> $GITHUB_ENV From efb1b23647e0d1ca28602ae13d15387c490bd170 Mon Sep 17 00:00:00 2001 From: Patrick Loser Date: Sat, 25 Jan 2025 13:27:27 +0100 Subject: [PATCH 47/50] pr test --- .github/ISSUE_TEMPLATE/report_issue.yml | 410 ++++++++++++----------- .github/scripts/createOptions.cjs | 40 +++ .github/scripts/createOptions.sh | 25 -- .github/scripts/keys.json | 2 +- .github/workflows/update_plugin_list.yml | 33 +- 5 files changed, 265 insertions(+), 245 deletions(-) create mode 100644 .github/scripts/createOptions.cjs delete mode 100644 .github/scripts/createOptions.sh diff --git a/.github/ISSUE_TEMPLATE/report_issue.yml b/.github/ISSUE_TEMPLATE/report_issue.yml index 7279c6446..7cf4c8e22 100644 --- a/.github/ISSUE_TEMPLATE/report_issue.yml +++ b/.github/ISSUE_TEMPLATE/report_issue.yml @@ -10,210 +10,212 @@ body: multiple: true options: - "‎العربية: ArNovel" - - "‎العربية: Azora" - - "‎العربية: dilar tube" - - "‎العربية: HizoManga" - - "‎العربية: Kol Novel" - - "‎العربية: Novel4Up" - - "‎العربية: Novels Paradise" - - "‎العربية: Olaoe.cyou" - - "‎العربية: Rewayat Club" - - "‎العربية: Riwyat" - - "‎العربية: Sunovels" - - "中文, 汉语, 漢語: 69书吧" - - "中文, 汉语, 漢語: Linovelib" - - "中文, 汉语, 漢語: Linovelib(繁體)" - - "English: FirstKissNovel" - - "English: AllNovelFull" - - "English: Arcane Translations" - - "English: Archive Of Our Own" - - "English: Srank Manga" - - "English: Belle Reservoir" - - "English: BestLightNovel" - - "English: BoxNovel" - - "English: Citrus Aurora" - - "English: Coral Boutique" - - "English: CPUnovel" - - "English: DaoNovel" - - "English: DaoTranslate" - - "English: Divine Dao Library" - - "English: Dragon Tea" - - "English: Dream Big Translations" - - "English: Dusk Blossoms" - - "English: Early Novel" - - "English: ElloTL" - - "English: Eternalune" - - "English: FanNovel" - - "English: Fans Translations" - - "English: Fenrir Translations" - - "English: Foxaholic" - - "English: Foxteller" - - "English: Faq Wiki" - - "English: Free Web Novel" - - "English: Galaxy Translations" - - "English: Genesis" - - "English: Guavaread" - - "English: Hiraeth Translation" - - "English: HotNovelPub" - - "English: Ippotranslations" - - "English: KnoxT" - - "English: Lib Read" - - "English: LightNovelCave" - - "English: LightNovelPub" - - "English: LightNovelPub Vip" - - "English: Light Novel Updates" - - "English: LightNovelWord" - - "English: LightNovelHeaven" - - "English: LnMTL" - - "English: Ltnovel" - - "English: LunarLetters" - - "English: Meownovel" - - "English: Moonlight Novels" - - "English: MostNovel" - - "English: MTL-Novel" - - "English: MTL Novel" - - "English: MTL Reader" - - "English: MVLEMPYR" - - "English: MysticalSeries" - - "English: NeoSekai Translations" - - "English: Nitro Manga" - - "English: novelsOnline" - - "English: NobleMTL" - - "English: Novel Bin" - - "English: NovelBuddy.io" - - "English: Novel Fire" - - "English: NovelFull" - - "English: Novel Hall" - - "English: NovelMultiverse" - - "English: NovelsKnight" - - "English: NovelTranslate" - - "English: Novel Updates" - - "English: Panda Machine Translations" - - "English: Pastel Tales" - - "English: PawRead" - - "English: Rainofsnow" - - "English: Ranobes" - - "English: ReadNovelFull" - - "English: Re:Library" - - "English: Requiem Translations" - - "English: ReadLiteNovel" - - "English: Royal Road" - - "English: Salmon Latte" - - "English: Scribble Hub" - - "English: SleepyTranslations" - - "English: SonicMTL" - - "English: StorySeedling" - - "English: System Translation" - - "English: TranslatinOtaku" - - "English: Universal Novel" - - "English: VyNovel" - - "English: Webnovel" - - "English: WebNovelLover" - - "English: Web Novel Pub" - - "English: White Moonlight Novels" - - "English: Wook's Teahouse" - - "English: WordExcerpt" - - "English: WTR-LAB" - - "English: Wuxiafox" - - "English: Fans MTL" - - "English: Wuxiabox" - - "English: Wuxia Space" - - "English: WuxiaV" - - "English: Wuxia World" - - "English: WuxiaWorld.Site" - - "English: Zetro Translation" - - "Français: Chireads" - - "Français: HarkenEliwood" - - "Français: KissWood" - - "Français: Ligh Novel FR" - - "Français: MTL Novel (FR)" - - "Français: NovelDeGlace" - - "Français: Novhell" - - "Français: PhenixScans" - - "Français: Warrior Legend Trad" - - "Français: WorldNovel" - - "Français: WuxiaLnScantrad" - - "Français: Xiaowaz" - - "Bahasa Indonesia: Baca Light Novel" - - "Bahasa Indonesia: IndoWebNovel" - - "Bahasa Indonesia: MeioNovel" - - "Bahasa Indonesia: Risenovel" - - "Bahasa Indonesia: MTL Novel (ID)" - - "Bahasa Indonesia: NovelBookID" - - "Bahasa Indonesia: NovelRingan" - - "Bahasa Indonesia: SakuraNovel" - - "Bahasa Indonesia: Sekte Novel" - - "Bahasa Indonesia: WBNovel" - - "日本語: kakuyomu" - - "日本語: Syosetu" - - "조선말, 한국어: Agitoon" - - "조선말, 한국어: Fortune Eternal" - - "Polski: Novelki" - - "Português: Better Novels" - - "Português: Blog do Amon Novels" - - "Português: Central Novel" - - "Português: Kiniga" - - "Português: LaNovels" - - "Português: Light Novel Brasil" - - "Português: MTL Novel (PT)" - - "Português: Novel Mania" - - "Português: Tsundoku Traduções" - - "Русский: Автор Тудей" - - "Русский: Bookhamster" - - "Русский: Bookriver" - - "Русский: Erolate" - - "Русский: EzNovels" - - "Русский: ficbook" - - "Русский: LitSpace" - - "Русский: Свободный Мир Ранобэ" - - "Русский: Jaomix" - - "Русский: MTL Novel (RU)" - - "Русский: Neobook" - - "Русский: НовелОВХ" - - "Русский: Ranobes (RU)" - - "Русский: Renovels" - - "Русский: RanobeLib" - - "Русский: RanobeHub" - - "Русский: РанобэРФ" - - "Русский: Rulate" - - "Русский: Ruvers" - - "Русский: NovelTL" - - "Русский: ТопЛиба" - - "Русский: Целлюлоза" - - "Español: AllNovelRead" - - "Español: Hasu Translations" - - "Español: LightNovelDaily" - - "Español: MTL Novel (ES)" - - "Español: Novelas Ligera" - - "Español: Oasis Translations" - - "Español: Pancho Translations" - - "Español: ReinoWuxia" - - "Español: SkyNovels" - - "Español: Traducciones Amistosas" - - "Español: TuNovelaLigera" - - "Español: Yuuki Tls" - - "ไทย: Novel Lucky" - - "ไทย: Novel PDF" - - "Türkçe: Araz Novel" - - "Türkçe: E-KİTAPLAR" - - "Türkçe: EpikNovel" - - "Türkçe: Kodeks Library" - - "Türkçe: NABİ SCANS" - - "Türkçe: Namevt" - - "Türkçe: Novel oku" - - "Türkçe: Novelokutr" - - "Türkçe: NovelTR" - - "Türkçe: ThNovels" - - "Türkçe: TurkceLightNovels" - - "Türkçe: WebNovelOku" - - "Українська: Смаколики" - - "Tiếng Việt: Light Novel VN" - - "Tiếng Việt: Hako" - - "Tiếng Việt: Nettruyen" - - "Tiếng Việt: Truyện Chữ" - - "Tiếng Việt: Truyen Conect" - - "Tiếng Việt: Truyện Full" - - "Multi: Komga" + - "‎العربية: Azora" + - "‎العربية: dilar tube" + - "‎العربية: HizoManga" + - "‎العربية: Kol Novel" + - "‎العربية: Novel4Up" + - "‎العربية: Novels Paradise" + - "‎العربية: Olaoe.cyou" + - "‎العربية: Rewayat Club" + - "‎العربية: Riwyat" + - "‎العربية: Sunovels" + - "中文, 汉语, 漢語: 69书吧" + - "中文, 汉语, 漢語: Linovelib" + - "中文, 汉语, 漢語: Linovelib(繁體)" + - "English: FirstKissNovel" + - "English: AllNovelFull" + - "English: Arcane Translations" + - "English: Archive Of Our Own" + - "English: Srank Manga" + - "English: Belle Reservoir" + - "English: BestLightNovel" + - "English: BoxNovel" + - "English: Citrus Aurora" + - "English: Coral Boutique" + - "English: CPUnovel" + - "English: DaoNovel" + - "English: DaoTranslate" + - "English: Divine Dao Library" + - "English: Dragon Tea" + - "English: Dream Big Translations" + - "English: Dusk Blossoms" + - "English: Early Novel" + - "English: ElloTL" + - "English: Eternalune" + - "English: FanNovel" + - "English: Fans Translations" + - "English: Fenrir Translations" + - "English: Foxaholic" + - "English: Foxteller" + - "English: Faq Wiki" + - "English: Free Web Novel" + - "English: Galaxy Translations" + - "English: Genesis" + - "English: Guavaread" + - "English: Hiraeth Translation" + - "English: HotNovelPub" + - "English: Ippotranslations" + - "English: KnoxT" + - "English: Lib Read" + - "English: LightNovelCave" + - "English: LightNovelPub" + - "English: LightNovelPub Vip" + - "English: Light Novel Updates" + - "English: LightNovelWord" + - "English: LightNovelHeaven" + - "English: LnMTL" + - "English: Ltnovel" + - "English: LunarLetters" + - "English: Meownovel" + - "English: Moonlight Novels" + - "English: MostNovel" + - "English: MTL-Novel" + - "English: MTL Novel" + - "English: MTL Reader" + - "English: MVLEMPYR" + - "English: MysticalSeries" + - "English: NeoSekai Translations" + - "English: Nitro Manga" + - "English: novelsOnline" + - "English: NobleMTL" + - "English: Novel Bin" + - "English: NovelBuddy.io" + - "English: Novel Fire" + - "English: NovelFull" + - "English: Novel Hall" + - "English: NovelMultiverse" + - "English: NovelsKnight" + - "English: NovelTranslate" + - "English: Novel Updates" + - "English: Panda Machine Translations" + - "English: Pastel Tales" + - "English: PawRead" + - "English: Rainofsnow" + - "English: Ranobes" + - "English: Read From Net" + - "English: ReadNovelFull" + - "English: Re:Library" + - "English: Requiem Translations" + - "English: ReadLiteNovel" + - "English: Royal Road" + - "English: Salmon Latte" + - "English: Scribble Hub" + - "English: SleepyTranslations" + - "English: SonicMTL" + - "English: StorySeedling" + - "English: System Translation" + - "English: TranslatinOtaku" + - "English: Universal Novel" + - "English: VyNovel" + - "English: Webnovel" + - "English: WebNovelLover" + - "English: Web Novel Pub" + - "English: White Moonlight Novels" + - "English: Wook's Teahouse" + - "English: WordExcerpt" + - "English: WTR-LAB" + - "English: Wuxiafox" + - "English: Fans MTL" + - "English: Wuxiabox" + - "English: Wuxia Space" + - "English: WuxiaV" + - "English: Wuxia World" + - "English: WuxiaWorld.Site" + - "English: Zetro Translation" + - "Français: Chireads" + - "Français: HarkenEliwood" + - "Français: KissWood" + - "Français: Ligh Novel FR" + - "Français: MTL Novel (FR)" + - "Français: NovelDeGlace" + - "Français: Novhell" + - "Français: PhenixScans" + - "Français: Warrior Legend Trad" + - "Français: WorldNovel" + - "Français: WuxiaLnScantrad" + - "Français: Xiaowaz" + - "Bahasa Indonesia: Baca Light Novel" + - "Bahasa Indonesia: IndoWebNovel" + - "Bahasa Indonesia: MeioNovel" + - "Bahasa Indonesia: Risenovel" + - "Bahasa Indonesia: MTL Novel (ID)" + - "Bahasa Indonesia: NovelBookID" + - "Bahasa Indonesia: NovelRingan" + - "Bahasa Indonesia: SakuraNovel" + - "Bahasa Indonesia: Sekte Novel" + - "Bahasa Indonesia: WBNovel" + - "日本語: kakuyomu" + - "日本語: Syosetu" + - "조선말, 한국어: Agitoon" + - "조선말, 한국어: Fortune Eternal" + - "Polski: Novelki" + - "Português: Better Novels" + - "Português: Blog do Amon Novels" + - "Português: Central Novel" + - "Português: Kiniga" + - "Português: LaNovels" + - "Português: Light Novel Brasil" + - "Português: MTL Novel (PT)" + - "Português: Novel Mania" + - "Português: Tsundoku Traduções" + - "Русский: Автор Тудей" + - "Русский: Bookhamster" + - "Русский: Bookriver" + - "Русский: Erolate" + - "Русский: EzNovels" + - "Русский: ficbook" + - "Русский: LitSpace" + - "Русский: Свободный Мир Ранобэ" + - "Русский: Jaomix" + - "Русский: MTL Novel (RU)" + - "Русский: Neobook" + - "Русский: НовелОВХ" + - "Русский: Ranobes (RU)" + - "Русский: Renovels" + - "Русский: RanobeLib" + - "Русский: RanobeHub" + - "Русский: РанобэРФ" + - "Русский: Rulate" + - "Русский: Ruvers" + - "Русский: NovelTL" + - "Русский: ТопЛиба" + - "Русский: Целлюлоза" + - "Español: AllNovelRead" + - "Español: Hasu Translations" + - "Español: LightNovelDaily" + - "Español: MTL Novel (ES)" + - "Español: Novelas Ligera" + - "Español: Oasis Translations" + - "Español: Pancho Translations" + - "Español: ReinoWuxia" + - "Español: SkyNovels" + - "Español: Traducciones Amistosas" + - "Español: TuNovelaLigera" + - "Español: Yuuki Tls" + - "ไทย: Novel Lucky" + - "ไทย: Novel PDF" + - "Türkçe: Araz Novel" + - "Türkçe: E-KİTAPLAR" + - "Türkçe: EpikNovel" + - "Türkçe: Kodeks Library" + - "Türkçe: MangaTR" + - "Türkçe: NABİ SCANS" + - "Türkçe: Namevt" + - "Türkçe: Novel oku" + - "Türkçe: Novelokutr" + - "Türkçe: NovelTR" + - "Türkçe: ThNovels" + - "Türkçe: TurkceLightNovels" + - "Türkçe: WebNovelOku" + - "Українська: Смаколики" + - "Tiếng Việt: Light Novel VN" + - "Tiếng Việt: Hako" + - "Tiếng Việt: Nettruyen" + - "Tiếng Việt: Truyện Chữ" + - "Tiếng Việt: Truyen Conect" + - "Tiếng Việt: Truyện Full" + - "Multi: Komga" validations: required: true diff --git a/.github/scripts/createOptions.cjs b/.github/scripts/createOptions.cjs new file mode 100644 index 000000000..941bd23d9 --- /dev/null +++ b/.github/scripts/createOptions.cjs @@ -0,0 +1,40 @@ +const version = require('../../package.json').version; +const dist = `plugins/v${version}`; +const fs = require('fs'); + +const rawText = fs.readFileSync( + '.github/scripts/blank_report_issue.yml', + 'utf8', +); + +async function main() { + const pluginsRaw = await fetch( + `https://raw.githubusercontent.com/LNReader/lnreader-plugins/${dist}/.dist/plugins.min.json`, + ).then(res => res.json()); + const plugins = pluginsRaw.reduce((arr, plugin) => { + arr[plugin.lang + ': ' + plugin.name] = plugin.id; + return arr; + }, {}); + + let newKeys = Object.keys(plugins); + let savedKeys = []; + try { + let keys = JSON.parse(fs.readFileSync('.github/scripts/keys.json', 'utf8')); + savedKeys = Object.keys(keys); + } catch (err) { + console.log(err); + } + if (!sameKeys(newKeys, savedKeys) && Array.isArray(newKeys)) { + const text = newKeys.join('"\n - "'); + fs.writeFileSync( + '.github/ISSUE_TEMPLATE/report_issue.yml', + rawText.replace(/{#CHANGE#}/g, '- "' + text + '"'), + ); + fs.writeFileSync('.github/scripts/keys.json', JSON.stringify(plugins)); + } + function sameKeys(a, b) { + return a.length === b.length && a.every(value => b.includes(value)); + } +} + +main(); diff --git a/.github/scripts/createOptions.sh b/.github/scripts/createOptions.sh deleted file mode 100644 index 3ad0c66af..000000000 --- a/.github/scripts/createOptions.sh +++ /dev/null @@ -1,25 +0,0 @@ -version=`node -e "console.log(require('./package.json').version);"` -dist="plugins/v$version" - -PLUGINS=$(curl -s https://raw.githubusercontent.com/LNReader/lnreader-plugins/{$dist}/.dist/plugins.min.json | jq '[.[] | {(.lang + ": " + .name): .id}]' | jq 'reduce .[] as $item ({}; . * $item)') - -KEYS=$(echo $PLUGINS | jq 'keys_unsorted') - -node -e " - const fs = require('fs'); - const rawText = fs.readFileSync('.github/scripts/blank_report_issue.yml', 'utf8'); - const newKeys = $KEYS; - let savedKeys = []; - try { - let keys = JSON.parse(fs.readFileSync('.github/scripts/keys.json', 'utf8')); - savedKeys = Object.keys(keys); - } catch(err) {console.log(err)} - if(!sameKeys(newKeys, savedKeys) && Array.isArray(newKeys)) { - const text = newKeys.join('\"\n - \"'); - fs.writeFileSync('.github/ISSUE_TEMPLATE/report_issue.yml', rawText.replace(/{#CHANGE#}/g,'- \"'+ text + '\"' )); - fs.writeFileSync('.github/scripts/keys.json', JSON.stringify($PLUGINS)); - } - function sameKeys(a, b) { - return a.length === b.length && a.every(value => b.includes(value)); - } - " diff --git a/.github/scripts/keys.json b/.github/scripts/keys.json index 684e86aae..90239840d 100644 --- a/.github/scripts/keys.json +++ b/.github/scripts/keys.json @@ -1 +1 @@ -{"‎العربية: ArNovel":"arnovel","‎العربية: Azora":"azora","‎العربية: dilar tube":"dilartube","‎العربية: HizoManga":"hizomanga","‎العربية: Kol Novel":"kolnovel","‎العربية: Novel4Up":"novel4up","‎العربية: Novels Paradise":"novelsparadise","‎العربية: Olaoe.cyou":"olaoe","‎العربية: Rewayat Club":"rewayatclub","‎العربية: Riwyat":"riwyat","‎العربية: Sunovels":"sunovels","中文, 汉语, 漢語: 69书吧":"69xinshu","中文, 汉语, 漢語: Linovelib":"linovelib","中文, 汉语, 漢語: Linovelib(繁體)":"linovelib_tw","English: FirstKissNovel":"1stkissnovel","English: AllNovelFull":"anf.net","English: Arcane Translations":"arcane","English: Archive Of Our Own":"archiveofourown","English: Srank Manga":"asuralightnovel","English: Belle Reservoir":"bellereservoir","English: BestLightNovel":"BLN","English: BoxNovel":"boxnovel","English: Citrus Aurora":"citrusaurora","English: Coral Boutique":"coralboutique","English: CPUnovel":"cpunovel","English: DaoNovel":"daonovel","English: DaoTranslate":"daotranslate","English: Divine Dao Library":"DDL.com","English: Dragon Tea":"dragontea","English: Dream Big Translations":"dreambigtl","English: Dusk Blossoms":"duskblossoms","English: Early Novel":"earlynovel","English: ElloTL":"ellotl","English: Eternalune":"eternalune","English: FanNovel":"fannovel","English: Fans Translations":"fanstranslations","English: Fenrir Translations":"fenrir","English: Foxaholic":"foxaholic","English: Foxteller":"foxteller","English: Faq Wiki":"FWK.US","English: Free Web Novel":"FWN.com","English: Galaxy Translations":"galaxytranslations","English: Genesis":"genesistudio","English: Guavaread":"guavaread","English: Hiraeth Translation":"hiraethtranslation","English: HotNovelPub":"hotnovelpub","English: Ippotranslations":"ippotranslations","English: KnoxT":"knoxt","English: Lib Read":"libread","English: LightNovelCave":"lightnovelcave","English: LightNovelPub":"lightnovelpub","English: LightNovelPub Vip":"lightnovelpubvip","English: Light Novel Updates":"LightNovelUpdates","English: LightNovelWord":"lightnovelworld","English: LightNovelHeaven":"lnheaven","English: LnMTL":"lnmtl","English: Ltnovel":"ltnovel","English: LunarLetters":"lunarletters","English: Meownovel":"meownovel","English: Moonlight Novels":"moonlightnovel","English: MostNovel":"mostnovel","English: MTL-Novel":"mtl-novel","English: MTL Novel":"mtlnovel","English: MTL Reader":"mtlreader","English: MVLEMPYR":"mvlempyr.com","English: MysticalSeries":"mysticalmerries","English: NeoSekai Translations":"neosekaiTLS","English: Nitro Manga":"nitromanga","English: novelsOnline":"NO.net","English: NobleMTL":"noblemtl","English: Novel Bin":"novelbin","English: NovelBuddy.io":"novelbuddy","English: Novel Fire":"novelfire","English: NovelFull":"novelfull","English: Novel Hall":"novelhall","English: NovelMultiverse":"novelmultiverse","English: NovelsKnight":"novelsknight","English: NovelTranslate":"novelTL","English: Novel Updates":"novelupdates","English: Panda Machine Translations":"pandamtl","English: Pastel Tales":"pasteltales","English: PawRead":"pawread","English: Rainofsnow":"rainofsnow","English: Ranobes":"ranobes","English: ReadNovelFull":"readnovelfull","English: Re:Library":"ReLib","English: Requiem Translations":"requiemtls","English: ReadLiteNovel":"rln.app","English: Royal Road":"royalroad","English: Salmon Latte":"salmonlatte","English: Scribble Hub":"scribblehub","English: SleepyTranslations":"sleeptTLS","English: SonicMTL":"sonicmtl","English: StorySeedling":"storyseedling","English: System Translation":"systemtranslation","English: TranslatinOtaku":"translatinotaku","English: Universal Novel":"universalnovel","English: VyNovel":"vynovel","English: Webnovel":"webnovel","English: WebNovelLover":"webnovelover","English: Web Novel Pub":"webnovelworld","English: White Moonlight Novels":"whitemoonlightnovels","English: Wook's Teahouse":"wooksteahouse","English: WordExcerpt":"wordexcerpt","English: WTR-LAB":"WTRLAB","English: Wuxiafox":"wuxiacity","English: Fans MTL":"wuxiamtl","English: Wuxiabox":"wuxiap","English: Wuxia Space":"wuxiaspace","English: WuxiaV":"wuxiav","English: Wuxia World":"wuxiaworld","English: WuxiaWorld.Site":"wuxiaworld.site","English: Zetro Translation":"zetroTL","Français: Chireads":"chireads","Français: HarkenEliwood":"harkeneliwood","Français: KissWood":"kisswood","Français: Ligh Novel FR":"lightnovelfr","Français: MTL Novel (FR)":"mtlnovel-fr","Français: NovelDeGlace":"noveldeglace","Français: Novhell":"novhell","Français: PhenixScans":"phenixscans","Français: Warrior Legend Trad":"warriorlegendtrad","Français: WorldNovel":"worldnovel","Français: WuxiaLnScantrad":"wuxialnscantrad","Français: Xiaowaz":"xiaowaz","Bahasa Indonesia: Baca Light Novel":"bacalightnovel","Bahasa Indonesia: IndoWebNovel":"IDWN.id","Bahasa Indonesia: MeioNovel":"meionovel","Bahasa Indonesia: Risenovel":"morenovel","Bahasa Indonesia: MTL Novel (ID)":"mtlnovel-id","Bahasa Indonesia: NovelBookID":"novelbookid","Bahasa Indonesia: NovelRingan":"novelringan.com","Bahasa Indonesia: SakuraNovel":"sakura.id","Bahasa Indonesia: Sekte Novel":"sektenovel","Bahasa Indonesia: WBNovel":"wbnovel","日本語: kakuyomu":"kakuyomu","日本語: Syosetu":"yomou.syosetu","조선말, 한국어: Agitoon":"agit.xyz","조선말, 한국어: Fortune Eternal":"fortuneeternal","Polski: Novelki":"novelki.pl","Português: Better Novels":"betternovels","Português: Blog do Amon Novels":"blogdoamonnovels","Português: Central Novel":"centralnovel","Português: Kiniga":"kiniga","Português: LaNovels":"lanovels","Português: Light Novel Brasil":"lightnovelbrasil","Português: MTL Novel (PT)":"mtlnovel-pt","Português: Novel Mania":"novelmania.com.br","Português: Tsundoku Traduções":"tsundoku","Русский: Автор Тудей":"AT","Русский: Bookhamster":"bookhamster","Русский: Bookriver":"bookriver","Русский: Erolate":"erolate","Русский: EzNovels":"eznovels","Русский: ficbook":"ficbook","Русский: LitSpace":"freedlit.space","Русский: Свободный Мир Ранобэ":"ifreedom","Русский: Jaomix":"jaomix.ru","Русский: MTL Novel (RU)":"mtlnovel-ru","Русский: Neobook":"neobook","Русский: НовелОВХ":"novelovh","Русский: Ranobes (RU)":"ranobes-ru","Русский: Renovels":"ReN","Русский: RanobeLib":"RLIB","Русский: RanobeHub":"RNBH.org","Русский: РанобэРФ":"RNRF","Русский: Rulate":"rulate","Русский: Ruvers":"RV","Русский: NovelTL":"TL","Русский: ТопЛиба":"TopLiba","Русский: Целлюлоза":"zelluloza","Español: AllNovelRead":"allnovelread","Español: Hasu Translations":"HasuTL","Español: LightNovelDaily":"lightnoveldaily","Español: MTL Novel (ES)":"mtlnovel-es","Español: Novelas Ligera":"novelasligera","Español: Oasis Translations":"oasistranslations","Español: Pancho Translations":"panchotranslations","Español: ReinoWuxia":"reinowuxia","Español: SkyNovels":"skynovels","Español: Traducciones Amistosas":"traducciones","Español: TuNovelaLigera":"tunovelaligera","Español: Yuuki Tls":"yuukitls","ไทย: Novel Lucky":"novel-lucky","ไทย: Novel PDF":"novelpdf","Türkçe: Araz Novel":"azraznovel","Türkçe: E-KİTAPLAR":"ekitaplar","Türkçe: EpikNovel":"epiknovel","Türkçe: Kodeks Library":"kodekslibrary","Türkçe: NABİ SCANS":"nabiscans","Türkçe: Namevt":"namevt","Türkçe: Novel oku":"noveloku","Türkçe: Novelokutr":"novelokutr","Türkçe: NovelTR":"noveltr","Türkçe: ThNovels":"thnovels","Türkçe: TurkceLightNovels":"turkcelightnovels","Türkçe: WebNovelOku":"webnoveloku","Українська: Смаколики":"smakolykytl","Tiếng Việt: Light Novel VN":"lightnovel.vn","Tiếng Việt: Hako":"ln.hako","Tiếng Việt: Nettruyen":"nettruyen","Tiếng Việt: Truyện Chữ":"truyenchu","Tiếng Việt: Truyen Conect":"truyenconect","Tiếng Việt: Truyện Full":"truyenfull","Multi: Komga":"komga"} \ No newline at end of file +{"‎العربية: ArNovel":"arnovel","‎العربية: Azora":"azora","‎العربية: dilar tube":"dilartube","‎العربية: HizoManga":"hizomanga","‎العربية: Kol Novel":"kolnovel","‎العربية: Novel4Up":"novel4up","‎العربية: Novels Paradise":"novelsparadise","‎العربية: Olaoe.cyou":"olaoe","‎العربية: Rewayat Club":"rewayatclub","‎العربية: Riwyat":"riwyat","‎العربية: Sunovels":"sunovels","中文, 汉语, 漢語: 69书吧":"69xinshu","中文, 汉语, 漢語: Linovelib":"linovelib","中文, 汉语, 漢語: Linovelib(繁體)":"linovelib_tw","English: FirstKissNovel":"1stkissnovel","English: AllNovelFull":"anf.net","English: Arcane Translations":"arcane","English: Archive Of Our Own":"archiveofourown","English: Srank Manga":"asuralightnovel","English: Belle Reservoir":"bellereservoir","English: BestLightNovel":"BLN","English: BoxNovel":"boxnovel","English: Citrus Aurora":"citrusaurora","English: Coral Boutique":"coralboutique","English: CPUnovel":"cpunovel","English: DaoNovel":"daonovel","English: DaoTranslate":"daotranslate","English: Divine Dao Library":"DDL.com","English: Dragon Tea":"dragontea","English: Dream Big Translations":"dreambigtl","English: Dusk Blossoms":"duskblossoms","English: Early Novel":"earlynovel","English: ElloTL":"ellotl","English: Eternalune":"eternalune","English: FanNovel":"fannovel","English: Fans Translations":"fanstranslations","English: Fenrir Translations":"fenrir","English: Foxaholic":"foxaholic","English: Foxteller":"foxteller","English: Faq Wiki":"FWK.US","English: Free Web Novel":"FWN.com","English: Galaxy Translations":"galaxytranslations","English: Genesis":"genesistudio","English: Guavaread":"guavaread","English: Hiraeth Translation":"hiraethtranslation","English: HotNovelPub":"hotnovelpub","English: Ippotranslations":"ippotranslations","English: KnoxT":"knoxt","English: Lib Read":"libread","English: LightNovelCave":"lightnovelcave","English: LightNovelPub":"lightnovelpub","English: LightNovelPub Vip":"lightnovelpubvip","English: Light Novel Updates":"LightNovelUpdates","English: LightNovelWord":"lightnovelworld","English: LightNovelHeaven":"lnheaven","English: LnMTL":"lnmtl","English: Ltnovel":"ltnovel","English: LunarLetters":"lunarletters","English: Meownovel":"meownovel","English: Moonlight Novels":"moonlightnovel","English: MostNovel":"mostnovel","English: MTL-Novel":"mtl-novel","English: MTL Novel":"mtlnovel","English: MTL Reader":"mtlreader","English: MVLEMPYR":"mvlempyr.com","English: MysticalSeries":"mysticalmerries","English: NeoSekai Translations":"neosekaiTLS","English: Nitro Manga":"nitromanga","English: novelsOnline":"NO.net","English: NobleMTL":"noblemtl","English: Novel Bin":"novelbin","English: NovelBuddy.io":"novelbuddy","English: Novel Fire":"novelfire","English: NovelFull":"novelfull","English: Novel Hall":"novelhall","English: NovelMultiverse":"novelmultiverse","English: NovelsKnight":"novelsknight","English: NovelTranslate":"novelTL","English: Novel Updates":"novelupdates","English: Panda Machine Translations":"pandamtl","English: Pastel Tales":"pasteltales","English: PawRead":"pawread","English: Rainofsnow":"rainofsnow","English: Ranobes":"ranobes","English: Read From Net":"readfrom","English: ReadNovelFull":"readnovelfull","English: Re:Library":"ReLib","English: Requiem Translations":"requiemtls","English: ReadLiteNovel":"rln.app","English: Royal Road":"royalroad","English: Salmon Latte":"salmonlatte","English: Scribble Hub":"scribblehub","English: SleepyTranslations":"sleeptTLS","English: SonicMTL":"sonicmtl","English: StorySeedling":"storyseedling","English: System Translation":"systemtranslation","English: TranslatinOtaku":"translatinotaku","English: Universal Novel":"universalnovel","English: VyNovel":"vynovel","English: Webnovel":"webnovel","English: WebNovelLover":"webnovelover","English: Web Novel Pub":"webnovelworld","English: White Moonlight Novels":"whitemoonlightnovels","English: Wook's Teahouse":"wooksteahouse","English: WordExcerpt":"wordexcerpt","English: WTR-LAB":"WTRLAB","English: Wuxiafox":"wuxiacity","English: Fans MTL":"wuxiamtl","English: Wuxiabox":"wuxiap","English: Wuxia Space":"wuxiaspace","English: WuxiaV":"wuxiav","English: Wuxia World":"wuxiaworld","English: WuxiaWorld.Site":"wuxiaworld.site","English: Zetro Translation":"zetroTL","Français: Chireads":"chireads","Français: HarkenEliwood":"harkeneliwood","Français: KissWood":"kisswood","Français: Ligh Novel FR":"lightnovelfr","Français: MTL Novel (FR)":"mtlnovel-fr","Français: NovelDeGlace":"noveldeglace","Français: Novhell":"novhell","Français: PhenixScans":"phenixscans","Français: Warrior Legend Trad":"warriorlegendtrad","Français: WorldNovel":"worldnovel","Français: WuxiaLnScantrad":"wuxialnscantrad","Français: Xiaowaz":"xiaowaz","Bahasa Indonesia: Baca Light Novel":"bacalightnovel","Bahasa Indonesia: IndoWebNovel":"IDWN.id","Bahasa Indonesia: MeioNovel":"meionovel","Bahasa Indonesia: Risenovel":"morenovel","Bahasa Indonesia: MTL Novel (ID)":"mtlnovel-id","Bahasa Indonesia: NovelBookID":"novelbookid","Bahasa Indonesia: NovelRingan":"novelringan.com","Bahasa Indonesia: SakuraNovel":"sakura.id","Bahasa Indonesia: Sekte Novel":"sektenovel","Bahasa Indonesia: WBNovel":"wbnovel","日本語: kakuyomu":"kakuyomu","日本語: Syosetu":"yomou.syosetu","조선말, 한국어: Agitoon":"agit.xyz","조선말, 한국어: Fortune Eternal":"fortuneeternal","Polski: Novelki":"novelki.pl","Português: Better Novels":"betternovels","Português: Blog do Amon Novels":"blogdoamonnovels","Português: Central Novel":"centralnovel","Português: Kiniga":"kiniga","Português: LaNovels":"lanovels","Português: Light Novel Brasil":"lightnovelbrasil","Português: MTL Novel (PT)":"mtlnovel-pt","Português: Novel Mania":"novelmania.com.br","Português: Tsundoku Traduções":"tsundoku","Русский: Автор Тудей":"AT","Русский: Bookhamster":"bookhamster","Русский: Bookriver":"bookriver","Русский: Erolate":"erolate","Русский: EzNovels":"eznovels","Русский: ficbook":"ficbook","Русский: LitSpace":"freedlit.space","Русский: Свободный Мир Ранобэ":"ifreedom","Русский: Jaomix":"jaomix.ru","Русский: MTL Novel (RU)":"mtlnovel-ru","Русский: Neobook":"neobook","Русский: НовелОВХ":"novelovh","Русский: Ranobes (RU)":"ranobes-ru","Русский: Renovels":"ReN","Русский: RanobeLib":"RLIB","Русский: RanobeHub":"RNBH.org","Русский: РанобэРФ":"RNRF","Русский: Rulate":"rulate","Русский: Ruvers":"RV","Русский: NovelTL":"TL","Русский: ТопЛиба":"TopLiba","Русский: Целлюлоза":"zelluloza","Español: AllNovelRead":"allnovelread","Español: Hasu Translations":"HasuTL","Español: LightNovelDaily":"lightnoveldaily","Español: MTL Novel (ES)":"mtlnovel-es","Español: Novelas Ligera":"novelasligera","Español: Oasis Translations":"oasistranslations","Español: Pancho Translations":"panchotranslations","Español: ReinoWuxia":"reinowuxia","Español: SkyNovels":"skynovels","Español: Traducciones Amistosas":"traducciones","Español: TuNovelaLigera":"tunovelaligera","Español: Yuuki Tls":"yuukitls","ไทย: Novel Lucky":"novel-lucky","ไทย: Novel PDF":"novelpdf","Türkçe: Araz Novel":"azraznovel","Türkçe: E-KİTAPLAR":"ekitaplar","Türkçe: EpikNovel":"epiknovel","Türkçe: Kodeks Library":"kodekslibrary","Türkçe: MangaTR":"mangatr","Türkçe: NABİ SCANS":"nabiscans","Türkçe: Namevt":"namevt","Türkçe: Novel oku":"noveloku","Türkçe: Novelokutr":"novelokutr","Türkçe: NovelTR":"noveltr","Türkçe: ThNovels":"thnovels","Türkçe: TurkceLightNovels":"turkcelightnovels","Türkçe: WebNovelOku":"webnoveloku","Українська: Смаколики":"smakolykytl","Tiếng Việt: Light Novel VN":"lightnovel.vn","Tiếng Việt: Hako":"ln.hako","Tiếng Việt: Nettruyen":"nettruyen","Tiếng Việt: Truyện Chữ":"truyenchu","Tiếng Việt: Truyen Conect":"truyenconect","Tiếng Việt: Truyện Full":"truyenfull","Multi: Komga":"komga"} \ No newline at end of file diff --git a/.github/workflows/update_plugin_list.yml b/.github/workflows/update_plugin_list.yml index ed2765584..54f8db6c9 100644 --- a/.github/workflows/update_plugin_list.yml +++ b/.github/workflows/update_plugin_list.yml @@ -9,27 +9,30 @@ on: jobs: update_template: - if: github.repository == 'LNReader/lnreader-plugins' && github.event.workflow_run.conclusion == 'success' + if: github.event.workflow_run.conclusion == 'success' runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: ref: master + - uses: actions/setup-node@v3 with: node-version: '20' - - name: Recreating report issue template - run: | - bash ./.github/scripts/createOptions.sh - - name: Commit and Push Changes + + - name: Recreating report issue template run: | - git config user.name "github-actions[bot]" - git config user.email "github-actions[bot]@users.noreply.github.com" - git add .github/ISSUE_TEMPLATE/report_issue.yml - git add .github/scripts/keys.json - if git diff --cached --quiet; then - echo "No changes to commit." - else - git commit -m "[skip ci] Update issue template with plugin dropdown options" - git push origin master - fi + node ./.github/scripts/createOptions.cjs + + - name: Create or Update Pull Request + uses: peter-evans/create-pull-request@v5 + with: + commit-message: '[skip ci] Update issue template with plugin dropdown options' + branch: 'update-issue-template' + title: 'Update Issue Template' + body: | + This PR updates the issue template with the latest plugin dropdown options. + If this PR already exists, it will be updated automatically with the latest changes. + labels: 'bot' + base: 'master' + delete-branch: true From a2c8ac6443cbd26175670d47de589718cf5be4cd Mon Sep 17 00:00:00 2001 From: Patrick Loser Date: Sat, 25 Jan 2025 13:30:45 +0100 Subject: [PATCH 48/50] test change --- .github/scripts/createOptions.cjs | 2 +- .github/scripts/keys.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/scripts/createOptions.cjs b/.github/scripts/createOptions.cjs index 941bd23d9..6dc4ff108 100644 --- a/.github/scripts/createOptions.cjs +++ b/.github/scripts/createOptions.cjs @@ -25,7 +25,7 @@ async function main() { console.log(err); } if (!sameKeys(newKeys, savedKeys) && Array.isArray(newKeys)) { - const text = newKeys.join('"\n - "'); + const text = newKeys.join('"\n - "'); fs.writeFileSync( '.github/ISSUE_TEMPLATE/report_issue.yml', rawText.replace(/{#CHANGE#}/g, '- "' + text + '"'), diff --git a/.github/scripts/keys.json b/.github/scripts/keys.json index 90239840d..0967ef424 100644 --- a/.github/scripts/keys.json +++ b/.github/scripts/keys.json @@ -1 +1 @@ -{"‎العربية: ArNovel":"arnovel","‎العربية: Azora":"azora","‎العربية: dilar tube":"dilartube","‎العربية: HizoManga":"hizomanga","‎العربية: Kol Novel":"kolnovel","‎العربية: Novel4Up":"novel4up","‎العربية: Novels Paradise":"novelsparadise","‎العربية: Olaoe.cyou":"olaoe","‎العربية: Rewayat Club":"rewayatclub","‎العربية: Riwyat":"riwyat","‎العربية: Sunovels":"sunovels","中文, 汉语, 漢語: 69书吧":"69xinshu","中文, 汉语, 漢語: Linovelib":"linovelib","中文, 汉语, 漢語: Linovelib(繁體)":"linovelib_tw","English: FirstKissNovel":"1stkissnovel","English: AllNovelFull":"anf.net","English: Arcane Translations":"arcane","English: Archive Of Our Own":"archiveofourown","English: Srank Manga":"asuralightnovel","English: Belle Reservoir":"bellereservoir","English: BestLightNovel":"BLN","English: BoxNovel":"boxnovel","English: Citrus Aurora":"citrusaurora","English: Coral Boutique":"coralboutique","English: CPUnovel":"cpunovel","English: DaoNovel":"daonovel","English: DaoTranslate":"daotranslate","English: Divine Dao Library":"DDL.com","English: Dragon Tea":"dragontea","English: Dream Big Translations":"dreambigtl","English: Dusk Blossoms":"duskblossoms","English: Early Novel":"earlynovel","English: ElloTL":"ellotl","English: Eternalune":"eternalune","English: FanNovel":"fannovel","English: Fans Translations":"fanstranslations","English: Fenrir Translations":"fenrir","English: Foxaholic":"foxaholic","English: Foxteller":"foxteller","English: Faq Wiki":"FWK.US","English: Free Web Novel":"FWN.com","English: Galaxy Translations":"galaxytranslations","English: Genesis":"genesistudio","English: Guavaread":"guavaread","English: Hiraeth Translation":"hiraethtranslation","English: HotNovelPub":"hotnovelpub","English: Ippotranslations":"ippotranslations","English: KnoxT":"knoxt","English: Lib Read":"libread","English: LightNovelCave":"lightnovelcave","English: LightNovelPub":"lightnovelpub","English: LightNovelPub Vip":"lightnovelpubvip","English: Light Novel Updates":"LightNovelUpdates","English: LightNovelWord":"lightnovelworld","English: LightNovelHeaven":"lnheaven","English: LnMTL":"lnmtl","English: Ltnovel":"ltnovel","English: LunarLetters":"lunarletters","English: Meownovel":"meownovel","English: Moonlight Novels":"moonlightnovel","English: MostNovel":"mostnovel","English: MTL-Novel":"mtl-novel","English: MTL Novel":"mtlnovel","English: MTL Reader":"mtlreader","English: MVLEMPYR":"mvlempyr.com","English: MysticalSeries":"mysticalmerries","English: NeoSekai Translations":"neosekaiTLS","English: Nitro Manga":"nitromanga","English: novelsOnline":"NO.net","English: NobleMTL":"noblemtl","English: Novel Bin":"novelbin","English: NovelBuddy.io":"novelbuddy","English: Novel Fire":"novelfire","English: NovelFull":"novelfull","English: Novel Hall":"novelhall","English: NovelMultiverse":"novelmultiverse","English: NovelsKnight":"novelsknight","English: NovelTranslate":"novelTL","English: Novel Updates":"novelupdates","English: Panda Machine Translations":"pandamtl","English: Pastel Tales":"pasteltales","English: PawRead":"pawread","English: Rainofsnow":"rainofsnow","English: Ranobes":"ranobes","English: Read From Net":"readfrom","English: ReadNovelFull":"readnovelfull","English: Re:Library":"ReLib","English: Requiem Translations":"requiemtls","English: ReadLiteNovel":"rln.app","English: Royal Road":"royalroad","English: Salmon Latte":"salmonlatte","English: Scribble Hub":"scribblehub","English: SleepyTranslations":"sleeptTLS","English: SonicMTL":"sonicmtl","English: StorySeedling":"storyseedling","English: System Translation":"systemtranslation","English: TranslatinOtaku":"translatinotaku","English: Universal Novel":"universalnovel","English: VyNovel":"vynovel","English: Webnovel":"webnovel","English: WebNovelLover":"webnovelover","English: Web Novel Pub":"webnovelworld","English: White Moonlight Novels":"whitemoonlightnovels","English: Wook's Teahouse":"wooksteahouse","English: WordExcerpt":"wordexcerpt","English: WTR-LAB":"WTRLAB","English: Wuxiafox":"wuxiacity","English: Fans MTL":"wuxiamtl","English: Wuxiabox":"wuxiap","English: Wuxia Space":"wuxiaspace","English: WuxiaV":"wuxiav","English: Wuxia World":"wuxiaworld","English: WuxiaWorld.Site":"wuxiaworld.site","English: Zetro Translation":"zetroTL","Français: Chireads":"chireads","Français: HarkenEliwood":"harkeneliwood","Français: KissWood":"kisswood","Français: Ligh Novel FR":"lightnovelfr","Français: MTL Novel (FR)":"mtlnovel-fr","Français: NovelDeGlace":"noveldeglace","Français: Novhell":"novhell","Français: PhenixScans":"phenixscans","Français: Warrior Legend Trad":"warriorlegendtrad","Français: WorldNovel":"worldnovel","Français: WuxiaLnScantrad":"wuxialnscantrad","Français: Xiaowaz":"xiaowaz","Bahasa Indonesia: Baca Light Novel":"bacalightnovel","Bahasa Indonesia: IndoWebNovel":"IDWN.id","Bahasa Indonesia: MeioNovel":"meionovel","Bahasa Indonesia: Risenovel":"morenovel","Bahasa Indonesia: MTL Novel (ID)":"mtlnovel-id","Bahasa Indonesia: NovelBookID":"novelbookid","Bahasa Indonesia: NovelRingan":"novelringan.com","Bahasa Indonesia: SakuraNovel":"sakura.id","Bahasa Indonesia: Sekte Novel":"sektenovel","Bahasa Indonesia: WBNovel":"wbnovel","日本語: kakuyomu":"kakuyomu","日本語: Syosetu":"yomou.syosetu","조선말, 한국어: Agitoon":"agit.xyz","조선말, 한국어: Fortune Eternal":"fortuneeternal","Polski: Novelki":"novelki.pl","Português: Better Novels":"betternovels","Português: Blog do Amon Novels":"blogdoamonnovels","Português: Central Novel":"centralnovel","Português: Kiniga":"kiniga","Português: LaNovels":"lanovels","Português: Light Novel Brasil":"lightnovelbrasil","Português: MTL Novel (PT)":"mtlnovel-pt","Português: Novel Mania":"novelmania.com.br","Português: Tsundoku Traduções":"tsundoku","Русский: Автор Тудей":"AT","Русский: Bookhamster":"bookhamster","Русский: Bookriver":"bookriver","Русский: Erolate":"erolate","Русский: EzNovels":"eznovels","Русский: ficbook":"ficbook","Русский: LitSpace":"freedlit.space","Русский: Свободный Мир Ранобэ":"ifreedom","Русский: Jaomix":"jaomix.ru","Русский: MTL Novel (RU)":"mtlnovel-ru","Русский: Neobook":"neobook","Русский: НовелОВХ":"novelovh","Русский: Ranobes (RU)":"ranobes-ru","Русский: Renovels":"ReN","Русский: RanobeLib":"RLIB","Русский: RanobeHub":"RNBH.org","Русский: РанобэРФ":"RNRF","Русский: Rulate":"rulate","Русский: Ruvers":"RV","Русский: NovelTL":"TL","Русский: ТопЛиба":"TopLiba","Русский: Целлюлоза":"zelluloza","Español: AllNovelRead":"allnovelread","Español: Hasu Translations":"HasuTL","Español: LightNovelDaily":"lightnoveldaily","Español: MTL Novel (ES)":"mtlnovel-es","Español: Novelas Ligera":"novelasligera","Español: Oasis Translations":"oasistranslations","Español: Pancho Translations":"panchotranslations","Español: ReinoWuxia":"reinowuxia","Español: SkyNovels":"skynovels","Español: Traducciones Amistosas":"traducciones","Español: TuNovelaLigera":"tunovelaligera","Español: Yuuki Tls":"yuukitls","ไทย: Novel Lucky":"novel-lucky","ไทย: Novel PDF":"novelpdf","Türkçe: Araz Novel":"azraznovel","Türkçe: E-KİTAPLAR":"ekitaplar","Türkçe: EpikNovel":"epiknovel","Türkçe: Kodeks Library":"kodekslibrary","Türkçe: MangaTR":"mangatr","Türkçe: NABİ SCANS":"nabiscans","Türkçe: Namevt":"namevt","Türkçe: Novel oku":"noveloku","Türkçe: Novelokutr":"novelokutr","Türkçe: NovelTR":"noveltr","Türkçe: ThNovels":"thnovels","Türkçe: TurkceLightNovels":"turkcelightnovels","Türkçe: WebNovelOku":"webnoveloku","Українська: Смаколики":"smakolykytl","Tiếng Việt: Light Novel VN":"lightnovel.vn","Tiếng Việt: Hako":"ln.hako","Tiếng Việt: Nettruyen":"nettruyen","Tiếng Việt: Truyện Chữ":"truyenchu","Tiếng Việt: Truyen Conect":"truyenconect","Tiếng Việt: Truyện Full":"truyenfull","Multi: Komga":"komga"} \ No newline at end of file +{} From be8dfe618132a51b6e29bac3aab0692ba3e427ff Mon Sep 17 00:00:00 2001 From: Patrick Loser Date: Sat, 25 Jan 2025 13:32:19 +0100 Subject: [PATCH 49/50] deactivate skip --- .github/workflows/update_plugin_list.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update_plugin_list.yml b/.github/workflows/update_plugin_list.yml index 54f8db6c9..14ceffbf5 100644 --- a/.github/workflows/update_plugin_list.yml +++ b/.github/workflows/update_plugin_list.yml @@ -9,7 +9,7 @@ on: jobs: update_template: - if: github.event.workflow_run.conclusion == 'success' + #if: github.repository == 'LNReader/lnreader-plugins' && github.event.workflow_run.conclusion == 'success' runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 From d90b08875a048a06834d5b753c37e478daf82e64 Mon Sep 17 00:00:00 2001 From: Patrick Loser Date: Sat, 25 Jan 2025 13:42:04 +0100 Subject: [PATCH 50/50] activate skip --- .github/workflows/update_plugin_list.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update_plugin_list.yml b/.github/workflows/update_plugin_list.yml index 14ceffbf5..ec4ab47c7 100644 --- a/.github/workflows/update_plugin_list.yml +++ b/.github/workflows/update_plugin_list.yml @@ -9,7 +9,7 @@ on: jobs: update_template: - #if: github.repository == 'LNReader/lnreader-plugins' && github.event.workflow_run.conclusion == 'success' + if: github.repository == 'LNReader/lnreader-plugins' && github.event.workflow_run.conclusion == 'success' runs-on: ubuntu-latest steps: - uses: actions/checkout@v3