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
+3 -3
View File
@@ -1,4 +1,4 @@
# Madara multisrc generator
# LightnovelWP multisrc generator
## 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 \
(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)
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
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))
and follow the instructions (url is easier and faster but sometimes it doesn't work)
@@ -5,40 +5,146 @@
"label": "Genre",
"value": [],
"options": [
{ "label": "Action", "value": "action" },
{ "label": "Adventure", "value": "adventure" },
{ "label": "Comedy", "value": "comedy" },
{ "label": "Drama", "value": "drama" },
{ "label": "Ecchi", "value": "ecchi" },
{ "label": "Fantasy", "value": "fantasy" },
{ "label": "Gender Bender", "value": "gender-bender" },
{ "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" }
{
"label": "Action",
"value": "action"
},
{
"label": "Adult",
"value": "adult"
},
{
"label": "Adventure",
"value": "adventure"
},
{
"label": "Comedy",
"value": "comedy"
},
{
"label": "Drama",
"value": "drama"
},
{
"label": "Ecchi",
"value": "ecchi"
},
{
"label": "Fantasy",
"value": "fantasy"
},
{
"label": "Gender Bender",
"value": "gender-bender"
},
{
"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[]": {
@@ -46,8 +152,18 @@
"label": "Tipe",
"value": [],
"options": [
{ "label": "", "value": "" },
{ "label": "Novel", "value": "novel" }
{
"label": "",
"value": ""
},
{
"label": "Manga",
"value": "manga"
},
{
"label": "Novel",
"value": "novel"
}
]
},
"status": {
@@ -55,24 +171,58 @@
"label": "Status",
"value": "",
"options": [
{ "label": "All", "value": "" },
{ "label": "Ongoing", "value": "ongoing" },
{ "label": "Hiatus", "value": "hiatus" },
{ "label": "Completed", "value": "completed" }
{
"label": "All",
"value": ""
},
{
"label": "Ongoing",
"value": "ongoing"
},
{
"label": "Hiatus",
"value": "hiatus"
},
{
"label": "Completed",
"value": "completed"
}
]
},
"order": {
"type": "Urutkan",
"label": "Order",
"type": "Picker",
"label": "Urutkan",
"value": "",
"options": [
{ "label": "Default", "value": "" },
{ "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": "Default",
"value": ""
},
{
"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",
"value": "seinen"
},
{
"label": "Shoujo",
"value": "shoujo"
},
{
"label": "Shounen",
"value": "shounen"
@@ -293,6 +297,10 @@
{
"label": "Populares",
"value": "popular"
},
{
"label": "Avaliação",
"value": "rating"
}
]
}
@@ -9,18 +9,38 @@
"label": "Action",
"value": "action"
},
{
"label": "Adult",
"value": "adult"
},
{
"label": "Adventure",
"value": "adventure"
},
{
"label": "Billionaire",
"value": "billionaire"
},
{
"label": "Comedy",
"value": "comedy"
},
{
"label": "Contemporary",
"value": "contemporary"
},
{
"label": "Drama",
"value": "drama"
},
{
"label": "Ecchi",
"value": "ecchi"
},
{
"label": "Family",
"value": "family"
},
{
"label": "Fantasy",
"value": "fantasy"
@@ -29,14 +49,46 @@
"label": "Gender Bender",
"value": "gender-bender"
},
{
"label": "Growth",
"value": "growth"
},
{
"label": "Harem",
"value": "harem"
},
{
"label": "Hidden Identity",
"value": "hidden-identity"
},
{
"label": "Historical",
"value": "historical"
},
{
"label": "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",
"value": "martial-arts"
@@ -45,14 +97,42 @@
"label": "Mature",
"value": "mature"
},
{
"label": "Mecha",
"value": "mecha"
},
{
"label": "Murim",
"value": "murim"
},
{
"label": "Mystery",
"value": "mystery"
},
{
"label": "Overpowered",
"value": "overpowered"
},
{
"label": "Psychological",
"value": "psychological"
},
{
"label": "Regression",
"value": "regression"
},
{
"label": "Reincarnation",
"value": "reincarnation"
},
{
"label": "Revenge",
"value": "revenge"
},
{
"label": "Rich",
"value": "rich"
},
{
"label": "Romance",
"value": "romance"
@@ -69,6 +149,10 @@
"label": "Seinen",
"value": "seinen"
},
{
"label": "Shoujo",
"value": "shoujo"
},
{
"label": "Shounen",
"value": "shounen"
@@ -77,17 +161,53 @@
"label": "Slice of Life",
"value": "slice-of-life"
},
{
"label": "Son-in-Law",
"value": "son-in-law"
},
{
"label": "Sports",
"value": "sports"
},
{
"label": "Supernatural",
"value": "supernatural"
},
{
"label": "Superpower",
"value": "superpower"
},
{
"label": "Tragedy",
"value": "tragedy"
},
{
"label": "Urban",
"value": "urban"
},
{
"label": "Virtual Game",
"value": "virtual-game"
},
{
"label": "Warrior",
"value": "warrior"
},
{
"label": "Webtoons",
"value": "webtoons"
},
{
"label": "Wuxia",
"value": "wuxia"
},
{
"label": "Xianxia",
"value": "xianxia"
},
{
"label": "Xuanhuan",
"value": "xuanhuan"
}
]
},
@@ -96,6 +216,46 @@
"label": "Type",
"value": [],
"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",
"value": "web-novel"
@@ -33,6 +33,10 @@
"label": "Drama",
"value": "drama"
},
{
"label": "Ecchi",
"value": "ecchi"
},
{
"label": "Family",
"value": "family"
@@ -41,6 +45,10 @@
"label": "Fantasy",
"value": "fantasy"
},
{
"label": "Gender Bender",
"value": "gender-bender"
},
{
"label": "Growth",
"value": "growth"
@@ -157,6 +165,10 @@
"label": "Son-in-Law",
"value": "son-in-law"
},
{
"label": "Sports",
"value": "sports"
},
{
"label": "Supernatural",
"value": "supernatural"
@@ -189,6 +201,10 @@
"label": "Wuxia",
"value": "wuxia"
},
{
"label": "Xianxia",
"value": "xianxia"
},
{
"label": "Xuanhuan",
"value": "xuanhuan"
+175 -36
View File
@@ -2,28 +2,97 @@
"filters": {
"genre[]": {
"type": "Checkbox",
"label": "Genres",
"label": "Genre",
"value": [],
"options": [
{ "label": "Action", "value": "action" },
{ "label": "Adventure", "value": "adventure" },
{ "label": "Comedy", "value": "comedy" },
{ "label": "Drama", "value": "drama" },
{ "label": "Ecchi", "value": "ecchi" },
{ "label": "Fantasy", "value": "fantasy" },
{ "label": "Gender Bender", "value": "gender-bender" },
{ "label": "Harem", "value": "harem" },
{ "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": "Seinen", "value": "seinen" },
{ "label": "Shounen", "value": "shounen" },
{ "label": "Slice of Life", "value": "slice-of-life" },
{ "label": "Supernatural", "value": "supernatural" },
{ "label": "Tragedy", "value": "tragedy" }
{
"label": "Action",
"value": "action"
},
{
"label": "Adult",
"value": "adult"
},
{
"label": "Adventure",
"value": "adventure"
},
{
"label": "Comedy",
"value": "comedy"
},
{
"label": "Drama",
"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[]": {
@@ -31,10 +100,46 @@
"label": "Type",
"value": [],
"options": [
{ "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": "Web Novel", "value": "web-novel" }
{
"label": "Fantasy",
"value": "fantasy"
},
{
"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": {
@@ -42,23 +147,57 @@
"label": "Status",
"value": "",
"options": [
{ "label": "All", "value": "" },
{ "label": "Ongoing", "value": "ongoing" },
{ "label": "Hiatus", "value": "hiatus" },
{ "label": "Completed", "value": "completed" }
{
"label": "All",
"value": ""
},
{
"label": "Ongoing",
"value": "ongoing"
},
{
"label": "Hiatus",
"value": "hiatus"
},
{
"label": "Completed",
"value": "completed"
}
]
},
"order": {
"type": "Picker",
"label": "Sort",
"value": "popular",
"label": "Order by",
"value": "",
"options": [
{ "label": "Popular", "value": "popular" },
{ "label": "A-Z", "value": "title" },
{ "label": "Z-A", "value": "titlereverse" },
{ "label": "Latest Update", "value": "update" },
{ "label": "Latest Added", "value": "latest" },
{ "label": "Rating", "value": "rating" }
{
"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"
}
]
}
}
@@ -17,6 +17,10 @@
"label": "Comedy",
"value": "comedy"
},
{
"label": "drama",
"value": "drama"
},
{
"label": "Fantasy",
"value": "fantasy"
@@ -25,6 +29,10 @@
"label": "Harem",
"value": "harem"
},
{
"label": "Martial Arts",
"value": "martial-arts"
},
{
"label": "Mystery",
"value": "mystery"
@@ -45,9 +53,17 @@
"label": "Seinen",
"value": "seinen"
},
{
"label": "Shounen",
"value": "shounen"
},
{
"label": "Slice of Life",
"value": "slice-of-life"
},
{
"label": "Thriller",
"value": "thriller"
}
]
},
@@ -56,6 +72,10 @@
"label": "Type",
"value": [],
"options": [
{
"label": "Chinese Novel",
"value": "chinese-novel"
},
{
"label": "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",
"value": [],
"options": [
{
"label": "1v1",
"value": "1v1"
},
{
"label": "ABO",
"value": "abo"
},
{
"label": "Absent Parents",
"value": "absent-parents"
},
{
"label": "Action",
"value": "action"
@@ -13,18 +25,102 @@
"label": "Adult",
"value": "adult"
},
{
"label": "Adults",
"value": "adults"
},
{
"label": "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",
"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",
"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",
"value": "campus"
@@ -33,26 +129,178 @@
"label": "carefree protagonist",
"value": "carefree-protagonist"
},
{
"label": "Caring Protagonist",
"value": "caring-protagonist"
},
{
"label": "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",
"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",
"value": "comedy"
},
{
"label": "Complex Family Relationships",
"value": "complex-family-relationships"
},
{
"label": "Confident Protagonist",
"value": "confident-protagonist"
},
{
"label": "Conflicting Loyalties",
"value": "conflicting-loyalties"
},
{
"label": "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",
"value": "drama"
},
{
"label": "Dystopia",
"value": "dystopia"
},
{
"label": "empowerment fiction",
"value": "empowerment-fiction"
},
{
"label": "Enemies Become Lovers",
"value": "enemies-become-lovers"
},
{
"label": "Entertaiment circle",
"value": "entertaiment-circle"
@@ -61,14 +309,34 @@
"label": "Entertainment circle",
"value": "entertainment-circle"
},
{
"label": "Evolution",
"value": "evolution"
},
{
"label": "Family Conflict",
"value": "family-conflict"
},
{
"label": "Fantasy",
"value": "fantasy"
},
{
"label": "Fated Lovers",
"value": "fated-lovers"
},
{
"label": "Fiction",
"value": "fiction"
},
{
"label": "Fictional",
"value": "fictional"
},
{
"label": "First Love",
"value": "first-love"
},
{
"label": "futuristic setting",
"value": "futuristic-setting"
@@ -85,14 +353,46 @@
"label": "General",
"value": "general"
},
{
"label": "Genetic Modifications",
"value": "genetic-modifications"
},
{
"label": "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",
"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",
"value": "historic-love"
@@ -105,6 +405,10 @@
"label": "Horror",
"value": "horror"
},
{
"label": "Human-Nonhuman Relationship",
"value": "human-nonhuman-relationship"
},
{
"label": "humor",
"value": "humor"
@@ -113,6 +417,10 @@
"label": "Idol",
"value": "idol"
},
{
"label": "Inferiority Complex",
"value": "inferiority-complex"
},
{
"label": "infrastructure",
"value": "infrastructure"
@@ -121,30 +429,98 @@
"label": "interstellar",
"value": "interstellar"
},
{
"label": "Isekai",
"value": "isekai"
},
{
"label": "Jealousy",
"value": "jealousy"
},
{
"label": "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",
"value": "love-at-first-sight"
},
{
"label": "Love Interest Falls in Love First",
"value": "love-interest-falls-in-love-first"
},
{
"label": "love romance",
"value": "love-romance"
},
{
"label": "Lovers Reunited",
"value": "lovers-reunited"
},
{
"label": "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",
"value": "marriage"
},
{
"label": "Marriage of Convenience",
"value": "marriage-of-convenience"
},
{
"label": "Martial Arts",
"value": "martial-arts"
},
{
"label": "Mary Sue",
"value": "mary-sue"
},
{
"label": "Mature",
"value": "mature"
@@ -153,26 +529,134 @@
"label": "Mecha",
"value": "mecha"
},
{
"label": "Medical Knowledge",
"value": "medical-knowledge"
},
{
"label": "Modern",
"value": "modern"
},
{
"label": "Modern day",
"value": "modern-day"
},
{
"label": "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",
"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",
"value": "omegaverse"
},
{
"label": "Orphans",
"value": "orphans"
},
{
"label": "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",
"value": "psychological"
@@ -185,10 +669,22 @@
"label": "REBIRTH",
"value": "rebirth"
},
{
"label": "Redemption",
"value": "redemption"
},
{
"label": "Regression",
"value": "regression"
},
{
"label": "Reincarnation",
"value": "reincarnation"
},
{
"label": "reunion",
"value": "reunion"
},
{
"label": "Reverse Harem",
"value": "reverse-harem"
@@ -197,6 +693,10 @@
"label": "Romance",
"value": "romance"
},
{
"label": "S*x Friends",
"value": "sx-friends"
},
{
"label": "School Life",
"value": "school-life"
@@ -205,6 +705,30 @@
"label": "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",
"value": "seinen"
@@ -213,6 +737,10 @@
"label": "shonen ai",
"value": "shonen-ai"
},
{
"label": "Short Story",
"value": "short-story"
},
{
"label": "Shoujo",
"value": "shoujo"
@@ -245,10 +773,38 @@
"label": "Smut",
"value": "smut"
},
{
"label": "soul-swapping",
"value": "soul-swapping"
},
{
"label": "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",
"value": "supernatural"
@@ -257,26 +813,74 @@
"label": "suspense",
"value": "suspense"
},
{
"label": "System Administrator",
"value": "system-administrator"
},
{
"label": "Thriller",
"value": "thriller"
},
{
"label": "Time Skip",
"value": "time-skip"
},
{
"label": "Tragedy",
"value": "tragedy"
},
{
"label": "Tragic Past",
"value": "tragic-past"
},
{
"label": "Transmigration",
"value": "transmigration"
},
{
"label": "Transplanted Memories",
"value": "transplanted-memories"
},
{
"label": "Tsundere",
"value": "tsundere"
},
{
"label": "Unconditional Love",
"value": "unconditional-love"
},
{
"label": "Unlimited flow",
"value": "unlimited-flow"
},
{
"label": "Unrequited Love",
"value": "unrequited-love"
},
{
"label": "Urban Life",
"value": "urban-life"
},
{
"label": "weak to strong",
"value": "weak-to-strong"
},
{
"label": "wealthy characters",
"value": "wealthy-characters"
},
{
"label": "Western",
"value": "western"
},
{
"label": "work",
"value": "work"
},
{
"label": "workplace",
"value": "workplace"
},
{
"label": "Wu xia",
"value": "wu-xia"
@@ -297,6 +901,14 @@
"label": "Yaoi",
"value": "yaoi"
},
{
"label": "Younger love interest",
"value": "younger-love-interest"
},
{
"label": "Younger Love Interests",
"value": "younger-love-interests"
},
{
"label": "Yuri",
"value": "yuri"
@@ -316,6 +928,14 @@
"label": "Chinese Novel",
"value": "chinese-novel"
},
{
"label": "Cthulhu",
"value": "cthulhu"
},
{
"label": "Double AA",
"value": "double-aa"
},
{
"label": "historic love",
"value": "historic-love"
@@ -336,6 +956,10 @@
"label": "Light Novel (CN)",
"value": "light-novel-cn"
},
{
"label": "Light Novel (JP)",
"value": "light-novel-jp"
},
{
"label": "Original Novel",
"value": "original-novel"
@@ -352,6 +976,10 @@
"label": "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",
"value": "romance"
@@ -5,6 +5,14 @@
"label": "تصنيف",
"value": [],
"options": [
{
"label": "Romance",
"value": "romance"
},
{
"label": "Shounen Ai",
"value": "shounen-ai"
},
{
"label": "Wuxia",
"value": "wuxia"
@@ -17,14 +25,26 @@
"label": "XUANHUAN",
"value": "xuanhuan"
},
{
"label": "أبطال خارقين",
"value": "أبطال-خارقين"
},
{
"label": "أكشن",
"value": "action"
},
{
"label": "ألعاب",
"value": "ألعاب"
},
{
"label": "إثارة",
"value": "excitement"
},
{
"label": "إسلامي",
"value": "إسلامي"
},
{
"label": "إنتقال الى عالم أخر",
"value": "isekai"
@@ -33,14 +53,38 @@
"label": "إيتشي",
"value": "etchi"
},
{
"label": "اكاديمي",
"value": "اكاديمي"
},
{
"label": "اكشن",
"value": "اكشن"
},
{
"label": "الخيال العلمي",
"value": "sci-fi"
},
{
"label": "انتقام",
"value": "انتقام"
},
{
"label": "بطل مضاد",
"value": "بطل-مضاد"
},
{
"label": "بناء مملكة",
"value": "بناء-مملكة"
},
{
"label": "بوليسي",
"value": "policy"
},
{
"label": "تاريخ",
"value": "تاريخ"
},
{
"label": "تاريخي",
"value": "historical"
@@ -49,10 +93,22 @@
"label": "تحقيقات",
"value": "تحقيق"
},
{
"label": "تشويق",
"value": "تشويق"
},
{
"label": "تقمص شخصيات",
"value": "rpg"
},
{
"label": "تلاعب",
"value": "تلاعب"
},
{
"label": "تناسخ",
"value": "تناسخ"
},
{
"label": "جريمة",
"value": "crime"
@@ -73,6 +129,22 @@
"label": "حياة مدرسية",
"value": "school-life"
},
{
"label": "خارق للطبيعة",
"value": "خارق-للطبيعة"
},
{
"label": "خيال",
"value": "خيال"
},
{
"label": "خيال علمي",
"value": "خيال-علمي"
},
{
"label": "خيالي",
"value": "خيالي"
},
{
"label": "خيالي(فانتازيا)",
"value": "fantasy"
@@ -81,18 +153,50 @@
"label": "دراما",
"value": "drama"
},
{
"label": "درامي",
"value": "درامي"
},
{
"label": "رعب",
"value": "horror"
},
{
"label": "رعب كوني",
"value": "رعب-كوني"
},
{
"label": "رعب نفسي",
"value": "رعب-نفسي"
},
{
"label": "رومانسي",
"value": "romantic"
},
{
"label": "رومنسية",
"value": "رومنسية"
},
{
"label": "زيانشيا",
"value": "زيانشيا"
},
{
"label": "ستيم بانك",
"value": "ستيم-بانك"
},
{
"label": "سحر",
"value": "magic"
},
{
"label": "سفر عبر الزمن",
"value": "سفر-عبر-الزمن"
},
{
"label": "سياسة",
"value": "سياسة"
},
{
"label": "سينن",
"value": "senen"
@@ -117,14 +221,26 @@
"label": "ظواهر خارقة للطبيعة",
"value": "supernatural"
},
{
"label": "عائلي",
"value": "عائلي"
},
{
"label": "غموض",
"value": "mysteries"
},
{
"label": "فانتازي",
"value": "فانتازي"
},
{
"label": "فانتازيا",
"value": "فانتازيا"
},
{
"label": "فنتازيا",
"value": "فنتازيا"
},
{
"label": "فنون القتال",
"value": "martial-arts"
@@ -133,6 +249,10 @@
"label": "قصة قصيرة",
"value": "قصة-قصيرة"
},
{
"label": "قوة خارقة",
"value": "قوة-خارقة"
},
{
"label": "قوى خارقة",
"value": "superpower"
@@ -141,14 +261,34 @@
"label": "كوميدي",
"value": "comedy"
},
{
"label": "كوميديا",
"value": "كوميديا"
},
{
"label": "كوميدية",
"value": "كوميدية"
},
{
"label": "مأساوي",
"value": "tragedy"
},
{
"label": "مؤامرة",
"value": "مؤامرة"
},
{
"label": "ما بعد الكارثة",
"value": "after-the-disaster"
},
{
"label": "ما بعد نهاية العالم",
"value": "ما-بعد-نهاية-العالم"
},
{
"label": "مضاد البطل",
"value": "مضاد-البطل"
},
{
"label": "مغامرة",
"value": "adventure"
@@ -161,6 +301,10 @@
"label": "ناضج",
"value": "mature"
},
{
"label": "نظام",
"value": "نظام"
},
{
"label": "نفسي",
"value": "psychological"
@@ -168,6 +312,10 @@
{
"label": "ون شوت",
"value": "ون-شوت"
},
{
"label": "ووكسيا",
"value": "ووكسيا"
}
]
},
@@ -184,6 +332,10 @@
"label": "رواية لايت",
"value": "light-novel"
},
{
"label": "رواية مؤلفة",
"value": "رواية-مؤلفة"
},
{
"label": "رواية ويب",
"value": "web-novel"
@@ -200,6 +352,10 @@
"label": "كورية",
"value": "korean"
},
{
"label": "مؤلفة",
"value": "مؤلفة"
},
{
"label": "ون شوت",
"value": "ون-شوت"
@@ -261,6 +417,10 @@
{
"label": "الرائجة",
"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"
},
{
"label": "Amnesia",
"value": "amnesia"
"label": "Apocalypse",
"value": "apocalypse"
},
{
"label": "Childcare",
@@ -29,6 +29,10 @@
"label": "Comedy",
"value": "comedy"
},
{
"label": "Contemporary Romance",
"value": "contemporary-romance"
},
{
"label": "Drama",
"value": "drama"
@@ -37,18 +41,6 @@
"label": "Fantasy",
"value": "fantasy"
},
{
"label": "fantasy of",
"value": "fantasy-of"
},
{
"label": "Fate",
"value": "fate"
},
{
"label": "Fiction",
"value": "fiction"
},
{
"label": "Gender Bender",
"value": "gender-bender"
@@ -73,10 +65,6 @@
"label": "Josei",
"value": "josei"
},
{
"label": "Magic",
"value": "magic"
},
{
"label": "Martial Arts",
"value": "martial-arts"
@@ -97,6 +85,10 @@
"label": "Mystery",
"value": "mystery"
},
{
"label": "Omegaverse",
"value": "omegaverse"
},
{
"label": "Psychological",
"value": "psychological"
@@ -109,25 +101,13 @@
"label": "Revenge",
"value": "revenge"
},
{
"label": "Rofan",
"value": "rofan"
},
{
"label": "Romance",
"value": "romance"
},
{
"label": "Romance Fantasy",
"value": "romance-fantasy"
},
{
"label": "Romantic Comedy",
"value": "romantic-comedy"
},
{
"label": "Royalty",
"value": "royalty"
"label": "salvation",
"value": "salvation"
},
{
"label": "School Life",
@@ -137,6 +117,10 @@
"label": "Sci-fi",
"value": "sci-fi"
},
{
"label": "Seinen",
"value": "seinen"
},
{
"label": "Shoujo",
"value": "shoujo"
@@ -161,10 +145,6 @@
"label": "Supernatural",
"value": "supernatural"
},
{
"label": "Suspense",
"value": "suspense"
},
{
"label": "Tragedy",
"value": "tragedy"
@@ -173,6 +153,10 @@
"label": "Transmigration",
"value": "transmigration"
},
{
"label": "Western Style",
"value": "western-style"
},
{
"label": "Xianxia",
"value": "xianxia"
@@ -185,10 +169,6 @@
"label": "Yaoi",
"value": "yaoi"
},
{
"label": "Younger Man",
"value": "younger-man"
},
{
"label": "Yuri",
"value": "yuri"
@@ -223,14 +203,6 @@
{
"label": "Web Novel",
"value": "web-novel"
},
{
"label": "Web Novel (KR)",
"value": "web-novel-kr"
},
{
"label": "Webnovel",
"value": "webnovel"
}
]
},
@@ -9,10 +9,6 @@
"label": "Fan fiction",
"value": "fan-fiction"
},
{
"label": "fanqienovel",
"value": "fanqienovel"
},
{
"label": "fanstay",
"value": "fanstay"
@@ -21,54 +17,18 @@
"label": "fantasy",
"value": "fantasy"
},
{
"label": "football",
"value": "football"
},
{
"label": "horror",
"value": "horror"
},
{
"label": "Huyen Huyen",
"value": "huyen-huyen"
},
{
"label": "light novel",
"value": "light-novel"
},
{
"label": "living",
"value": "living"
},
{
"label": "martial arts",
"value": "martial-arts"
},
{
"label": "Mature",
"value": "mature"
},
{
"label": "military",
"value": "military"
},
{
"label": "military history",
"value": "military-history"
},
{
"label": "Mystical Demons",
"value": "mystical-demons"
},
{
"label": "nba",
"value": "nba"
},
{
"label": "roamnce",
"value": "roamnce"
},
{
"label": "romance",
"value": "romance"
@@ -81,65 +41,17 @@
"label": "Sci-fi online games",
"value": "sci-fi-online-games"
},
{
"label": "Science fiction",
"value": "science-fiction"
},
{
"label": "Science fiction online game",
"value": "science-fiction-online-game"
},
{
"label": "speech",
"value": "speech"
},
{
"label": "Sports",
"value": "sports"
},
{
"label": "tanmi doujin",
"value": "tanmi-doujin"
},
{
"label": "Terrifying supernatural",
"value": "terrifying-supernatural"
},
{
"label": "urabn",
"value": "urabn"
},
{
"label": "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",
"value": "entertainment"
},
{
"label": "f",
"value": "f"
},
{
"label": "falo",
"value": "falo"
@@ -180,6 +96,10 @@
"label": "fan fiction",
"value": "fan-fiction"
},
{
"label": "fanqie",
"value": "fanqie"
},
{
"label": "fanqienovel",
"value": "fanqienovel"
@@ -188,6 +108,10 @@
"label": "Fantasy",
"value": "fantasy"
},
{
"label": "faoo",
"value": "faoo"
},
{
"label": "Football",
"value": "football"
@@ -256,6 +180,10 @@
"label": "qimao",
"value": "qimao"
},
{
"label": "qq",
"value": "qq"
},
{
"label": "romance",
"value": "romance"
@@ -13,6 +13,10 @@
"label": "Adventure",
"value": "adventure"
},
{
"label": "Anime",
"value": "anime"
},
{
"label": "Anime & Comics",
"value": "anime-comics"
@@ -21,6 +25,10 @@
"label": "Comedy",
"value": "comedy"
},
{
"label": "Comic",
"value": "comic"
},
{
"label": "Drama",
"value": "drama"
@@ -29,6 +37,10 @@
"label": "Fan-Fiction",
"value": "fan-fiction"
},
{
"label": "Fanfiction",
"value": "fanfiction"
},
{
"label": "Fantasy",
"value": "fantasy"
@@ -45,6 +57,10 @@
"label": "Isekai",
"value": "isekai"
},
{
"label": "Manga",
"value": "manga"
},
{
"label": "Martial Arts",
"value": "martial-arts"
@@ -53,6 +69,10 @@
"label": "Mystery",
"value": "mystery"
},
{
"label": "Romance",
"value": "romance"
},
{
"label": "School Life",
"value": "school-life"
@@ -69,6 +89,10 @@
"label": "Supernatural",
"value": "supernatural"
},
{
"label": "System",
"value": "system"
},
{
"label": "Tragedy",
"value": "tragedy"
@@ -91,7 +115,12 @@
"type": "Checkbox",
"label": "Type",
"value": [],
"options": []
"options": [
{
"label": "Webnovel (FF)",
"value": "webnovel-ff"
}
]
},
"status": {
"type": "Picker",
@@ -33,6 +33,10 @@
"label": "Drama",
"value": "drama"
},
{
"label": "Ecchi",
"value": "ecchi"
},
{
"label": "entertainment",
"value": "entertainment"
@@ -41,6 +45,10 @@
"label": "Fantasy",
"value": "fantasy"
},
{
"label": "Funny",
"value": "funny"
},
{
"label": "Gender Bender",
"value": "gender-bender"
@@ -65,6 +73,10 @@
"label": "Isekai",
"value": "isekai"
},
{
"label": "Jose",
"value": "jose"
},
{
"label": "Josei",
"value": "josei"
@@ -137,6 +149,10 @@
"label": "Survival",
"value": "survival"
},
{
"label": "Tragedy",
"value": "tragedy"
},
{
"label": "Transmigration",
"value": "transmigration"
@@ -153,6 +169,10 @@
"label": "Xianxia",
"value": "xianxia"
},
{
"label": "Xuanhuan",
"value": "xuanhuan"
},
{
"label": "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",
"sourceSite": "https://daotranslate.net/",
"sourceSite": "https://daotranslate.com/",
"sourceName": "DaoTranslate",
"options": {
"lang": "English",
@@ -149,9 +149,9 @@
"sourceSite": "https://moonlightnovel.com/",
"sourceName": "Moonlight Novels",
"options": {
"versionIncrements": 1,
"lang": "English",
"reverseChapters": true,
"seriesPath": "/novels/"
"reverseChapters": true
}
},
{
@@ -224,7 +224,7 @@
"sourceName": "Namevt",
"options": {
"reverseChapters": true,
"seriesPath": "/seri/",
"seriesPath": "seri",
"lang": "Turkish"
}
},
@@ -234,8 +234,25 @@
"sourceName": "Kodeks Library",
"options": {
"reverseChapters": true,
"seriesPath": "series",
"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.site = metadata.sourceSite;
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.filters = metadata.filters satisfies Filters;
}
@@ -50,7 +50,10 @@ class LightNovelWPPlugin implements Plugin.PluginBase {
}
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)
throw new Error(
'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 == '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;
}
@@ -85,10 +90,22 @@ class LightNovelWPPlugin implements Plugin.PluginBase {
const novelCover =
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({
name: novelName,
cover: novelCover[2] || novelCover[1] || defaultCover,
path: novelUrl.replace(this.site, ''),
path: novelPath,
});
}
});
@@ -103,7 +120,7 @@ class LightNovelWPPlugin implements Plugin.PluginBase {
showLatestNovels,
}: Plugin.PopularNovelsOptions<typeof this.filters>,
): Promise<Plugin.NovelItem[]> {
const seriesPath = this.options?.seriesPath ?? 'series/';
const seriesPath = this.options?.seriesPath ?? '/series/';
let url = this.site + seriesPath + '?page=' + pageNo;
if (!filters) filters = this.filters || {};
if (showLatestNovels) url += '&order=latest';
@@ -133,7 +150,7 @@ class LightNovelWPPlugin implements Plugin.PluginBase {
};
let isParsingGenres = false;
let isReadingGenre = false;
let isReadingSummary = false;
let isReadingSummary = 0;
let isParsingInfo = false;
let isReadingInfo = false;
let isReadingAuthor = false;
@@ -166,7 +183,7 @@ class LightNovelWPPlugin implements Plugin.PluginBase {
(attribs['class'] === 'entry-content' ||
attribs['itemprop'] === 'description')
) {
isReadingSummary = true;
isReadingSummary++;
} // author and status
else if (attribs['class'] === 'spe' || attribs['class'] === 'serl') {
isParsingInfo = true;
@@ -194,6 +211,8 @@ class LightNovelWPPlugin implements Plugin.PluginBase {
} else if (attribs['class'] === 'epl-price') {
isReadingChapterInfo = 4;
}
} else if (isReadingSummary && name === 'div') {
isReadingSummary++;
}
},
ontext(data) {
@@ -203,7 +222,7 @@ class LightNovelWPPlugin implements Plugin.PluginBase {
novel.genres += data + ', ';
}
} // summary
else if (isReadingSummary) {
else if (isReadingSummary === 1) {
novel.summary += data.trim();
} // author and status
else if (isParsingInfo) {
@@ -322,7 +341,7 @@ class LightNovelWPPlugin implements Plugin.PluginBase {
if (name === 'br') {
novel.summary += '\n';
} else if (name === 'div') {
isReadingSummary = false;
isReadingSummary--;
}
} // author and status
else if (isParsingInfo) {
@@ -391,7 +410,7 @@ class LightNovelWPPlugin implements Plugin.PluginBase {
}
return (
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)
?.join('\n') || ''
);