LightnovelWP update (#1456)

* icons

* lightnovelwp:
- fix moonlightnovel
- fix typos in README
- added vandytranslate (#1317)
- added lazygirltranslations (#1351)

* fix `npm run icons`

* lightnovelwp: update filters

* remove // with a replace instead of changing the source url
better summary getting
checking if site url not in novel url
wording

* DaoTranslate url update
This commit is contained in:
Justin COLLON
2025-01-30 04:07:28 +01:00
committed by GitHub
parent 378a3db15d
commit bd2d3fdd60
32 changed files with 2023 additions and 241 deletions
+1 -1
View File
@@ -11,7 +11,7 @@
"generate": "node ./scripts/multisrc/generate.js", "generate": "node ./scripts/multisrc/generate.js",
"host-linux": "chmod +x ./host.sh && ./host.sh", "host-linux": "chmod +x ./host.sh && ./host.sh",
"host-windows": "powershell ./host.ps1", "host-windows": "powershell ./host.ps1",
"icons": "npm run clearMultisrc && npm run generate && npx tsc -m node16; npm run json && node ./scripts/icon_reloading.js", "icons": "npm run clearMultisrc && npm run generate && npx tsc --project tsconfig.production.json && npm run json && node ./scripts/icon_reloading.js",
"json": " node ./scripts/json_plugins.js", "json": " node ./scripts/json_plugins.js",
"lint": "npx eslint .", "lint": "npx eslint .",
"prepare": "husky install", "prepare": "husky install",
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 737 B

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 512 B

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 562 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

+3 -3
View File
@@ -1,4 +1,4 @@
# Madara multisrc generator # LightnovelWP multisrc generator
## Compatiblity ## Compatiblity
@@ -39,11 +39,11 @@ To add an icon to the source you can just run `npm run icons` to generate all ic
Or you can manualy find the icon of the site \ Or you can manualy find the icon of the site \
(try the favicon of the site (https://site.com/favicon.ico) most of the times it redirects you to an image named something like "cropped-site-32x32.png" try to access "cropped-site.png" or "site.png" if that did not work you can try to access "https://site.com/wp-json/" at the end of this very long file there should be a "site_icon_url" value (try the favicon of the site (https://site.com/favicon.ico) most of the times it redirects you to an image named something like "cropped-site-32x32.png" try to access "cropped-site.png" or "site.png" if that did not work you can try to access "https://site.com/wp-json/" at the end of this very long file there should be a "site_icon_url" value
) (don't forget to convert it to png) ) (don't forget to convert it to png)
and add it to the folder "public/static/multisrc/madara/{sourceID}/icon.png" and add it to the folder "public/static/multisrc/lightnovelwp/{sourceID}/icon.png"
### filters ### filters
To add filters to a source you need to run the script "get_filters.js" \ To add filters to a source you need to run the script "get_filters.js" \
(`npx node scripts/multisrc/madara/get_filters.js` (`npx node scripts/multisrc/lightnovelwp/get_filters.js`
(if you are at the root of the project) (and you have ran "npm install" before)) (if you are at the root of the project) (and you have ran "npm install" before))
and follow the instructions (url is easier and faster but sometimes it doesn't work) and follow the instructions (url is easier and faster but sometimes it doesn't work)
@@ -5,40 +5,146 @@
"label": "Genre", "label": "Genre",
"value": [], "value": [],
"options": [ "options": [
{ "label": "Action", "value": "action" }, {
{ "label": "Adventure", "value": "adventure" }, "label": "Action",
{ "label": "Comedy", "value": "comedy" }, "value": "action"
{ "label": "Drama", "value": "drama" }, },
{ "label": "Ecchi", "value": "ecchi" }, {
{ "label": "Fantasy", "value": "fantasy" }, "label": "Adult",
{ "label": "Gender Bender", "value": "gender-bender" }, "value": "adult"
{ "label": "Harem", "value": "harem" }, },
{ "label": "Historical", "value": "historical" }, {
{ "label": "Horror", "value": "horror" }, "label": "Adventure",
{ "label": "Isekai", "value": "isekai" }, "value": "adventure"
{ "label": "Josei", "value": "josei" }, },
{ "label": "Martial Arts", "value": "martial-arts" }, {
{ "label": "Mature", "value": "mature" }, "label": "Comedy",
{ "label": "Mecha", "value": "mecha" }, "value": "comedy"
{ "label": "Mystery", "value": "mystery" }, },
{ "label": "Psychological", "value": "psychological" }, {
{ "label": "Romance", "value": "romance" }, "label": "Drama",
{ "label": "School Life", "value": "school-life" }, "value": "drama"
{ "label": "Sci-fi", "value": "sci-fi" }, },
{ "label": "Seinen", "value": "seinen" }, {
{ "label": "Shoujo", "value": "shoujo" }, "label": "Ecchi",
{ "label": "Shoujo Ai", "value": "shoujo-ai" }, "value": "ecchi"
{ "label": "Shounen", "value": "shounen" }, },
{ "label": "Shounen Ai", "value": "shounen-ai" }, {
{ "label": "Slice of Life", "value": "slice-of-life" }, "label": "Fantasy",
{ "label": "Sports", "value": "sports" }, "value": "fantasy"
{ "label": "Supernatural", "value": "supernatural" }, },
{ "label": "Tragedy", "value": "tragedy" }, {
{ "label": "Wuxia", "value": "wuxia" }, "label": "Gender Bender",
{ "label": "Xianxia", "value": "xianxia" }, "value": "gender-bender"
{ "label": "Xuanhuan", "value": "xuanhuan" }, },
{ "label": "Yaoi", "value": "yaoi" }, {
{ "label": "Yuri", "value": "yuri" } "label": "Harem",
"value": "harem"
},
{
"label": "Historical",
"value": "historical"
},
{
"label": "Horror",
"value": "horror"
},
{
"label": "Isekai",
"value": "isekai"
},
{
"label": "Josei",
"value": "josei"
},
{
"label": "Martial Arts",
"value": "martial-arts"
},
{
"label": "Mature",
"value": "mature"
},
{
"label": "Mecha",
"value": "mecha"
},
{
"label": "Mystery",
"value": "mystery"
},
{
"label": "Psychological",
"value": "psychological"
},
{
"label": "Romance",
"value": "romance"
},
{
"label": "School Life",
"value": "school-life"
},
{
"label": "Sci-fi",
"value": "sci-fi"
},
{
"label": "Seinen",
"value": "seinen"
},
{
"label": "Shoujo",
"value": "shoujo"
},
{
"label": "Shoujo Ai",
"value": "shoujo-ai"
},
{
"label": "Shounen",
"value": "shounen"
},
{
"label": "Shounen Ai",
"value": "shounen-ai"
},
{
"label": "Slice of Life",
"value": "slice-of-life"
},
{
"label": "Sports",
"value": "sports"
},
{
"label": "Supernatural",
"value": "supernatural"
},
{
"label": "Tragedy",
"value": "tragedy"
},
{
"label": "Wuxia",
"value": "wuxia"
},
{
"label": "Xianxia",
"value": "xianxia"
},
{
"label": "Xuanhuan",
"value": "xuanhuan"
},
{
"label": "Yaoi",
"value": "yaoi"
},
{
"label": "Yuri",
"value": "yuri"
}
] ]
}, },
"type[]": { "type[]": {
@@ -46,8 +152,18 @@
"label": "Tipe", "label": "Tipe",
"value": [], "value": [],
"options": [ "options": [
{ "label": "", "value": "" }, {
{ "label": "Novel", "value": "novel" } "label": "",
"value": ""
},
{
"label": "Manga",
"value": "manga"
},
{
"label": "Novel",
"value": "novel"
}
] ]
}, },
"status": { "status": {
@@ -55,24 +171,58 @@
"label": "Status", "label": "Status",
"value": "", "value": "",
"options": [ "options": [
{ "label": "All", "value": "" }, {
{ "label": "Ongoing", "value": "ongoing" }, "label": "All",
{ "label": "Hiatus", "value": "hiatus" }, "value": ""
{ "label": "Completed", "value": "completed" } },
{
"label": "Ongoing",
"value": "ongoing"
},
{
"label": "Hiatus",
"value": "hiatus"
},
{
"label": "Completed",
"value": "completed"
}
] ]
}, },
"order": { "order": {
"type": "Urutkan", "type": "Picker",
"label": "Order", "label": "Urutkan",
"value": "", "value": "",
"options": [ "options": [
{ "label": "Default", "value": "" }, {
{ "label": "A-Z", "value": "title" }, "label": "Default",
{ "label": "Z-A", "value": "titlereverse" }, "value": ""
{ "label": "Baru diperbarui", "value": "update" }, },
{ "label": "Baru ditambahkan", "value": "latest" }, {
{ "label": "Terpopuler", "value": "popular" } "label": "A-Z",
"value": "title"
},
{
"label": "Z-A",
"value": "titlereverse"
},
{
"label": "Baru diperbarui",
"value": "update"
},
{
"label": "Baru ditambahkan",
"value": "latest"
},
{
"label": "Terpopuler",
"value": "popular"
},
{
"label": "Rating",
"value": "rating"
}
] ]
} }
} }
} }
@@ -149,6 +149,10 @@
"label": "Seinen", "label": "Seinen",
"value": "seinen" "value": "seinen"
}, },
{
"label": "Shoujo",
"value": "shoujo"
},
{ {
"label": "Shounen", "label": "Shounen",
"value": "shounen" "value": "shounen"
@@ -293,6 +297,10 @@
{ {
"label": "Populares", "label": "Populares",
"value": "popular" "value": "popular"
},
{
"label": "Avaliação",
"value": "rating"
} }
] ]
} }
@@ -9,18 +9,38 @@
"label": "Action", "label": "Action",
"value": "action" "value": "action"
}, },
{
"label": "Adult",
"value": "adult"
},
{ {
"label": "Adventure", "label": "Adventure",
"value": "adventure" "value": "adventure"
}, },
{
"label": "Billionaire",
"value": "billionaire"
},
{ {
"label": "Comedy", "label": "Comedy",
"value": "comedy" "value": "comedy"
}, },
{
"label": "Contemporary",
"value": "contemporary"
},
{ {
"label": "Drama", "label": "Drama",
"value": "drama" "value": "drama"
}, },
{
"label": "Ecchi",
"value": "ecchi"
},
{
"label": "Family",
"value": "family"
},
{ {
"label": "Fantasy", "label": "Fantasy",
"value": "fantasy" "value": "fantasy"
@@ -29,14 +49,46 @@
"label": "Gender Bender", "label": "Gender Bender",
"value": "gender-bender" "value": "gender-bender"
}, },
{
"label": "Growth",
"value": "growth"
},
{ {
"label": "Harem", "label": "Harem",
"value": "harem" "value": "harem"
}, },
{
"label": "Hidden Identity",
"value": "hidden-identity"
},
{
"label": "Historical",
"value": "historical"
},
{ {
"label": "Horror", "label": "Horror",
"value": "horror" "value": "horror"
}, },
{
"label": "Isekai",
"value": "isekai"
},
{
"label": "Korean",
"value": "korean"
},
{
"label": "Magic",
"value": "magic"
},
{
"label": "Manhwa",
"value": "manhwa"
},
{
"label": "Marriage",
"value": "marriage"
},
{ {
"label": "Martial Arts", "label": "Martial Arts",
"value": "martial-arts" "value": "martial-arts"
@@ -45,14 +97,42 @@
"label": "Mature", "label": "Mature",
"value": "mature" "value": "mature"
}, },
{
"label": "Mecha",
"value": "mecha"
},
{
"label": "Murim",
"value": "murim"
},
{ {
"label": "Mystery", "label": "Mystery",
"value": "mystery" "value": "mystery"
}, },
{
"label": "Overpowered",
"value": "overpowered"
},
{ {
"label": "Psychological", "label": "Psychological",
"value": "psychological" "value": "psychological"
}, },
{
"label": "Regression",
"value": "regression"
},
{
"label": "Reincarnation",
"value": "reincarnation"
},
{
"label": "Revenge",
"value": "revenge"
},
{
"label": "Rich",
"value": "rich"
},
{ {
"label": "Romance", "label": "Romance",
"value": "romance" "value": "romance"
@@ -69,6 +149,10 @@
"label": "Seinen", "label": "Seinen",
"value": "seinen" "value": "seinen"
}, },
{
"label": "Shoujo",
"value": "shoujo"
},
{ {
"label": "Shounen", "label": "Shounen",
"value": "shounen" "value": "shounen"
@@ -77,17 +161,53 @@
"label": "Slice of Life", "label": "Slice of Life",
"value": "slice-of-life" "value": "slice-of-life"
}, },
{
"label": "Son-in-Law",
"value": "son-in-law"
},
{
"label": "Sports",
"value": "sports"
},
{ {
"label": "Supernatural", "label": "Supernatural",
"value": "supernatural" "value": "supernatural"
}, },
{
"label": "Superpower",
"value": "superpower"
},
{ {
"label": "Tragedy", "label": "Tragedy",
"value": "tragedy" "value": "tragedy"
}, },
{
"label": "Urban",
"value": "urban"
},
{
"label": "Virtual Game",
"value": "virtual-game"
},
{
"label": "Warrior",
"value": "warrior"
},
{
"label": "Webtoons",
"value": "webtoons"
},
{ {
"label": "Wuxia", "label": "Wuxia",
"value": "wuxia" "value": "wuxia"
},
{
"label": "Xianxia",
"value": "xianxia"
},
{
"label": "Xuanhuan",
"value": "xuanhuan"
} }
] ]
}, },
@@ -96,6 +216,46 @@
"label": "Type", "label": "Type",
"value": [], "value": [],
"options": [ "options": [
{
"label": "Action",
"value": "action"
},
{
"label": "Adventure",
"value": "adventure"
},
{
"label": "Chinese Novel",
"value": "chinese-novel"
},
{
"label": "Fantasy",
"value": "fantasy"
},
{
"label": "Korean Novel",
"value": "korean-novel"
},
{
"label": "Light Novel (KR)",
"value": "light-novel-kr"
},
{
"label": "Martial Arts",
"value": "martial-arts"
},
{
"label": "Published Novel (KR)",
"value": "published-novel-kr"
},
{
"label": "Romance",
"value": "romance"
},
{
"label": "Supernatural",
"value": "supernatural"
},
{ {
"label": "Web Novel", "label": "Web Novel",
"value": "web-novel" "value": "web-novel"
@@ -33,6 +33,10 @@
"label": "Drama", "label": "Drama",
"value": "drama" "value": "drama"
}, },
{
"label": "Ecchi",
"value": "ecchi"
},
{ {
"label": "Family", "label": "Family",
"value": "family" "value": "family"
@@ -41,6 +45,10 @@
"label": "Fantasy", "label": "Fantasy",
"value": "fantasy" "value": "fantasy"
}, },
{
"label": "Gender Bender",
"value": "gender-bender"
},
{ {
"label": "Growth", "label": "Growth",
"value": "growth" "value": "growth"
@@ -157,6 +165,10 @@
"label": "Son-in-Law", "label": "Son-in-Law",
"value": "son-in-law" "value": "son-in-law"
}, },
{
"label": "Sports",
"value": "sports"
},
{ {
"label": "Supernatural", "label": "Supernatural",
"value": "supernatural" "value": "supernatural"
@@ -189,6 +201,10 @@
"label": "Wuxia", "label": "Wuxia",
"value": "wuxia" "value": "wuxia"
}, },
{
"label": "Xianxia",
"value": "xianxia"
},
{ {
"label": "Xuanhuan", "label": "Xuanhuan",
"value": "xuanhuan" "value": "xuanhuan"
+175 -36
View File
@@ -2,28 +2,97 @@
"filters": { "filters": {
"genre[]": { "genre[]": {
"type": "Checkbox", "type": "Checkbox",
"label": "Genres", "label": "Genre",
"value": [], "value": [],
"options": [ "options": [
{ "label": "Action", "value": "action" }, {
{ "label": "Adventure", "value": "adventure" }, "label": "Action",
{ "label": "Comedy", "value": "comedy" }, "value": "action"
{ "label": "Drama", "value": "drama" }, },
{ "label": "Ecchi", "value": "ecchi" }, {
{ "label": "Fantasy", "value": "fantasy" }, "label": "Adult",
{ "label": "Gender Bender", "value": "gender-bender" }, "value": "adult"
{ "label": "Harem", "value": "harem" }, },
{ "label": "Martial Arts", "value": "martial-arts" }, {
{ "label": "Mature", "value": "mature" }, "label": "Adventure",
{ "label": "Mystery", "value": "mystery" }, "value": "adventure"
{ "label": "Psychological", "value": "psychological" }, },
{ "label": "Romance", "value": "romance" }, {
{ "label": "School Life", "value": "school-life" }, "label": "Comedy",
{ "label": "Seinen", "value": "seinen" }, "value": "comedy"
{ "label": "Shounen", "value": "shounen" }, },
{ "label": "Slice of Life", "value": "slice-of-life" }, {
{ "label": "Supernatural", "value": "supernatural" }, "label": "Drama",
{ "label": "Tragedy", "value": "tragedy" } "value": "drama"
},
{
"label": "Ecchi",
"value": "ecchi"
},
{
"label": "Fantasy",
"value": "fantasy"
},
{
"label": "Gender Bender",
"value": "gender-bender"
},
{
"label": "Harem",
"value": "harem"
},
{
"label": "Hunter",
"value": "hunter"
},
{
"label": "Martial Arts",
"value": "martial-arts"
},
{
"label": "Mature",
"value": "mature"
},
{
"label": "Modern Fantasy",
"value": "modern-fantasy"
},
{
"label": "Mystery",
"value": "mystery"
},
{
"label": "Psychological",
"value": "psychological"
},
{
"label": "Romance",
"value": "romance"
},
{
"label": "School Life",
"value": "school-life"
},
{
"label": "Seinen",
"value": "seinen"
},
{
"label": "Shounen",
"value": "shounen"
},
{
"label": "Slice of Life",
"value": "slice-of-life"
},
{
"label": "Supernatural",
"value": "supernatural"
},
{
"label": "Tragedy",
"value": "tragedy"
}
] ]
}, },
"type[]": { "type[]": {
@@ -31,10 +100,46 @@
"label": "Type", "label": "Type",
"value": [], "value": [],
"options": [ "options": [
{ "label": "Japanese Web Novel", "value": "japanese-web-novel" }, {
{ "label": "Korean Web Novel", "value": "korean-web-novel" }, "label": "Fantasy",
{ "label": "Light Novel (JP)", "value": "light-novel-jp" }, "value": "fantasy"
{ "label": "Web Novel", "value": "web-novel" } },
{
"label": "Genius",
"value": "genius"
},
{
"label": "Hunter",
"value": "hunter"
},
{
"label": "Japanese Web Novel",
"value": "japanese-web-novel"
},
{
"label": "Korean Web Novel",
"value": "korean-web-novel"
},
{
"label": "Light Novel (JP)",
"value": "light-novel-jp"
},
{
"label": "Mage",
"value": "mage"
},
{
"label": "Modern Fantasy",
"value": "modern-fantasy"
},
{
"label": "Reincarnation",
"value": "reincarnation"
},
{
"label": "Web Novel",
"value": "web-novel"
}
] ]
}, },
"status": { "status": {
@@ -42,23 +147,57 @@
"label": "Status", "label": "Status",
"value": "", "value": "",
"options": [ "options": [
{ "label": "All", "value": "" }, {
{ "label": "Ongoing", "value": "ongoing" }, "label": "All",
{ "label": "Hiatus", "value": "hiatus" }, "value": ""
{ "label": "Completed", "value": "completed" } },
{
"label": "Ongoing",
"value": "ongoing"
},
{
"label": "Hiatus",
"value": "hiatus"
},
{
"label": "Completed",
"value": "completed"
}
] ]
}, },
"order": { "order": {
"type": "Picker", "type": "Picker",
"label": "Sort", "label": "Order by",
"value": "popular", "value": "",
"options": [ "options": [
{ "label": "Popular", "value": "popular" }, {
{ "label": "A-Z", "value": "title" }, "label": "Default",
{ "label": "Z-A", "value": "titlereverse" }, "value": ""
{ "label": "Latest Update", "value": "update" }, },
{ "label": "Latest Added", "value": "latest" }, {
{ "label": "Rating", "value": "rating" } "label": "A-Z",
"value": "title"
},
{
"label": "Z-A",
"value": "titlereverse"
},
{
"label": "Latest Update",
"value": "update"
},
{
"label": "Latest Added",
"value": "latest"
},
{
"label": "Popular",
"value": "popular"
},
{
"label": "Rating",
"value": "rating"
}
] ]
} }
} }
@@ -17,6 +17,10 @@
"label": "Comedy", "label": "Comedy",
"value": "comedy" "value": "comedy"
}, },
{
"label": "drama",
"value": "drama"
},
{ {
"label": "Fantasy", "label": "Fantasy",
"value": "fantasy" "value": "fantasy"
@@ -25,6 +29,10 @@
"label": "Harem", "label": "Harem",
"value": "harem" "value": "harem"
}, },
{
"label": "Martial Arts",
"value": "martial-arts"
},
{ {
"label": "Mystery", "label": "Mystery",
"value": "mystery" "value": "mystery"
@@ -45,9 +53,17 @@
"label": "Seinen", "label": "Seinen",
"value": "seinen" "value": "seinen"
}, },
{
"label": "Shounen",
"value": "shounen"
},
{ {
"label": "Slice of Life", "label": "Slice of Life",
"value": "slice-of-life" "value": "slice-of-life"
},
{
"label": "Thriller",
"value": "thriller"
} }
] ]
}, },
@@ -56,6 +72,10 @@
"label": "Type", "label": "Type",
"value": [], "value": [],
"options": [ "options": [
{
"label": "Chinese Novel",
"value": "chinese-novel"
},
{ {
"label": "Dropped", "label": "Dropped",
"value": "dropped" "value": "dropped"
@@ -0,0 +1,116 @@
{
"filters": {
"genre[]": {
"type": "Checkbox",
"label": "Genre",
"value": [],
"options": [
{
"label": "Adult",
"value": "adult"
},
{
"label": "Comedy",
"value": "comedy"
},
{
"label": "Drama",
"value": "drama"
},
{
"label": "Fantasy",
"value": "fantasy"
},
{
"label": "Historical",
"value": "historical"
},
{
"label": "Josei",
"value": "josei"
},
{
"label": "Mature",
"value": "mature"
},
{
"label": "Modern",
"value": "modern"
},
{
"label": "Romance",
"value": "romance"
},
{
"label": "Smut",
"value": "smut"
}
]
},
"type[]": {
"type": "Checkbox",
"label": "Type",
"value": [],
"options": [
{
"label": "Web Novel",
"value": "web-novel"
}
]
},
"status": {
"type": "Picker",
"label": "Status",
"value": "",
"options": [
{
"label": "All",
"value": ""
},
{
"label": "Ongoing",
"value": "ongoing"
},
{
"label": "Hiatus",
"value": "hiatus"
},
{
"label": "Completed",
"value": "completed"
}
]
},
"order": {
"type": "Picker",
"label": "Order by",
"value": "",
"options": [
{
"label": "Default",
"value": ""
},
{
"label": "A-Z",
"value": "title"
},
{
"label": "Z-A",
"value": "titlereverse"
},
{
"label": "Latest Update",
"value": "update"
},
{
"label": "Latest Added",
"value": "latest"
},
{
"label": "Popular",
"value": "popular"
}
]
}
}
}
@@ -5,6 +5,18 @@
"label": "Genre", "label": "Genre",
"value": [], "value": [],
"options": [ "options": [
{
"label": "1v1",
"value": "1v1"
},
{
"label": "ABO",
"value": "abo"
},
{
"label": "Absent Parents",
"value": "absent-parents"
},
{ {
"label": "Action", "label": "Action",
"value": "action" "value": "action"
@@ -13,18 +25,102 @@
"label": "Adult", "label": "Adult",
"value": "adult" "value": "adult"
}, },
{
"label": "Adults",
"value": "adults"
},
{ {
"label": "Adventure", "label": "Adventure",
"value": "adventure" "value": "adventure"
}, },
{
"label": "Adventurers",
"value": "adventurers"
},
{
"label": "Age gap",
"value": "age-gap"
},
{
"label": "Age Regression",
"value": "age-regression"
},
{
"label": "Aggressive Characters",
"value": "aggressive-characters"
},
{
"label": "Amnesia",
"value": "amnesia"
},
{ {
"label": "Ancient times", "label": "Ancient times",
"value": "ancient-times" "value": "ancient-times"
}, },
{
"label": "Anti-social Protagonist",
"value": "anti-social-protagonist"
},
{
"label": "Appearance Changes",
"value": "appearance-changes"
},
{
"label": "Arranged Marriage",
"value": "arranged-marriage"
},
{
"label": "Artificial Intelligence",
"value": "artificial-intelligence"
},
{
"label": "Artists",
"value": "artists"
},
{
"label": "Beautiful bottom",
"value": "beautiful-bottom"
},
{
"label": "Betrayal",
"value": "betrayal"
},
{
"label": "Bickering Couple",
"value": "bickering-couple"
},
{ {
"label": "BL", "label": "BL",
"value": "bl" "value": "bl"
}, },
{
"label": "BL (Boys' Love)",
"value": "bl-boys-love"
},
{
"label": "Blind Dates",
"value": "blind-dates"
},
{
"label": "Blind Protagonist",
"value": "blind-protagonist"
},
{
"label": "Boys love",
"value": "boys-love"
},
{
"label": "Business Management",
"value": "business-management"
},
{
"label": "Businessmen",
"value": "businessmen"
},
{
"label": "Calm Protagonist",
"value": "calm-protagonist"
},
{ {
"label": "Campus", "label": "Campus",
"value": "campus" "value": "campus"
@@ -33,26 +129,178 @@
"label": "carefree protagonist", "label": "carefree protagonist",
"value": "carefree-protagonist" "value": "carefree-protagonist"
}, },
{
"label": "Caring Protagonist",
"value": "caring-protagonist"
},
{ {
"label": "celebrity", "label": "celebrity",
"value": "celebrity" "value": "celebrity"
}, },
{
"label": "CEO",
"value": "ceo"
},
{
"label": "Character Growth",
"value": "character-growth"
},
{
"label": "Charming Protagonist",
"value": "charming-protagonist"
},
{
"label": "Child Abuse",
"value": "child-abuse"
},
{
"label": "Childcare",
"value": "childcare"
},
{
"label": "Childhood Friends",
"value": "childhood-friends"
},
{
"label": "Childhood Love",
"value": "childhood-love"
},
{
"label": "Childish Protagonist",
"value": "childish-protagonist"
},
{ {
"label": "Chinese novel", "label": "Chinese novel",
"value": "chinese-novel" "value": "chinese-novel"
}, },
{
"label": "Clever Protagonist",
"value": "clever-protagonist"
},
{
"label": "Clingy Lover",
"value": "clingy-lover"
},
{
"label": "Clumsy Love Interests",
"value": "clumsy-love-interests"
},
{
"label": "Cohabitation",
"value": "cohabitation"
},
{
"label": "Cold Love Interests",
"value": "cold-love-interests"
},
{
"label": "Cold Protagonist",
"value": "cold-protagonist"
},
{
"label": "comedic undertone",
"value": "comedic-undertone"
},
{ {
"label": "Comedy", "label": "Comedy",
"value": "comedy" "value": "comedy"
}, },
{
"label": "Complex Family Relationships",
"value": "complex-family-relationships"
},
{
"label": "Confident Protagonist",
"value": "confident-protagonist"
},
{
"label": "Conflicting Loyalties",
"value": "conflicting-loyalties"
},
{ {
"label": "Cooking", "label": "Cooking",
"value": "cooking" "value": "cooking"
}, },
{
"label": "Couple Growth",
"value": "couple-growth"
},
{
"label": "Crime",
"value": "crime"
},
{
"label": "Cross-dressing",
"value": "cross-dressing"
},
{
"label": "Cryostasis",
"value": "cryostasis"
},
{
"label": "Cute Children",
"value": "cute-children"
},
{
"label": "Cute Protagonist",
"value": "cute-protagonist"
},
{
"label": "Cute Story",
"value": "cute-story"
},
{
"label": "Determined Protagonist",
"value": "determined-protagonist"
},
{
"label": "Devoted Love Interests",
"value": "devoted-love-interests"
},
{
"label": "Different Social Status",
"value": "different-social-status"
},
{
"label": "Divorce",
"value": "divorce"
},
{
"label": "Doctors",
"value": "doctors"
},
{
"label": "Doting love interest",
"value": "doting-love-interest"
},
{
"label": "Doting Love Interests",
"value": "doting-love-interests"
},
{
"label": "Doting Parents",
"value": "doting-parents"
},
{
"label": "Double AA",
"value": "double-aa"
},
{ {
"label": "Drama", "label": "Drama",
"value": "drama" "value": "drama"
}, },
{
"label": "Dystopia",
"value": "dystopia"
},
{
"label": "empowerment fiction",
"value": "empowerment-fiction"
},
{
"label": "Enemies Become Lovers",
"value": "enemies-become-lovers"
},
{ {
"label": "Entertaiment circle", "label": "Entertaiment circle",
"value": "entertaiment-circle" "value": "entertaiment-circle"
@@ -61,14 +309,34 @@
"label": "Entertainment circle", "label": "Entertainment circle",
"value": "entertainment-circle" "value": "entertainment-circle"
}, },
{
"label": "Evolution",
"value": "evolution"
},
{
"label": "Family Conflict",
"value": "family-conflict"
},
{ {
"label": "Fantasy", "label": "Fantasy",
"value": "fantasy" "value": "fantasy"
}, },
{
"label": "Fated Lovers",
"value": "fated-lovers"
},
{ {
"label": "Fiction", "label": "Fiction",
"value": "fiction" "value": "fiction"
}, },
{
"label": "Fictional",
"value": "fictional"
},
{
"label": "First Love",
"value": "first-love"
},
{ {
"label": "futuristic setting", "label": "futuristic setting",
"value": "futuristic-setting" "value": "futuristic-setting"
@@ -85,14 +353,46 @@
"label": "General", "label": "General",
"value": "general" "value": "general"
}, },
{
"label": "Genetic Modifications",
"value": "genetic-modifications"
},
{ {
"label": "GL", "label": "GL",
"value": "gl" "value": "gl"
}, },
{
"label": "Gore",
"value": "gore"
},
{
"label": "Handsome Male Lead",
"value": "handsome-male-lead"
},
{
"label": "Hard-Working Protagonist",
"value": "hard-working-protagonist"
},
{ {
"label": "Harem", "label": "Harem",
"value": "harem" "value": "harem"
}, },
{
"label": "HE",
"value": "he"
},
{
"label": "Heartwarming",
"value": "heartwarming"
},
{
"label": "Hiding True Abilities",
"value": "hiding-true-abilities"
},
{
"label": "Hiding True Identity",
"value": "hiding-true-identity"
},
{ {
"label": "historic love", "label": "historic love",
"value": "historic-love" "value": "historic-love"
@@ -105,6 +405,10 @@
"label": "Horror", "label": "Horror",
"value": "horror" "value": "horror"
}, },
{
"label": "Human-Nonhuman Relationship",
"value": "human-nonhuman-relationship"
},
{ {
"label": "humor", "label": "humor",
"value": "humor" "value": "humor"
@@ -113,6 +417,10 @@
"label": "Idol", "label": "Idol",
"value": "idol" "value": "idol"
}, },
{
"label": "Inferiority Complex",
"value": "inferiority-complex"
},
{ {
"label": "infrastructure", "label": "infrastructure",
"value": "infrastructure" "value": "infrastructure"
@@ -121,30 +429,98 @@
"label": "interstellar", "label": "interstellar",
"value": "interstellar" "value": "interstellar"
}, },
{
"label": "Isekai",
"value": "isekai"
},
{
"label": "Jealousy",
"value": "jealousy"
},
{ {
"label": "Josei", "label": "Josei",
"value": "josei" "value": "josei"
}, },
{
"label": "Kind love interest",
"value": "kind-love-interest"
},
{
"label": "Kind Love Interests",
"value": "kind-love-interests"
},
{
"label": "Lawyers",
"value": "lawyers"
},
{
"label": "lighthearted drama",
"value": "lighthearted-drama"
},
{
"label": "Loner Protagonist",
"value": "loner-protagonist"
},
{
"label": "Long Separations",
"value": "long-separations"
},
{
"label": "Love Affair",
"value": "love-affair"
},
{
"label": "Love and hate",
"value": "love-and-hate"
},
{ {
"label": "love at first sight", "label": "love at first sight",
"value": "love-at-first-sight" "value": "love-at-first-sight"
}, },
{
"label": "Love Interest Falls in Love First",
"value": "love-interest-falls-in-love-first"
},
{ {
"label": "love romance", "label": "love romance",
"value": "love-romance" "value": "love-romance"
}, },
{
"label": "Lovers Reunited",
"value": "lovers-reunited"
},
{ {
"label": "Male protagonist", "label": "Male protagonist",
"value": "male-protagonist" "value": "male-protagonist"
}, },
{
"label": "Male Yandere",
"value": "male-yandere"
},
{
"label": "Manipulative Characters",
"value": "manipulative-characters"
},
{
"label": "Manly Gay Couple",
"value": "manly-gay-couple"
},
{ {
"label": "Marriage", "label": "Marriage",
"value": "marriage" "value": "marriage"
}, },
{
"label": "Marriage of Convenience",
"value": "marriage-of-convenience"
},
{ {
"label": "Martial Arts", "label": "Martial Arts",
"value": "martial-arts" "value": "martial-arts"
}, },
{
"label": "Mary Sue",
"value": "mary-sue"
},
{ {
"label": "Mature", "label": "Mature",
"value": "mature" "value": "mature"
@@ -153,26 +529,134 @@
"label": "Mecha", "label": "Mecha",
"value": "mecha" "value": "mecha"
}, },
{
"label": "Medical Knowledge",
"value": "medical-knowledge"
},
{ {
"label": "Modern", "label": "Modern",
"value": "modern" "value": "modern"
}, },
{
"label": "Modern day",
"value": "modern-day"
},
{ {
"label": "Mpreg", "label": "Mpreg",
"value": "mpreg" "value": "mpreg"
}, },
{
"label": "Multiple Reincarnated Individuals",
"value": "multiple-reincarnated-individuals"
},
{
"label": "Multiple worlds",
"value": "multiple-worlds"
},
{
"label": "Mute Character",
"value": "mute-character"
},
{
"label": "mutual salvation",
"value": "mutual-salvation"
},
{ {
"label": "Mystery", "label": "Mystery",
"value": "mystery" "value": "mystery"
}, },
{
"label": "Mystery Solving",
"value": "mystery-solving"
},
{
"label": "Naive Protagonist",
"value": "naive-protagonist"
},
{
"label": "Near-Death Experience",
"value": "near-death-experience"
},
{
"label": "Obsessive Love",
"value": "obsessive-love"
},
{
"label": "Older Love Interests",
"value": "older-love-interests"
},
{ {
"label": "Omegaverse", "label": "Omegaverse",
"value": "omegaverse" "value": "omegaverse"
}, },
{
"label": "Orphans",
"value": "orphans"
},
{ {
"label": "Otherworld fantasy", "label": "Otherworld fantasy",
"value": "otherworld-fantasy" "value": "otherworld-fantasy"
}, },
{
"label": "Overpowered protagonist",
"value": "overpowered-protagonist"
},
{
"label": "Past Plays a Big Role",
"value": "past-plays-a-big-role"
},
{
"label": "Past Trauma",
"value": "past-trauma"
},
{
"label": "Persistent Love Interests",
"value": "persistent-love-interests"
},
{
"label": "Poor Protagonist",
"value": "poor-protagonist"
},
{
"label": "Possessive Characters",
"value": "possessive-characters"
},
{
"label": "post apocalypse",
"value": "post-apocalypse"
},
{
"label": "Post-apocalyptic",
"value": "post-apocalyptic"
},
{
"label": "Post-apocalyptic background",
"value": "post-apocalyptic-background"
},
{
"label": "Power Couple",
"value": "power-couple"
},
{
"label": "Pretend Lovers",
"value": "pretend-lovers"
},
{
"label": "Professional",
"value": "professional"
},
{
"label": "Prosecutor",
"value": "prosecutor"
},
{
"label": "Protagonist Falls in Love First",
"value": "protagonist-falls-in-love-first"
},
{
"label": "Protagonist Strong from the Start",
"value": "protagonist-strong-from-the-start"
},
{ {
"label": "Psychological", "label": "Psychological",
"value": "psychological" "value": "psychological"
@@ -185,10 +669,22 @@
"label": "REBIRTH", "label": "REBIRTH",
"value": "rebirth" "value": "rebirth"
}, },
{
"label": "Redemption",
"value": "redemption"
},
{ {
"label": "Regression", "label": "Regression",
"value": "regression" "value": "regression"
}, },
{
"label": "Reincarnation",
"value": "reincarnation"
},
{
"label": "reunion",
"value": "reunion"
},
{ {
"label": "Reverse Harem", "label": "Reverse Harem",
"value": "reverse-harem" "value": "reverse-harem"
@@ -197,6 +693,10 @@
"label": "Romance", "label": "Romance",
"value": "romance" "value": "romance"
}, },
{
"label": "S*x Friends",
"value": "sx-friends"
},
{ {
"label": "School Life", "label": "School Life",
"value": "school-life" "value": "school-life"
@@ -205,6 +705,30 @@
"label": "Sci-fi", "label": "Sci-fi",
"value": "sci-fi" "value": "sci-fi"
}, },
{
"label": "sci-fi elements",
"value": "sci-fi-elements"
},
{
"label": "science fiction",
"value": "science-fiction"
},
{
"label": "Second Chance",
"value": "second-chance"
},
{
"label": "Secret Crush",
"value": "secret-crush"
},
{
"label": "Secret Identity",
"value": "secret-identity"
},
{
"label": "Secret Relationship",
"value": "secret-relationship"
},
{ {
"label": "Seinen", "label": "Seinen",
"value": "seinen" "value": "seinen"
@@ -213,6 +737,10 @@
"label": "shonen ai", "label": "shonen ai",
"value": "shonen-ai" "value": "shonen-ai"
}, },
{
"label": "Short Story",
"value": "short-story"
},
{ {
"label": "Shoujo", "label": "Shoujo",
"value": "shoujo" "value": "shoujo"
@@ -245,10 +773,38 @@
"label": "Smut", "label": "Smut",
"value": "smut" "value": "smut"
}, },
{
"label": "soul-swapping",
"value": "soul-swapping"
},
{ {
"label": "Sports", "label": "Sports",
"value": "sports" "value": "sports"
}, },
{
"label": "Stoic Characters",
"value": "stoic-characters"
},
{
"label": "Straight Seme",
"value": "straight-seme"
},
{
"label": "Straight uke",
"value": "straight-uke"
},
{
"label": "Straight- Gay",
"value": "straight-gay"
},
{
"label": "Stubborn Protagonist",
"value": "stubborn-protagonist"
},
{
"label": "Sugar daddy",
"value": "sugar-daddy"
},
{ {
"label": "Supernatural", "label": "Supernatural",
"value": "supernatural" "value": "supernatural"
@@ -257,26 +813,74 @@
"label": "suspense", "label": "suspense",
"value": "suspense" "value": "suspense"
}, },
{
"label": "System Administrator",
"value": "system-administrator"
},
{
"label": "Thriller",
"value": "thriller"
},
{
"label": "Time Skip",
"value": "time-skip"
},
{ {
"label": "Tragedy", "label": "Tragedy",
"value": "tragedy" "value": "tragedy"
}, },
{
"label": "Tragic Past",
"value": "tragic-past"
},
{ {
"label": "Transmigration", "label": "Transmigration",
"value": "transmigration" "value": "transmigration"
}, },
{
"label": "Transplanted Memories",
"value": "transplanted-memories"
},
{
"label": "Tsundere",
"value": "tsundere"
},
{
"label": "Unconditional Love",
"value": "unconditional-love"
},
{ {
"label": "Unlimited flow", "label": "Unlimited flow",
"value": "unlimited-flow" "value": "unlimited-flow"
}, },
{
"label": "Unrequited Love",
"value": "unrequited-love"
},
{ {
"label": "Urban Life", "label": "Urban Life",
"value": "urban-life" "value": "urban-life"
}, },
{
"label": "weak to strong",
"value": "weak-to-strong"
},
{
"label": "wealthy characters",
"value": "wealthy-characters"
},
{ {
"label": "Western", "label": "Western",
"value": "western" "value": "western"
}, },
{
"label": "work",
"value": "work"
},
{
"label": "workplace",
"value": "workplace"
},
{ {
"label": "Wu xia", "label": "Wu xia",
"value": "wu-xia" "value": "wu-xia"
@@ -297,6 +901,14 @@
"label": "Yaoi", "label": "Yaoi",
"value": "yaoi" "value": "yaoi"
}, },
{
"label": "Younger love interest",
"value": "younger-love-interest"
},
{
"label": "Younger Love Interests",
"value": "younger-love-interests"
},
{ {
"label": "Yuri", "label": "Yuri",
"value": "yuri" "value": "yuri"
@@ -316,6 +928,14 @@
"label": "Chinese Novel", "label": "Chinese Novel",
"value": "chinese-novel" "value": "chinese-novel"
}, },
{
"label": "Cthulhu",
"value": "cthulhu"
},
{
"label": "Double AA",
"value": "double-aa"
},
{ {
"label": "historic love", "label": "historic love",
"value": "historic-love" "value": "historic-love"
@@ -336,6 +956,10 @@
"label": "Light Novel (CN)", "label": "Light Novel (CN)",
"value": "light-novel-cn" "value": "light-novel-cn"
}, },
{
"label": "Light Novel (JP)",
"value": "light-novel-jp"
},
{ {
"label": "Original Novel", "label": "Original Novel",
"value": "original-novel" "value": "original-novel"
@@ -352,6 +976,10 @@
"label": "Quick Transmigration", "label": "Quick Transmigration",
"value": "quick-transmigration" "value": "quick-transmigration"
}, },
{
"label": "Remove term: Chinese Novel Chinese NovelRemove term: Web Novel Web Novel",
"value": "remove-term-chinese-novel-chinese-novelremove-term-web-novel-web-novel"
},
{ {
"label": "romance", "label": "romance",
"value": "romance" "value": "romance"
@@ -5,6 +5,14 @@
"label": "تصنيف", "label": "تصنيف",
"value": [], "value": [],
"options": [ "options": [
{
"label": "Romance",
"value": "romance"
},
{
"label": "Shounen Ai",
"value": "shounen-ai"
},
{ {
"label": "Wuxia", "label": "Wuxia",
"value": "wuxia" "value": "wuxia"
@@ -17,14 +25,26 @@
"label": "XUANHUAN", "label": "XUANHUAN",
"value": "xuanhuan" "value": "xuanhuan"
}, },
{
"label": "أبطال خارقين",
"value": "أبطال-خارقين"
},
{ {
"label": "أكشن", "label": "أكشن",
"value": "action" "value": "action"
}, },
{
"label": "ألعاب",
"value": "ألعاب"
},
{ {
"label": "إثارة", "label": "إثارة",
"value": "excitement" "value": "excitement"
}, },
{
"label": "إسلامي",
"value": "إسلامي"
},
{ {
"label": "إنتقال الى عالم أخر", "label": "إنتقال الى عالم أخر",
"value": "isekai" "value": "isekai"
@@ -33,14 +53,38 @@
"label": "إيتشي", "label": "إيتشي",
"value": "etchi" "value": "etchi"
}, },
{
"label": "اكاديمي",
"value": "اكاديمي"
},
{
"label": "اكشن",
"value": "اكشن"
},
{ {
"label": "الخيال العلمي", "label": "الخيال العلمي",
"value": "sci-fi" "value": "sci-fi"
}, },
{
"label": "انتقام",
"value": "انتقام"
},
{
"label": "بطل مضاد",
"value": "بطل-مضاد"
},
{
"label": "بناء مملكة",
"value": "بناء-مملكة"
},
{ {
"label": "بوليسي", "label": "بوليسي",
"value": "policy" "value": "policy"
}, },
{
"label": "تاريخ",
"value": "تاريخ"
},
{ {
"label": "تاريخي", "label": "تاريخي",
"value": "historical" "value": "historical"
@@ -49,10 +93,22 @@
"label": "تحقيقات", "label": "تحقيقات",
"value": "تحقيق" "value": "تحقيق"
}, },
{
"label": "تشويق",
"value": "تشويق"
},
{ {
"label": "تقمص شخصيات", "label": "تقمص شخصيات",
"value": "rpg" "value": "rpg"
}, },
{
"label": "تلاعب",
"value": "تلاعب"
},
{
"label": "تناسخ",
"value": "تناسخ"
},
{ {
"label": "جريمة", "label": "جريمة",
"value": "crime" "value": "crime"
@@ -73,6 +129,22 @@
"label": "حياة مدرسية", "label": "حياة مدرسية",
"value": "school-life" "value": "school-life"
}, },
{
"label": "خارق للطبيعة",
"value": "خارق-للطبيعة"
},
{
"label": "خيال",
"value": "خيال"
},
{
"label": "خيال علمي",
"value": "خيال-علمي"
},
{
"label": "خيالي",
"value": "خيالي"
},
{ {
"label": "خيالي(فانتازيا)", "label": "خيالي(فانتازيا)",
"value": "fantasy" "value": "fantasy"
@@ -81,18 +153,50 @@
"label": "دراما", "label": "دراما",
"value": "drama" "value": "drama"
}, },
{
"label": "درامي",
"value": "درامي"
},
{ {
"label": "رعب", "label": "رعب",
"value": "horror" "value": "horror"
}, },
{
"label": "رعب كوني",
"value": "رعب-كوني"
},
{
"label": "رعب نفسي",
"value": "رعب-نفسي"
},
{ {
"label": "رومانسي", "label": "رومانسي",
"value": "romantic" "value": "romantic"
}, },
{
"label": "رومنسية",
"value": "رومنسية"
},
{
"label": "زيانشيا",
"value": "زيانشيا"
},
{
"label": "ستيم بانك",
"value": "ستيم-بانك"
},
{ {
"label": "سحر", "label": "سحر",
"value": "magic" "value": "magic"
}, },
{
"label": "سفر عبر الزمن",
"value": "سفر-عبر-الزمن"
},
{
"label": "سياسة",
"value": "سياسة"
},
{ {
"label": "سينن", "label": "سينن",
"value": "senen" "value": "senen"
@@ -117,14 +221,26 @@
"label": "ظواهر خارقة للطبيعة", "label": "ظواهر خارقة للطبيعة",
"value": "supernatural" "value": "supernatural"
}, },
{
"label": "عائلي",
"value": "عائلي"
},
{ {
"label": "غموض", "label": "غموض",
"value": "mysteries" "value": "mysteries"
}, },
{
"label": "فانتازي",
"value": "فانتازي"
},
{ {
"label": "فانتازيا", "label": "فانتازيا",
"value": "فانتازيا" "value": "فانتازيا"
}, },
{
"label": "فنتازيا",
"value": "فنتازيا"
},
{ {
"label": "فنون القتال", "label": "فنون القتال",
"value": "martial-arts" "value": "martial-arts"
@@ -133,6 +249,10 @@
"label": "قصة قصيرة", "label": "قصة قصيرة",
"value": "قصة-قصيرة" "value": "قصة-قصيرة"
}, },
{
"label": "قوة خارقة",
"value": "قوة-خارقة"
},
{ {
"label": "قوى خارقة", "label": "قوى خارقة",
"value": "superpower" "value": "superpower"
@@ -141,14 +261,34 @@
"label": "كوميدي", "label": "كوميدي",
"value": "comedy" "value": "comedy"
}, },
{
"label": "كوميديا",
"value": "كوميديا"
},
{
"label": "كوميدية",
"value": "كوميدية"
},
{ {
"label": "مأساوي", "label": "مأساوي",
"value": "tragedy" "value": "tragedy"
}, },
{
"label": "مؤامرة",
"value": "مؤامرة"
},
{ {
"label": "ما بعد الكارثة", "label": "ما بعد الكارثة",
"value": "after-the-disaster" "value": "after-the-disaster"
}, },
{
"label": "ما بعد نهاية العالم",
"value": "ما-بعد-نهاية-العالم"
},
{
"label": "مضاد البطل",
"value": "مضاد-البطل"
},
{ {
"label": "مغامرة", "label": "مغامرة",
"value": "adventure" "value": "adventure"
@@ -161,6 +301,10 @@
"label": "ناضج", "label": "ناضج",
"value": "mature" "value": "mature"
}, },
{
"label": "نظام",
"value": "نظام"
},
{ {
"label": "نفسي", "label": "نفسي",
"value": "psychological" "value": "psychological"
@@ -168,6 +312,10 @@
{ {
"label": "ون شوت", "label": "ون شوت",
"value": "ون-شوت" "value": "ون-شوت"
},
{
"label": "ووكسيا",
"value": "ووكسيا"
} }
] ]
}, },
@@ -184,6 +332,10 @@
"label": "رواية لايت", "label": "رواية لايت",
"value": "light-novel" "value": "light-novel"
}, },
{
"label": "رواية مؤلفة",
"value": "رواية-مؤلفة"
},
{ {
"label": "رواية ويب", "label": "رواية ويب",
"value": "web-novel" "value": "web-novel"
@@ -200,6 +352,10 @@
"label": "كورية", "label": "كورية",
"value": "korean" "value": "korean"
}, },
{
"label": "مؤلفة",
"value": "مؤلفة"
},
{ {
"label": "ون شوت", "label": "ون شوت",
"value": "ون-شوت" "value": "ون-شوت"
@@ -261,6 +417,10 @@
{ {
"label": "الرائجة", "label": "الرائجة",
"value": "popular" "value": "popular"
},
{
"label": "التقييم",
"value": "rating"
} }
] ]
} }
@@ -0,0 +1,200 @@
{
"filters": {
"genre[]": {
"type": "Checkbox",
"label": "Genre",
"value": [],
"options": [
{
"label": "Action",
"value": "action"
},
{
"label": "Adult",
"value": "adult"
},
{
"label": "Adventure",
"value": "adventure"
},
{
"label": "BL",
"value": "bl"
},
{
"label": "Comedy",
"value": "comedy"
},
{
"label": "Drama",
"value": "drama"
},
{
"label": "Fantasy",
"value": "fantasy"
},
{
"label": "Gender Bender",
"value": "gender-bender"
},
{
"label": "Harem",
"value": "harem"
},
{
"label": "Historical",
"value": "historical"
},
{
"label": "Horror",
"value": "horror"
},
{
"label": "Josei",
"value": "josei"
},
{
"label": "Martial Arts",
"value": "martial-arts"
},
{
"label": "Mature",
"value": "mature"
},
{
"label": "Mystery",
"value": "mystery"
},
{
"label": "Psychological",
"value": "psychological"
},
{
"label": "Romance",
"value": "romance"
},
{
"label": "School Life",
"value": "school-life"
},
{
"label": "Sci-fi",
"value": "sci-fi"
},
{
"label": "Shoujo",
"value": "shoujo"
},
{
"label": "Shounen Ai",
"value": "shounen-ai"
},
{
"label": "Slice of Life",
"value": "slice-of-life"
},
{
"label": "Smut",
"value": "smut"
},
{
"label": "Sports",
"value": "sports"
},
{
"label": "Supernatural",
"value": "supernatural"
},
{
"label": "Tragedy",
"value": "tragedy"
},
{
"label": "Wuxia",
"value": "wuxia"
},
{
"label": "Xianxia",
"value": "xianxia"
},
{
"label": "Yaoi",
"value": "yaoi"
}
]
},
"type[]": {
"type": "Checkbox",
"label": "Type",
"value": [],
"options": [
{
"label": "Chinese Novel",
"value": "chinese-novel"
},
{
"label": "Web Novel",
"value": "web-novel"
}
]
},
"status": {
"type": "Picker",
"label": "Status",
"value": "",
"options": [
{
"label": "All",
"value": ""
},
{
"label": "Ongoing",
"value": "ongoing"
},
{
"label": "Hiatus",
"value": "hiatus"
},
{
"label": "Completed",
"value": "completed"
}
]
},
"order": {
"type": "Picker",
"label": "Order by",
"value": "",
"options": [
{
"label": "Default",
"value": ""
},
{
"label": "A-Z",
"value": "title"
},
{
"label": "Z-A",
"value": "titlereverse"
},
{
"label": "Latest Update",
"value": "update"
},
{
"label": "Latest Added",
"value": "latest"
},
{
"label": "Popular",
"value": "popular"
},
{
"label": "Rating",
"value": "rating"
}
]
}
}
}
@@ -18,8 +18,8 @@
"value": "adventure" "value": "adventure"
}, },
{ {
"label": "Amnesia", "label": "Apocalypse",
"value": "amnesia" "value": "apocalypse"
}, },
{ {
"label": "Childcare", "label": "Childcare",
@@ -29,6 +29,10 @@
"label": "Comedy", "label": "Comedy",
"value": "comedy" "value": "comedy"
}, },
{
"label": "Contemporary Romance",
"value": "contemporary-romance"
},
{ {
"label": "Drama", "label": "Drama",
"value": "drama" "value": "drama"
@@ -37,18 +41,6 @@
"label": "Fantasy", "label": "Fantasy",
"value": "fantasy" "value": "fantasy"
}, },
{
"label": "fantasy of",
"value": "fantasy-of"
},
{
"label": "Fate",
"value": "fate"
},
{
"label": "Fiction",
"value": "fiction"
},
{ {
"label": "Gender Bender", "label": "Gender Bender",
"value": "gender-bender" "value": "gender-bender"
@@ -73,10 +65,6 @@
"label": "Josei", "label": "Josei",
"value": "josei" "value": "josei"
}, },
{
"label": "Magic",
"value": "magic"
},
{ {
"label": "Martial Arts", "label": "Martial Arts",
"value": "martial-arts" "value": "martial-arts"
@@ -97,6 +85,10 @@
"label": "Mystery", "label": "Mystery",
"value": "mystery" "value": "mystery"
}, },
{
"label": "Omegaverse",
"value": "omegaverse"
},
{ {
"label": "Psychological", "label": "Psychological",
"value": "psychological" "value": "psychological"
@@ -109,25 +101,13 @@
"label": "Revenge", "label": "Revenge",
"value": "revenge" "value": "revenge"
}, },
{
"label": "Rofan",
"value": "rofan"
},
{ {
"label": "Romance", "label": "Romance",
"value": "romance" "value": "romance"
}, },
{ {
"label": "Romance Fantasy", "label": "salvation",
"value": "romance-fantasy" "value": "salvation"
},
{
"label": "Romantic Comedy",
"value": "romantic-comedy"
},
{
"label": "Royalty",
"value": "royalty"
}, },
{ {
"label": "School Life", "label": "School Life",
@@ -137,6 +117,10 @@
"label": "Sci-fi", "label": "Sci-fi",
"value": "sci-fi" "value": "sci-fi"
}, },
{
"label": "Seinen",
"value": "seinen"
},
{ {
"label": "Shoujo", "label": "Shoujo",
"value": "shoujo" "value": "shoujo"
@@ -161,10 +145,6 @@
"label": "Supernatural", "label": "Supernatural",
"value": "supernatural" "value": "supernatural"
}, },
{
"label": "Suspense",
"value": "suspense"
},
{ {
"label": "Tragedy", "label": "Tragedy",
"value": "tragedy" "value": "tragedy"
@@ -173,6 +153,10 @@
"label": "Transmigration", "label": "Transmigration",
"value": "transmigration" "value": "transmigration"
}, },
{
"label": "Western Style",
"value": "western-style"
},
{ {
"label": "Xianxia", "label": "Xianxia",
"value": "xianxia" "value": "xianxia"
@@ -185,10 +169,6 @@
"label": "Yaoi", "label": "Yaoi",
"value": "yaoi" "value": "yaoi"
}, },
{
"label": "Younger Man",
"value": "younger-man"
},
{ {
"label": "Yuri", "label": "Yuri",
"value": "yuri" "value": "yuri"
@@ -223,14 +203,6 @@
{ {
"label": "Web Novel", "label": "Web Novel",
"value": "web-novel" "value": "web-novel"
},
{
"label": "Web Novel (KR)",
"value": "web-novel-kr"
},
{
"label": "Webnovel",
"value": "webnovel"
} }
] ]
}, },
@@ -9,10 +9,6 @@
"label": "Fan fiction", "label": "Fan fiction",
"value": "fan-fiction" "value": "fan-fiction"
}, },
{
"label": "fanqienovel",
"value": "fanqienovel"
},
{ {
"label": "fanstay", "label": "fanstay",
"value": "fanstay" "value": "fanstay"
@@ -21,54 +17,18 @@
"label": "fantasy", "label": "fantasy",
"value": "fantasy" "value": "fantasy"
}, },
{
"label": "football",
"value": "football"
},
{ {
"label": "horror", "label": "horror",
"value": "horror" "value": "horror"
}, },
{
"label": "Huyen Huyen",
"value": "huyen-huyen"
},
{
"label": "light novel",
"value": "light-novel"
},
{
"label": "living",
"value": "living"
},
{ {
"label": "martial arts", "label": "martial arts",
"value": "martial-arts" "value": "martial-arts"
}, },
{
"label": "Mature",
"value": "mature"
},
{
"label": "military",
"value": "military"
},
{ {
"label": "military history", "label": "military history",
"value": "military-history" "value": "military-history"
}, },
{
"label": "Mystical Demons",
"value": "mystical-demons"
},
{
"label": "nba",
"value": "nba"
},
{
"label": "roamnce",
"value": "roamnce"
},
{ {
"label": "romance", "label": "romance",
"value": "romance" "value": "romance"
@@ -81,65 +41,17 @@
"label": "Sci-fi online games", "label": "Sci-fi online games",
"value": "sci-fi-online-games" "value": "sci-fi-online-games"
}, },
{
"label": "Science fiction",
"value": "science-fiction"
},
{ {
"label": "Science fiction online game", "label": "Science fiction online game",
"value": "science-fiction-online-game" "value": "science-fiction-online-game"
}, },
{
"label": "speech",
"value": "speech"
},
{ {
"label": "Sports", "label": "Sports",
"value": "sports" "value": "sports"
}, },
{
"label": "tanmi doujin",
"value": "tanmi-doujin"
},
{
"label": "Terrifying supernatural",
"value": "terrifying-supernatural"
},
{
"label": "urabn",
"value": "urabn"
},
{ {
"label": "urban", "label": "urban",
"value": "urban" "value": "urban"
},
{
"label": "Urban Fiction",
"value": "urban-fiction"
},
{
"label": "urban;romance",
"value": "urbanromance"
},
{
"label": "wuxia",
"value": "wuxia"
},
{
"label": "wuxia fairy",
"value": "wuxia-fairy"
},
{
"label": "Xuan Feng weak initiation",
"value": "xuan-feng-weak-initiation"
},
{
"label": "Xuanhuan",
"value": "xuanhuan"
},
{
"label": "Youth Campus",
"value": "youth-campus"
} }
] ]
}, },
@@ -168,6 +80,10 @@
"label": "Entertainment", "label": "Entertainment",
"value": "entertainment" "value": "entertainment"
}, },
{
"label": "f",
"value": "f"
},
{ {
"label": "falo", "label": "falo",
"value": "falo" "value": "falo"
@@ -180,6 +96,10 @@
"label": "fan fiction", "label": "fan fiction",
"value": "fan-fiction" "value": "fan-fiction"
}, },
{
"label": "fanqie",
"value": "fanqie"
},
{ {
"label": "fanqienovel", "label": "fanqienovel",
"value": "fanqienovel" "value": "fanqienovel"
@@ -188,6 +108,10 @@
"label": "Fantasy", "label": "Fantasy",
"value": "fantasy" "value": "fantasy"
}, },
{
"label": "faoo",
"value": "faoo"
},
{ {
"label": "Football", "label": "Football",
"value": "football" "value": "football"
@@ -256,6 +180,10 @@
"label": "qimao", "label": "qimao",
"value": "qimao" "value": "qimao"
}, },
{
"label": "qq",
"value": "qq"
},
{ {
"label": "romance", "label": "romance",
"value": "romance" "value": "romance"
@@ -13,6 +13,10 @@
"label": "Adventure", "label": "Adventure",
"value": "adventure" "value": "adventure"
}, },
{
"label": "Anime",
"value": "anime"
},
{ {
"label": "Anime & Comics", "label": "Anime & Comics",
"value": "anime-comics" "value": "anime-comics"
@@ -21,6 +25,10 @@
"label": "Comedy", "label": "Comedy",
"value": "comedy" "value": "comedy"
}, },
{
"label": "Comic",
"value": "comic"
},
{ {
"label": "Drama", "label": "Drama",
"value": "drama" "value": "drama"
@@ -29,6 +37,10 @@
"label": "Fan-Fiction", "label": "Fan-Fiction",
"value": "fan-fiction" "value": "fan-fiction"
}, },
{
"label": "Fanfiction",
"value": "fanfiction"
},
{ {
"label": "Fantasy", "label": "Fantasy",
"value": "fantasy" "value": "fantasy"
@@ -45,6 +57,10 @@
"label": "Isekai", "label": "Isekai",
"value": "isekai" "value": "isekai"
}, },
{
"label": "Manga",
"value": "manga"
},
{ {
"label": "Martial Arts", "label": "Martial Arts",
"value": "martial-arts" "value": "martial-arts"
@@ -53,6 +69,10 @@
"label": "Mystery", "label": "Mystery",
"value": "mystery" "value": "mystery"
}, },
{
"label": "Romance",
"value": "romance"
},
{ {
"label": "School Life", "label": "School Life",
"value": "school-life" "value": "school-life"
@@ -69,6 +89,10 @@
"label": "Supernatural", "label": "Supernatural",
"value": "supernatural" "value": "supernatural"
}, },
{
"label": "System",
"value": "system"
},
{ {
"label": "Tragedy", "label": "Tragedy",
"value": "tragedy" "value": "tragedy"
@@ -91,7 +115,12 @@
"type": "Checkbox", "type": "Checkbox",
"label": "Type", "label": "Type",
"value": [], "value": [],
"options": [] "options": [
{
"label": "Webnovel (FF)",
"value": "webnovel-ff"
}
]
}, },
"status": { "status": {
"type": "Picker", "type": "Picker",
@@ -33,6 +33,10 @@
"label": "Drama", "label": "Drama",
"value": "drama" "value": "drama"
}, },
{
"label": "Ecchi",
"value": "ecchi"
},
{ {
"label": "entertainment", "label": "entertainment",
"value": "entertainment" "value": "entertainment"
@@ -41,6 +45,10 @@
"label": "Fantasy", "label": "Fantasy",
"value": "fantasy" "value": "fantasy"
}, },
{
"label": "Funny",
"value": "funny"
},
{ {
"label": "Gender Bender", "label": "Gender Bender",
"value": "gender-bender" "value": "gender-bender"
@@ -65,6 +73,10 @@
"label": "Isekai", "label": "Isekai",
"value": "isekai" "value": "isekai"
}, },
{
"label": "Jose",
"value": "jose"
},
{ {
"label": "Josei", "label": "Josei",
"value": "josei" "value": "josei"
@@ -137,6 +149,10 @@
"label": "Survival", "label": "Survival",
"value": "survival" "value": "survival"
}, },
{
"label": "Tragedy",
"value": "tragedy"
},
{ {
"label": "Transmigration", "label": "Transmigration",
"value": "transmigration" "value": "transmigration"
@@ -153,6 +169,10 @@
"label": "Xianxia", "label": "Xianxia",
"value": "xianxia" "value": "xianxia"
}, },
{
"label": "Xuanhuan",
"value": "xuanhuan"
},
{ {
"label": "Yaoi", "label": "Yaoi",
"value": "yaoi" "value": "yaoi"
@@ -0,0 +1,200 @@
{
"filters": {
"genre[]": {
"type": "Checkbox",
"label": "Genre",
"value": [],
"options": [
{
"label": "Action",
"value": "action"
},
{
"label": "Adult",
"value": "adult"
},
{
"label": "Adventure",
"value": "adventure"
},
{
"label": "Comedy",
"value": "comedy"
},
{
"label": "Drama",
"value": "drama"
},
{
"label": "Fantasy",
"value": "fantasy"
},
{
"label": "Harem",
"value": "harem"
},
{
"label": "Historical",
"value": "historical"
},
{
"label": "Isekai",
"value": "isekai"
},
{
"label": "Josei",
"value": "josei"
},
{
"label": "Martial Arts",
"value": "martial-arts"
},
{
"label": "Mature",
"value": "mature"
},
{
"label": "Medical",
"value": "medical"
},
{
"label": "Modern",
"value": "modern"
},
{
"label": "Mystery",
"value": "mystery"
},
{
"label": "Psychological",
"value": "psychological"
},
{
"label": "Romance",
"value": "romance"
},
{
"label": "School Life",
"value": "school-life"
},
{
"label": "Sci-fi",
"value": "sci-fi"
},
{
"label": "Seinen",
"value": "seinen"
},
{
"label": "Shoujo",
"value": "shoujo"
},
{
"label": "Shounen",
"value": "shounen"
},
{
"label": "Shounen Ai",
"value": "shounen-ai"
},
{
"label": "Slice of Life",
"value": "slice-of-life"
},
{
"label": "Supernatural",
"value": "supernatural"
},
{
"label": "Tragedy",
"value": "tragedy"
},
{
"label": "Wuxia",
"value": "wuxia"
},
{
"label": "Yaoi",
"value": "yaoi"
}
]
},
"type[]": {
"type": "Checkbox",
"label": "Type",
"value": [],
"options": [
{
"label": "Martial Arts",
"value": "martial-arts"
},
{
"label": "Published Novel (KR)",
"value": "published-novel-kr"
},
{
"label": "Web Novel",
"value": "web-novel"
}
]
},
"status": {
"type": "Picker",
"label": "Status",
"value": "",
"options": [
{
"label": "All",
"value": ""
},
{
"label": "Ongoing",
"value": "ongoing"
},
{
"label": "Hiatus",
"value": "hiatus"
},
{
"label": "Completed",
"value": "completed"
}
]
},
"order": {
"type": "Picker",
"label": "Order by",
"value": "",
"options": [
{
"label": "Default",
"value": ""
},
{
"label": "A-Z",
"value": "title"
},
{
"label": "Z-A",
"value": "titlereverse"
},
{
"label": "Latest Update",
"value": "update"
},
{
"label": "Latest Added",
"value": "latest"
},
{
"label": "Popular",
"value": "popular"
},
{
"label": "Rating",
"value": "rating"
}
]
}
}
}
+22 -5
View File
@@ -48,7 +48,7 @@
}, },
{ {
"id": "daotranslate", "id": "daotranslate",
"sourceSite": "https://daotranslate.net/", "sourceSite": "https://daotranslate.com/",
"sourceName": "DaoTranslate", "sourceName": "DaoTranslate",
"options": { "options": {
"lang": "English", "lang": "English",
@@ -149,9 +149,9 @@
"sourceSite": "https://moonlightnovel.com/", "sourceSite": "https://moonlightnovel.com/",
"sourceName": "Moonlight Novels", "sourceName": "Moonlight Novels",
"options": { "options": {
"versionIncrements": 1,
"lang": "English", "lang": "English",
"reverseChapters": true, "reverseChapters": true
"seriesPath": "/novels/"
} }
}, },
{ {
@@ -224,7 +224,7 @@
"sourceName": "Namevt", "sourceName": "Namevt",
"options": { "options": {
"reverseChapters": true, "reverseChapters": true,
"seriesPath": "/seri/", "seriesPath": "seri",
"lang": "Turkish" "lang": "Turkish"
} }
}, },
@@ -234,8 +234,25 @@
"sourceName": "Kodeks Library", "sourceName": "Kodeks Library",
"options": { "options": {
"reverseChapters": true, "reverseChapters": true,
"seriesPath": "series",
"lang": "Turkish" "lang": "Turkish"
} }
},
{
"id": "vandytranslate",
"sourceSite": "https://vandytranslate.com",
"sourceName": "Vandy Translate",
"options": {
"reverseChapters": true,
"lang": "English"
}
},
{
"id": "lazygirltranslations",
"sourceSite": "https://lazygirltranslations.com",
"sourceName": "Lazy Girl Translations",
"options": {
"reverseChapters": false,
"lang": "English"
}
} }
] ]
+29 -10
View File
@@ -37,7 +37,7 @@ class LightNovelWPPlugin implements Plugin.PluginBase {
this.icon = `multisrc/lightnovelwp/${metadata.id.toLowerCase()}/icon.png`; this.icon = `multisrc/lightnovelwp/${metadata.id.toLowerCase()}/icon.png`;
this.site = metadata.sourceSite; this.site = metadata.sourceSite;
const versionIncrements = metadata.options?.versionIncrements || 0; const versionIncrements = metadata.options?.versionIncrements || 0;
this.version = `1.1.${4 + versionIncrements}`; this.version = `1.1.${5 + versionIncrements}`;
this.options = metadata.options ?? ({} as LightNovelWPOptions); this.options = metadata.options ?? ({} as LightNovelWPOptions);
this.filters = metadata.filters satisfies Filters; this.filters = metadata.filters satisfies Filters;
} }
@@ -50,7 +50,10 @@ class LightNovelWPPlugin implements Plugin.PluginBase {
} }
async safeFecth(url: string, search: boolean): Promise<string> { async safeFecth(url: string, search: boolean): Promise<string> {
const r = await fetchApi(url); const urlParts = url.split('://');
const protocol = urlParts.shift();
const sanitizedUri = urlParts[0].replace(/\/\//g, '/');
const r = await fetchApi(protocol + '://' + sanitizedUri);
if (!r.ok && search != true) if (!r.ok && search != true)
throw new Error( throw new Error(
'Could not reach site (' + r.status + ') try to open in webview.', 'Could not reach site (' + r.status + ') try to open in webview.',
@@ -67,7 +70,9 @@ class LightNovelWPPlugin implements Plugin.PluginBase {
title == 'Just a moment...' || title == 'Just a moment...' ||
title == 'Redirecting...')) title == 'Redirecting...'))
) )
throw new Error('Captcha error, please open in webview'); throw new Error(
'Captcha error, please open in webview (or the website has changed url)',
);
return data; return data;
} }
@@ -85,10 +90,22 @@ class LightNovelWPPlugin implements Plugin.PluginBase {
const novelCover = const novelCover =
article.match(/<img.*src="(.*?)"(?:\sdata-src="(.*?)")?.*\/?>/) || []; article.match(/<img.*src="(.*?)"(?:\sdata-src="(.*?)")?.*\/?>/) || [];
let novelPath;
if (novelUrl.includes(this.site)) {
novelPath = novelUrl.replace(this.site, '');
} else {
// TODO: report website new url to server
let novelParts = novelUrl.split('/');
novelParts.shift();
novelParts.shift();
novelParts.shift();
novelPath = novelParts.join('/');
}
novels.push({ novels.push({
name: novelName, name: novelName,
cover: novelCover[2] || novelCover[1] || defaultCover, cover: novelCover[2] || novelCover[1] || defaultCover,
path: novelUrl.replace(this.site, ''), path: novelPath,
}); });
} }
}); });
@@ -103,7 +120,7 @@ class LightNovelWPPlugin implements Plugin.PluginBase {
showLatestNovels, showLatestNovels,
}: Plugin.PopularNovelsOptions<typeof this.filters>, }: Plugin.PopularNovelsOptions<typeof this.filters>,
): Promise<Plugin.NovelItem[]> { ): Promise<Plugin.NovelItem[]> {
const seriesPath = this.options?.seriesPath ?? 'series/'; const seriesPath = this.options?.seriesPath ?? '/series/';
let url = this.site + seriesPath + '?page=' + pageNo; let url = this.site + seriesPath + '?page=' + pageNo;
if (!filters) filters = this.filters || {}; if (!filters) filters = this.filters || {};
if (showLatestNovels) url += '&order=latest'; if (showLatestNovels) url += '&order=latest';
@@ -133,7 +150,7 @@ class LightNovelWPPlugin implements Plugin.PluginBase {
}; };
let isParsingGenres = false; let isParsingGenres = false;
let isReadingGenre = false; let isReadingGenre = false;
let isReadingSummary = false; let isReadingSummary = 0;
let isParsingInfo = false; let isParsingInfo = false;
let isReadingInfo = false; let isReadingInfo = false;
let isReadingAuthor = false; let isReadingAuthor = false;
@@ -166,7 +183,7 @@ class LightNovelWPPlugin implements Plugin.PluginBase {
(attribs['class'] === 'entry-content' || (attribs['class'] === 'entry-content' ||
attribs['itemprop'] === 'description') attribs['itemprop'] === 'description')
) { ) {
isReadingSummary = true; isReadingSummary++;
} // author and status } // author and status
else if (attribs['class'] === 'spe' || attribs['class'] === 'serl') { else if (attribs['class'] === 'spe' || attribs['class'] === 'serl') {
isParsingInfo = true; isParsingInfo = true;
@@ -194,6 +211,8 @@ class LightNovelWPPlugin implements Plugin.PluginBase {
} else if (attribs['class'] === 'epl-price') { } else if (attribs['class'] === 'epl-price') {
isReadingChapterInfo = 4; isReadingChapterInfo = 4;
} }
} else if (isReadingSummary && name === 'div') {
isReadingSummary++;
} }
}, },
ontext(data) { ontext(data) {
@@ -203,7 +222,7 @@ class LightNovelWPPlugin implements Plugin.PluginBase {
novel.genres += data + ', '; novel.genres += data + ', ';
} }
} // summary } // summary
else if (isReadingSummary) { else if (isReadingSummary === 1) {
novel.summary += data.trim(); novel.summary += data.trim();
} // author and status } // author and status
else if (isParsingInfo) { else if (isParsingInfo) {
@@ -322,7 +341,7 @@ class LightNovelWPPlugin implements Plugin.PluginBase {
if (name === 'br') { if (name === 'br') {
novel.summary += '\n'; novel.summary += '\n';
} else if (name === 'div') { } else if (name === 'div') {
isReadingSummary = false; isReadingSummary--;
} }
} // author and status } // author and status
else if (isParsingInfo) { else if (isParsingInfo) {
@@ -391,7 +410,7 @@ class LightNovelWPPlugin implements Plugin.PluginBase {
} }
return ( return (
data data
.match(/<div.*class="epcontent ([\s\S]*?)<div.*class="bottomnav"/g)?.[0] .match(/<div.*class="epcontent ([\s\S]*?)<div.*class="?bottomnav/g)?.[0]
.match(/<p.*>([\s\S]*?)<\/p>/g) .match(/<p.*>([\s\S]*?)<\/p>/g)
?.join('\n') || '' ?.join('\n') || ''
); );