diff --git a/host.sh b/host.sh
index 3118428..060f816 100755
--- a/host.sh
+++ b/host.sh
@@ -17,6 +17,7 @@ fi
git merge $current --strategy-option theirs
+npm run clearMulti
npm run generate
npm run json
git add .
diff --git a/icons/src/en/foxaholic/icon.png b/icons/multisrc/madara/icons/foxaholic.png
similarity index 100%
rename from icons/src/en/foxaholic/icon.png
rename to icons/multisrc/madara/icons/foxaholic.png
diff --git a/icons/multisrc/madara/icons/lightnovelupdates.png b/icons/multisrc/madara/icons/lightnovelupdates.png
new file mode 100644
index 0000000..7968fa6
Binary files /dev/null and b/icons/multisrc/madara/icons/lightnovelupdates.png differ
diff --git a/icons/src/en/nitromanga/icon.png b/icons/multisrc/madara/icons/nitromanga.png
similarity index 100%
rename from icons/src/en/nitromanga/icon.png
rename to icons/multisrc/madara/icons/nitromanga.png
diff --git a/icons/multisrc/readwn/icons/fannovel.png b/icons/multisrc/readwn/icons/fannovel.png
new file mode 100644
index 0000000..72e22a9
Binary files /dev/null and b/icons/multisrc/readwn/icons/fannovel.png differ
diff --git a/icons/multisrc/readwn/icons/wuxiamtl.png b/icons/multisrc/readwn/icons/wuxiamtl.png
new file mode 100644
index 0000000..72e22a9
Binary files /dev/null and b/icons/multisrc/readwn/icons/wuxiamtl.png differ
diff --git a/icons/src/en/wuxiaworld/icon.png b/icons/src/en/wuxiaworld/icon.png
index 7c815fc..2b0fed2 100644
Binary files a/icons/src/en/wuxiaworld/icon.png and b/icons/src/en/wuxiaworld/icon.png differ
diff --git a/libs/parseMadaraDate.ts b/libs/parseMadaraDate.ts
deleted file mode 100644
index da5d4a7..0000000
--- a/libs/parseMadaraDate.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import dayjs from "dayjs";
-
-export const parseMadaraDate = (date: string) => {
- if (date.includes("ago")) {
- const dayJSDate = dayjs(new Date()); // today
- const timeAgo = date.match(/\d+/)?.[0] || "";
- const timeAgoInt = parseInt(timeAgo, 10);
-
- if (!timeAgo) return date; // there is no number!
-
- if (date.includes("hours ago") || date.includes("hour ago")) {
- dayJSDate.subtract(timeAgoInt, "hours"); // go back N hours
- }
-
- if (date.includes("days ago") || date.includes("day ago")) {
- dayJSDate.subtract(timeAgoInt, "days"); // go back N days
- }
-
- if (date.includes("months ago") || date.includes("month ago")) {
- dayJSDate.subtract(timeAgoInt, "months"); // go back N months
- }
-
- return dayJSDate.format("LL");
- }
- return date; // there is no "ago" so don't mess with the date
-};
diff --git a/plugins/english/comrademao.ts b/plugins/english/comrademao.ts
index 2a4f054..cc8ef35 100644
--- a/plugins/english/comrademao.ts
+++ b/plugins/english/comrademao.ts
@@ -2,7 +2,7 @@ import { CheerioAPI, load as parseHTML } from "cheerio";
import { fetchApi, fetchFile } from "@libs/fetch";
import { FilterTypes, Filters } from "@libs/filterInputs";
import { Plugin } from "@typings/plugin";
-import { parseMadaraDate } from "@libs/parseMadaraDate";
+import dayjs from "dayjs";
class ComradeMaoPlugin implements Plugin.PluginBase {
id = "comrademao";
@@ -20,14 +20,14 @@ class ComradeMaoPlugin implements Plugin.PluginBase {
const novelName = loadedCheerio(this).find(".tt").text().trim();
const novelCover = loadedCheerio(this).find("img").attr("src");
const novelUrl = loadedCheerio(this).find("a").attr("href");
-
+
if (!novelUrl) return;
const novel = {
name: novelName,
cover: novelCover,
url: novelUrl,
- }
+ };
novels.push(novel);
});
return novels;
@@ -35,7 +35,7 @@ class ComradeMaoPlugin implements Plugin.PluginBase {
async popularNovels(
pageNo: number,
- { filters }: Plugin.PopularNovelsOptions
+ { filters }: Plugin.PopularNovelsOptions,
): Promise {
let link = this.site;
@@ -43,25 +43,19 @@ class ComradeMaoPlugin implements Plugin.PluginBase {
link += "page/" + pageNo + "/?post_type=novel";
- const headers = new Headers();
- const body = await fetchApi(link, { headers }).then((result) =>
- result.text()
- );
+ const body = await fetchApi(link).then((result) => result.text());
const loadedCheerio = parseHTML(body);
return this.parseNovels(loadedCheerio);
}
async parseNovelAndChapters(novelUrl: string): Promise {
- const url = novelUrl;
- const headers = new Headers();
- const result = await fetchApi(url, { headers });
- const body = await result.text();
+ const body = await fetchApi(novelUrl).then((result) => result.text());
let loadedCheerio = parseHTML(body);
const novel: Plugin.SourceNovel = {
- url,
+ url: novelUrl,
chapters: [],
};
@@ -69,23 +63,23 @@ class ComradeMaoPlugin implements Plugin.PluginBase {
novel.cover = loadedCheerio("div.thumbook > div > img").attr("src");
- loadedCheerio(".infox .wd-full").each((i,el) => {
- const detailName = loadedCheerio(el).find("b").text();
- const detail = loadedCheerio(el).find('span').text();
+ loadedCheerio(".infox .wd-full").each((i, el) => {
+ const detailName = loadedCheerio(el).find("b").text();
+ const detail = loadedCheerio(el).find("span").text();
switch (detailName) {
- case 'Publisher: ':
- novel.author = detail.trim();
- break;
- case 'Status: ':
- novel.status = detail.trim();
- break;
- case 'Genres:':
- novel.genres = detail.trim().replace(/ , /g, ',');
- break;
- case 'Description: ':
- novel.summary = detail.trim();
- break;
+ case "Publisher: ":
+ novel.author = detail.trim();
+ break;
+ case "Status: ":
+ novel.status = detail.trim();
+ break;
+ case "Genres:":
+ novel.genres = detail.trim().replace(/ , /g, ",");
+ break;
+ case "Description: ":
+ novel.summary = detail.trim();
+ break;
}
});
@@ -94,53 +88,78 @@ class ComradeMaoPlugin implements Plugin.PluginBase {
loadedCheerio("#chapterlist")
.find("li")
.each(function () {
- const releaseDate = parseMadaraDate(
- loadedCheerio(this).find(".chapterdate").text()
- );
+ const chapterUrl = loadedCheerio(this).find("a").attr("href");
+ if (!chapterUrl) return;
+
const chapterName = loadedCheerio(this)
.find(".chapternum")
.text();
- const chapterUrl = loadedCheerio(this).find("a").attr("href");
+ let releaseTime = loadedCheerio(this)
+ .find(".chapterdate")
+ .text();
- if (!chapterUrl) return;
+ if (releaseTime?.includes?.("ago")) {
+ const timeAgo = releaseTime.match(/\d+/)?.[0] || "0";
+ const timeAgoInt = parseInt(timeAgo, 10);
+ if (timeAgoInt) {
+ const dayJSDate = dayjs(); // today
+ if (
+ releaseTime.includes("hours ago") ||
+ releaseTime.includes("hour ago")
+ ) {
+ dayJSDate.subtract(timeAgoInt, "hours"); // go back N hours
+ }
+
+ if (
+ releaseTime.includes("days ago") ||
+ releaseTime.includes("day ago")
+ ) {
+ dayJSDate.subtract(timeAgoInt, "days"); // go back N days
+ }
+
+ if (
+ releaseTime.includes("months ago") ||
+ releaseTime.includes("month ago")
+ ) {
+ dayJSDate.subtract(timeAgoInt, "months"); // go back N months
+ }
+
+ releaseTime = dayJSDate.format("LL");
+ }
+ }
chapter.push({
name: chapterName,
url: chapterUrl,
- releaseTime: releaseDate,
+ releaseTime,
});
});
novel.chapters = chapter.reverse();
return novel;
- };
+ }
async parseChapter(chapterUrl: string): Promise {
- const headers = new Headers();
- const result = await fetchApi(chapterUrl, { headers });
- const body = await result.text();
-
+ const body = await fetchApi(chapterUrl).then((result) => result.text());
const loadedCheerio = parseHTML(body);
const chapterText = loadedCheerio("#chaptercontent").html()?.trim() || "";
return chapterText;
- };
+ }
async searchNovels(
searchTerm: string,
- pageNo: number
+ pageNo: number,
): Promise {
const url = `${this.site}page/${pageNo}/?s=${searchTerm}&post_type=novel`;
- const headers = new Headers();
- const result = await fetchApi(url, { headers });
- const body = await result.text();
+ const body = await fetchApi(url).then((result) => result.text());
const loadedCheerio = parseHTML(body);
return this.parseNovels(loadedCheerio);
- };
+ }
async fetchImage(url: string): Promise {
return await fetchFile(url);
diff --git a/plugins/english/foxaholic.ts b/plugins/english/foxaholic.ts
deleted file mode 100644
index 06fa251..0000000
--- a/plugins/english/foxaholic.ts
+++ /dev/null
@@ -1,165 +0,0 @@
-import { load as parseHTML } from "cheerio";
-import { fetchApi, fetchFile } from "@libs/fetch";
-import { Plugin } from "@typings/plugin";
-import { Filters } from "@libs/filterInputs";
-
-class Foxaholic implements Plugin.PluginBase {
- id = "foxaholic";
- name = "Foxaholic";
- icon = "src/en/foxaholic/icon.png";
- site = "https://www.foxaholic.com/";
- filters?: Filters | undefined;
- version = "1.0.0";
- baseUrl = this.site;
- async popularNovels(pageNo: number, options: Plugin.PopularNovelsOptions): Promise {
- const link = `${this.baseUrl}novel/page/${pageNo}/?m_orderby=rating`;
-
- const result = await fetchApi(link);
- const body = await result.text();
-
- const loadedCheerio = parseHTML(body);
-
- const novels: Plugin.NovelItem[] = [];
-
- loadedCheerio(".page-item-detail").each(function () {
- const novelName = loadedCheerio(this).find(".h5 > a").text();
- const novelCover = loadedCheerio(this).find("img").attr("data-src");
- const novelUrl = loadedCheerio(this).find(".h5 > a").attr("href");
-
- if (!novelUrl) return;
-
- const novel = {
- name: novelName,
- cover: novelCover,
- url: novelUrl,
- };
-
- novels.push(novel);
- });
-
- return novels;
- }
- async parseNovelAndChapters(novelUrl: string): Promise {
- const url = novelUrl;
- const result = await fetchApi(url);
- const body = await result.text();
-
- let loadedCheerio = parseHTML(body);
-
- const novel: Plugin.SourceNovel = {
- url,
- chapters: [],
- };
-
- novel.name = loadedCheerio(".post-title > h1").text().trim();
-
- novel.cover = loadedCheerio(".summary_image > a > img").attr(
- "data-src"
- );
-
- loadedCheerio(".post-content_item").each(function () {
- const detailName = loadedCheerio(this)
- .find(".summary-heading > h5")
- .text()
- .trim();
- const detail = loadedCheerio(this).find(".summary-content").html();
-
- if (!detail) return;
-
- switch (detailName) {
- case "Genre":
- novel.genres = loadedCheerio(detail)
- .children("a")
- .map((i, el) => loadedCheerio(el).text())
- .toArray()
- .join(",");
- break;
- case "Author":
- novel.author = loadedCheerio(detail)
- .children("a")
- .map((i, el) => loadedCheerio(el).text())
- .toArray()
- .join(", ");
- break;
- case "Novel":
- novel.status = detail?.trim().replace(/G/g, "g");
- break;
- }
- });
-
- loadedCheerio(
- ".description-summary > div.summary__content > div"
- ).remove();
-
- novel.summary = loadedCheerio(
- ".description-summary > div.summary__content"
- )
- .text()
- .trim();
-
- let chapter: Plugin.ChapterItem[] = [];
- loadedCheerio(".wp-manga-chapter").each(function () {
- const chapterName = loadedCheerio(this)
- .find("a")
- .text()
- .replace(/[\t\n]/g, "")
- .trim();
- const releaseDate = loadedCheerio(this).find("span").text().trim();
- const chapterUrl = loadedCheerio(this).find("a").attr("href");
-
- if (!chapterUrl) return;
-
- chapter.push({
- name: chapterName,
- releaseTime: releaseDate,
- url: chapterUrl,
- });
- });
-
- novel.chapters = chapter.reverse();
-
- return novel;
- }
- async parseChapter(chapterUrl: string): Promise {
- const result = await fetchApi(chapterUrl);
- const body = await result.text();
-
- const loadedCheerio = parseHTML(body);
-
- loadedCheerio("img").removeAttr("srcset");
- let chapterText = loadedCheerio(".reading-content").html() || '';
-
- return chapterText;
- }
- async searchNovels(searchTerm: string, pageNo: number): Promise {
- const url = `${this.baseUrl}?s=${searchTerm}&post_type=wp-manga`;
- const result = await fetchApi(url);
- const body = await result.text();
-
- const loadedCheerio = parseHTML(body);
-
- const novels: Plugin.NovelItem[] = [];
-
- loadedCheerio(".c-tabs-item__content").each(function () {
- const novelName = loadedCheerio(this).find(".h4 > a").text();
- const novelCover = loadedCheerio(this).find("img").attr("data-src");
- const novelUrl = loadedCheerio(this).find(".h4 > a").attr("href");
-
- if (!novelUrl) return;
-
- novels.push({
- name: novelName,
- url: novelUrl,
- cover: novelCover,
- });
- });
-
- return novels;
- }
- async fetchImage(url: string): Promise {
- return fetchFile(url);
- }
-
-}
-
-export default new Foxaholic();
diff --git a/plugins/english/freewebnovel.ts b/plugins/english/freewebnovel.ts
index a492319..1e3b376 100644
--- a/plugins/english/freewebnovel.ts
+++ b/plugins/english/freewebnovel.ts
@@ -1,103 +1,108 @@
-import { Plugin } from "@typings/plugin";
-import { fetchApi, fetchFile } from "@libs/fetch";
-import { NovelStatus } from "@libs/novelStatus";
-import { load as parseHTML } from "cheerio";
-
-class FreeWebNovel implements Plugin.PluginBase {
- id = "FWN.com";
- name = "Web NOVEL";
- site = "https://freewebnovel.com";
- version = "1.0.0";
- icon = "src/en/freewebnovel/icon.png";
-
-
- async popularNovels(
- page: number,
- { showLatestNovels }: Plugin.PopularNovelsOptions,
- ): Promise {
- const sort = showLatestNovels
- ? "/latest-release-novels/"
- : "/completed-novels/";
-
- const body = await fetchApi(this.site + sort + page).then((res) => res.text());
- const loadedCheerio = parseHTML(body);
-
- const novels: Plugin.NovelItem[] = loadedCheerio(".li-row")
- .map((index, element) => ({
- name: loadedCheerio(element).find(".tit").text(),
- cover: loadedCheerio(element).find("img").attr("src"),
- url: this.site + loadedCheerio(element).find("h3 > a").attr("href"),
- }))
- .get();
-
- return novels;
- }
-
- async parseNovelAndChapters(url: string): Promise {
- const body = await fetchApi(url).then((res) => res.text());
- const loadedCheerio = parseHTML(body);
-
- const novel: Plugin.SourceNovel = { url };
- novel.name = loadedCheerio("h1.tit").text();
- novel.cover = loadedCheerio(".pic > img").attr("src");
- novel.genres = loadedCheerio("[title=Genre]")
- .next()
- .text()
- .replace(/[\t\n]/g, "");
-
- novel.author = loadedCheerio("[title=Author]")
- .next()
- .text()
- .replace(/[\t\n]/g, "");
-
- novel.status = loadedCheerio("[title=Status]")
- .next()
- .text()
- .replace(/[\t\n]/g, "");
-
- novel.summary = loadedCheerio(".inner").text().trim();
-
- const chapters: Plugin.ChapterItem[] = loadedCheerio("#idData > li > a")
- .map((index, element) => ({
- name: loadedCheerio(element).attr("title") || "Chapter " + index,
- releaseTime: null,
- url: this.site + loadedCheerio(element).attr("href"),
- }))
- .get();
-
- novel.chapters = chapters;
- return novel;
- }
-
- async parseChapter(chapterUrl: string): Promise {
- const body = await fetchApi(chapterUrl).then((res) => res.text());
- const loadedCheerio = parseHTML(body);
-
- const chapterText = loadedCheerio("div.txt").html() || "";
- return chapterText;
- }
-
- async searchNovels(
- searchkey: string,
- ): Promise {
- const body = await fetchApi(this.site + "/search/", {
- method: "POST",
- body: JSON.stringify({ searchkey }),
- }).then((res) => res.text());
-
- const loadedCheerio = parseHTML(body);
- const novels: Plugin.NovelItem[] = loadedCheerio(".li-row > .li > .con")
- .map((index, element) => ({
- name: loadedCheerio(element).find(".tit").text(),
- cover: loadedCheerio(element).find(".pic > a > img").attr("data-cfsrc"),
- url: this.site + loadedCheerio(element).find("h3 > a").attr("href"),
- }))
- .get();
-
- return novels;
- }
-
- fetchImage = fetchFile;
-}
-
-export default new FreeWebNovel();
+import { Plugin } from "@typings/plugin";
+import { fetchApi, fetchFile } from "@libs/fetch";
+import { NovelStatus } from "@libs/novelStatus";
+import { load as parseHTML } from "cheerio";
+
+class FreeWebNovel implements Plugin.PluginBase {
+ id = "FWN.com";
+ name = "Web NOVEL";
+ site = "https://freewebnovel.com";
+ version = "1.0.0";
+ icon = "src/en/freewebnovel/icon.png";
+
+ async popularNovels(
+ page: number,
+ { showLatestNovels }: Plugin.PopularNovelsOptions,
+ ): Promise {
+ const sort = showLatestNovels
+ ? "/latest-release-novels/"
+ : "/completed-novels/";
+
+ const body = await fetchApi(this.site + sort + page).then((res) => res.text());
+ const loadedCheerio = parseHTML(body);
+
+ const novels: Plugin.NovelItem[] = loadedCheerio(".li-row")
+ .map((index, element) => ({
+ name: loadedCheerio(element).find(".tit").text(),
+ cover: loadedCheerio(element).find("img").attr("src"),
+ url: this.site + loadedCheerio(element).find("h3 > a").attr("href"),
+ }))
+ .get();
+
+ return novels;
+ }
+
+ async parseNovelAndChapters(url: string): Promise {
+ const body = await fetchApi(url).then((res) => res.text());
+ const loadedCheerio = parseHTML(body);
+
+ const novel: Plugin.SourceNovel = { url };
+ novel.name = loadedCheerio("h1.tit").text();
+ novel.cover = loadedCheerio(".pic > img").attr("src");
+ novel.genres = loadedCheerio("[title=Genre]")
+ .next()
+ .text()
+ .replace(/[\t\n]/g, "");
+
+ novel.author = loadedCheerio("[title=Author]")
+ .next()
+ .text()
+ .replace(/[\t\n]/g, "");
+
+ novel.status = loadedCheerio("[title=Status]")
+ .next()
+ .text()
+ .replace(/[\t\n]/g, "");
+
+ novel.summary = loadedCheerio(".inner").text().trim();
+
+ const chapters: Plugin.ChapterItem[] = loadedCheerio("#idData > li > a")
+ .map((chapterIndex, element) => ({
+ name: loadedCheerio(element).attr("title") || "Chapter " + (chapterIndex + 1),
+ url: this.site + loadedCheerio(element).attr("href"),
+ releaseTime: null,
+ chapterNumber: chapterIndex + 1,
+ }))
+ .get();
+
+ novel.chapters = chapters;
+ return novel;
+ }
+
+ async parseChapter(chapterUrl: string): Promise {
+ const body = await fetchApi(chapterUrl).then((res) => res.text());
+ const loadedCheerio = parseHTML(body);
+
+ const chapterText = loadedCheerio("div.txt").html() || "";
+ return chapterText;
+ }
+
+ async searchNovels(
+ searchTerm: string,
+ ): Promise {
+ const body = await fetchApi(this.site + "/search/", {
+ headers: {
+ "Content-Type": "application/x-www-form-urlencoded",
+ Referer: this.site,
+ Origin: this.site,
+ },
+ method: "POST",
+ body: "searchkey=" + encodeURIComponent(searchTerm)
+ }).then((res) => res.text());
+
+ const loadedCheerio = parseHTML(body);
+ const novels: Plugin.NovelItem[] = loadedCheerio(".li-row > .li > .con")
+ .map((index, element) => ({
+ name: loadedCheerio(element).find(".tit").text(),
+ cover: loadedCheerio(element).find(".pic > a > img").attr("src"),
+ url: this.site + loadedCheerio(element).find("h3 > a").attr("href"),
+ }))
+ .get();
+
+ return novels;
+ }
+
+ fetchImage = fetchFile;
+}
+
+export default new FreeWebNovel();
diff --git a/plugins/english/lightnovelupdates.ts b/plugins/english/lightnovelupdates.ts
deleted file mode 100644
index 01b5c1e..0000000
--- a/plugins/english/lightnovelupdates.ts
+++ /dev/null
@@ -1,153 +0,0 @@
-import { load as parseHTML } from "cheerio";
-import { fetchApi, fetchFile } from "@libs/fetch";
-import { Plugin } from "@typings/plugin";
-import { Filters } from "@libs/filterInputs";
-
-class LightNovelUpdates implements Plugin.PluginBase {
- id = "LightNovelUpdates";
- name = "Light Novel Updates";
- version = "1.0.0";
- icon = "src/en/lightnovelupdates/icon.png";
- site = "https://www.lightnovelupdates.com/";
- baseUrl = this.site;
- async popularNovels(pageNo: number, options: Plugin.PopularNovelsOptions): Promise {
- let url = `${this.baseUrl}novel/page/${pageNo}/?m_orderby=rating`;
-
- const body = await fetchApi(url).then((r) => r.text());
-
- const loadedCheerio = parseHTML(body);
-
- let novels: Plugin.NovelItem[] = [];
-
- loadedCheerio(".page-item-detail").each(function () {
- const novelName = loadedCheerio(this).find(".h5 > a").text();
- const novelCover = loadedCheerio(this).find("img").attr("src");
- const novelUrl = loadedCheerio(this).find(".h5 > a").attr("href");
-
- if (!novelUrl) return;
-
- const novel = {
- name: novelName,
- cover: novelCover,
- url: novelUrl,
- };
-
- novels.push(novel);
- });
-
- return novels;
- }
- async parseNovelAndChapters(novelUrl: string): Promise {
- const url = novelUrl;
-
- const body = await fetchApi(url).then((r) => r.text());
-
- let loadedCheerio = parseHTML(body);
-
- const novel: Plugin.SourceNovel = {
- url,
- chapters: [],
- };
-
- novel.name = loadedCheerio(".post-title > h1").text().trim();
- novel.cover =
- loadedCheerio(".summary_image > a > img").attr("src") || undefined;
-
- loadedCheerio(".post-content_item").each(function () {
- const detailName = loadedCheerio(this)
- .find(".summary-heading > h5")
- .text()
- .trim();
- const detail = loadedCheerio(this)
- .find(".summary-content")
- .text()
- .trim();
-
- switch (detailName) {
- case "Genre(s)":
- novel.genres = detail.trim().replace(/[\t\n]/g, ",");
- break;
- case "Author(s)":
- novel.author = detail.trim();
- break;
- case "Status":
- novel.status = detail.replace(/G/g, "g");
- break;
- }
- });
-
- novel.summary = loadedCheerio("div.summary__content").text();
-
- const chapter: Plugin.ChapterItem[] = [];
-
- const novelId = loadedCheerio(".rating-post-id").attr("value")!;
-
- let formData = new FormData();
- formData.append("action", "manga_get_chapters");
- formData.append("manga", novelId);
-
- const data = await fetchApi(
- "https://www.lightnovelupdates.com/wp-admin/admin-ajax.php",
- {
- method: "POST",
- body: formData,
- },
- );
- const text = await data.text();
-
- loadedCheerio = parseHTML(text);
-
- loadedCheerio(".wp-manga-chapter").each(function () {
- const chapterName = loadedCheerio(this).find("a").text().trim();
- const releaseDate = loadedCheerio(this).find("span").text().trim();
- const chapterUrl = loadedCheerio(this).find("a").attr("href");
-
- if (!chapterUrl) return;
-
- chapter.push({
- name: chapterName,
- releaseTime: releaseDate,
- url: chapterUrl,
- });
- });
-
- novel.chapters = chapter.reverse();
-
- return novel;
- }
- async parseChapter(chapterUrl: string): Promise {
- const chapterText = 'unable to load';
-
- return chapterText;
- }
- async searchNovels(searchTerm: string, pageNo: number): Promise {
- const url = `${this.baseUrl}?s=${searchTerm}&post_type=wp-manga&m_orderby=rating`;
-
- const body = await fetchApi(url).then((r) => r.text());
-
- const loadedCheerio = parseHTML(body);
-
- let novels: Plugin.NovelItem[] = [];
-
- loadedCheerio(".c-tabs-item__content").each(function () {
- const novelName = loadedCheerio(this).find(".h4 > a").text();
- const novelCover = loadedCheerio(this).find("img").attr("src");
- const novelUrl = loadedCheerio(this).find(".h4 > a").attr("href");
-
- if (!novelUrl) return;
-
- novels.push({
- url: novelUrl,
- name: novelName,
- cover: novelCover,
- });
- });
- return novels;
- }
- async fetchImage(url: string): Promise {
- return fetchFile(url);
- }
-
-}
-
-export default new LightNovelUpdates();
\ No newline at end of file
diff --git a/plugins/english/nitromanga.ts b/plugins/english/nitromanga.ts
deleted file mode 100644
index 9e09de3..0000000
--- a/plugins/english/nitromanga.ts
+++ /dev/null
@@ -1,154 +0,0 @@
-import { load as parseHTML } from "cheerio";
-import { fetchApi, fetchFile } from "@libs/fetch";
-import { Plugin } from "@typings/plugin";
-import { Filters } from "@libs/filterInputs";
-
-class NitroManga implements Plugin.PluginBase {
- id = "nitromanga";
- name = "Nitro Manga";
- version = "1.0.0";
- icon = "src/en/nitromanga/icon.png";
- filters?: Filters | undefined;
- site = "https://nitromanga.com/";
- baseUrl = this.site;
- async popularNovels(pageNo: number, options: Plugin.PopularNovelsOptions): Promise {
- const url = this.baseUrl + "mangas-genre/novel/?m_orderby=trending";
-
- const body = await fetchApi(url).then((r) => r.text());
-
- const loadedCheerio = parseHTML(body);
-
- let novels: Plugin.NovelItem[] = [];
-
- loadedCheerio(".page-item-detail").each(function () {
- const novelName = loadedCheerio(this).find("h3 > a").text();
- const novelCover = loadedCheerio(this).find("img").attr("data-src");
- const novelUrl = loadedCheerio(this).find("h3 > a").attr("href");
-
- if (!novelUrl) return;
-
- const novel = {
- name: novelName,
- cover: novelCover,
- url: novelUrl,
- };
-
- novels.push(novel);
- });
-
- return novels;
- }
- async parseNovelAndChapters(novelUrl: string): Promise {
- const url = novelUrl;
-
- const body = await fetchApi(url).then((r) => r.text());
-
- let loadedCheerio = parseHTML(body);
-
- const novel: Plugin.SourceNovel = {
- url,
- chapters: [],
- };
-
- loadedCheerio(".manga-title-badges.custom.novel").remove();
-
- novel.name = loadedCheerio(".post-title > h1").text().trim();
- novel.cover = loadedCheerio(".summary_image")
- .find("img")
- .attr("data-src");
-
- novel.summary = loadedCheerio(".summary__content").text()?.trim();
-
- novel.genres = loadedCheerio(".genres-content")
- .children("a")
- .map((i, el) => loadedCheerio(el).text())
- .toArray()
- .join(",");
-
- loadedCheerio(".post-content_item").each(function () {
- const detailName = loadedCheerio(this)
- .find(".summary-heading")
- .text()
- .trim();
- const detail = loadedCheerio(this)
- .find(".summary-content")
- .text()
- .trim();
- switch (detailName) {
- case "Author(s)":
- novel.author = detail;
- break;
- case "Status":
- novel.status = detail.replace(/G/g, "g");
- break;
- }
- });
- let chapter: Plugin.ChapterItem[] = [];
-
- let chapterlisturl = novelUrl + "ajax/chapters/";
-
- const data = await fetchApi(chapterlisturl, { method: "POST" });
- const text = await data.text();
-
- loadedCheerio = parseHTML(text);
-
- loadedCheerio(".wp-manga-chapter").each(function () {
- const chapterName = loadedCheerio(this).find("a").text().trim();
- const releaseDate = loadedCheerio(this).find("span").text().trim();
- const chapterUrl = loadedCheerio(this).find("a").attr("href");
-
- if (!chapterUrl) return;
-
- chapter.push({
- name: chapterName,
- releaseTime: releaseDate,
- url: chapterUrl,
- });
- });
-
- novel.chapters = chapter.reverse();
-
- return novel;
- }
- async parseChapter(chapterUrl: string): Promise {
- const body = await fetchApi(chapterUrl).then((r) => r.text());
-
- let loadedCheerio = parseHTML(body);
-
- const chapterText = loadedCheerio(".text-left").html() || '';
-
- return chapterText;
- }
- async searchNovels(searchTerm: string, pageNo: number): Promise {
- const url = this.baseUrl + '?s=' + searchTerm + '&post_type=wp-manga&genre%5B%5D=novel';
-
- const body = await fetchApi(url).then((r) => r.text());
-
- let loadedCheerio = parseHTML(body);
-
- let novels: Plugin.NovelItem[] = [];
-
- loadedCheerio(".c-tabs-item__content").each(function () {
- const novelName = loadedCheerio(this).find("h3 > a").text();
- const novelCover = loadedCheerio(this).find("img").attr("data-src");
- const novelUrl = loadedCheerio(this).find("h3 > a").attr("href");
-
- if (!novelUrl) return;
-
- const novel = {
- name: novelName,
- cover: novelCover,
- url: novelUrl,
- };
-
- novels.push(novel);
- });
-
- return novels;
- }
- async fetchImage(url: string): Promise {
- return fetchFile(url);
- }
-}
-
-export default new NitroManga();
\ No newline at end of file
diff --git a/plugins/russian/LitSpace.ts b/plugins/russian/LitSpace.ts
index d4922ac..3d21655 100644
--- a/plugins/russian/LitSpace.ts
+++ b/plugins/russian/LitSpace.ts
@@ -1,241 +1,242 @@
-import { Plugin } from "@typings/plugin";
-import { FilterTypes, Filters } from "@libs/filterInputs";
-import { fetchApi, fetchFile } from "@libs/fetch";
-import { NovelStatus } from "@libs/novelStatus";
-import { load as parseHTML } from "cheerio";
-
-class freedlit implements Plugin.PluginBase {
- id = "freedlit.space";
- name = "LitSpace";
- site = "https://freedlit.space";
- version = "1.0.0";
- icon = "src/ru/freedlit/icon.png";
-
-
- async popularNovels(
- page: number,
- { showLatestNovels, filters }: Plugin.PopularNovelsOptions,
- ): Promise {
- let url = this.site + "/get-books/all/list/" + page + "?sort=";
- url += showLatestNovels ? "recent" : filters?.sort?.value || "popular";
- url += "&status=" + (filters?.status?.value || "all");
- url += "&access=" + (filters?.access?.value || "all");
- url += "&adult=" + (filters?.adult?.value || "hide");
-
- if (filters?.genre?.value?.include?.length) {
- url += filters.genre.value.include
- .map(id => '&genres_included[]=' + id).join("");
- }
-
- if (filters?.genre?.value?.exclude?.length) {
- url += filters.genre.value.exclude
- .map(id => '&genres_excluded[]=' + id).join("");
- }
-
- const body = await fetchApi(url).then((res) => res.text());
- const loadedCheerio = parseHTML(body);
-
- const novels: Plugin.NovelItem[] = [];
- loadedCheerio("#bookListBlock > div > div").each(function () {
- const name = loadedCheerio(this).find("div > h4 > a").text()?.trim();
- const cover = loadedCheerio(this)
- .find("div > a > img")
- .attr("src")
- ?.trim();
- const url = loadedCheerio(this).find("div > h4 > a").attr("href")?.trim();
- if (!name || !url) return;
-
- novels.push({ name, cover, url });
- });
-
- return novels;
- }
-
- async parseNovelAndChapters(novelUrl: string): Promise {
- const body = await fetchApi(novelUrl).then((res) => res.text());
- const loadedCheerio = parseHTML(body);
-
- const novel: Plugin.SourceNovel = {
- url: novelUrl,
- name: loadedCheerio(".book-info h4").text(),
- cover: loadedCheerio(".book-cover > div > img").attr("src")?.trim(),
- summary: loadedCheerio("#nav-home").text()?.trim(),
- author: loadedCheerio(".book-info h5 > a").text(),
- genres: loadedCheerio(".genre-list > a")
- .map((index, element) => loadedCheerio(element).text())
- .get()
- .join(","),
- };
-
- const chapters: Plugin.ChapterItem[] = [];
-
- loadedCheerio("a.chapter-line").each(function () {
- const name = loadedCheerio(this).find("h6").text();
- const releaseTime = loadedCheerio(this).find('span[class="date"]').text();
- const url = loadedCheerio(this).attr("href");
- if (!name || !url) return;
-
- chapters.push({ name, releaseTime, url });
- });
-
- novel.chapters = chapters;
- return novel;
- }
-
- async parseChapter(chapterUrl: string): Promise {
- const body = await fetchApi(chapterUrl).then((res) => res.text());
- const loadedCheerio = parseHTML(body);
-
- loadedCheerio("div.mobile-block").remove();
- loadedCheerio("div.standart-block").remove();
-
- const chapterText = loadedCheerio('div[class="chapter"]').html() || "";
- return chapterText;
- }
-
- async searchNovels(searchTerm: string): Promise {
- const url = `${this.site}/search?query=${searchTerm}&type=all`;
- const body = await fetchApi(url).then((res) => res.text());
- const loadedCheerio = parseHTML(body);
-
- const novels: Plugin.NovelItem[] = [];
- loadedCheerio("#bookListBlock > div").each(function () {
- const name = loadedCheerio(this).find("h4 > a").text()?.trim();
- const cover = loadedCheerio(this).find("a > img").attr("src")?.trim();
- const url = loadedCheerio(this).find("h4 > a").attr("href")?.trim();
- if (!name || !url) return;
-
- novels.push({ name, cover, url });
- });
-
- return novels;
- }
- fetchImage = fetchFile;
-
- filters = {
- sort: {
- label: "Сортировка:",
- value: "",
- options: [
- { label: "По популярности", value: "popular" },
- { label: "По количеству комментариев", value: "comments" },
- { label: "По количеству лайков", value: "likes" },
- { label: "По новизне", value: "recent" },
- { label: "По просмотрам", value: "views" },
- ],
- type: FilterTypes.Picker,
- },
- genre: {
- label: "Жанры:",
- value: { include: [], exclude: [] },
- options: [
- { label: "Любой жанр", value: "all" },
- { label: "Альтернативная история", value: "alternative-history" },
- { label: "Антиутопия", value: "dystopia" },
- { label: "Бизнес-литература", value: "business-literature" },
- { label: "Боевая фантастика", value: "combat-fiction" },
- { label: "Боевик", value: "action" },
- { label: "Боевое фэнтези", value: "combat-fantasy" },
- { label: "Бояръ-Аниме", value: "boyar-anime" },
- { label: "Героическая фантастика", value: "heroic-fiction" },
- { label: "Героическое фэнтези", value: "heroic-fantasy" },
- { label: "Городское фэнтези", value: "urban-fantasy" },
- { label: "Гримдарк", value: "grimdark" },
- { label: "Детектив", value: "mystery" },
- { label: "Детская литература", value: "kids-literature" },
- { label: "Документальная проза", value: "biography" },
- { label: "Историческая проза", value: "historical-fiction" },
- { label: "Исторический детектив", value: "historical-mystery" },
- { label: "Исторический любовный роман", value: "historical-romantic-novel" },
- { label: "Историческое фэнтези", value: "historical-fantasy" },
- { label: "Киберпанк", value: "cyberpunk" },
- { label: "Космическая фантастика", value: "cosmic-fiction" },
- { label: "ЛитРПГ", value: "litrpg" },
- { label: "Лоу / Низкое фэнтези", value: "low-fantasy" },
- { label: "Любовное фэнтези", value: "romantic-fantasy" },
- { label: "Любовный роман", value: "romantic-novel" },
- { label: "Мистика", value: "mystic" },
- { label: "Мистический детектив", value: "mystic-detective" },
- { label: "Научная фантастика", value: "science-fiction" },
- { label: "Подростковая проза", value: "young-adult" },
- { label: "Политический роман", value: "political-romance" },
- { label: "Попаданцы", value: "accidental-travel" },
- { label: "Попаданцы в магические миры", value: "magic-worlds-travel" },
- { label: "Попаданцы во времени", value: "time-travel" },
- { label: "Порнотика", value: "pornotica" },
- { label: "Постапокалипсис", value: "post-apocalypse" },
- { label: "Поэзия", value: "poetry" },
- { label: "Приключения", value: "adventure" },
- { label: "Публицистика", value: "journalism" },
- { label: "Пьеса", value: "play" },
- { label: "Развитие личности", value: "how-to-book" },
- { label: "Разное", value: "other" },
- { label: "Реализм", value: "Realism" },
- { label: "РеалРПГ", value: "realrpg" },
- { label: "Репликация", value: "replication" },
- { label: "Романтическая эротика", value: "romantic-erotic-fiction" },
- { label: "Сказка", value: "fairy-tale" },
- { label: "Слэш", value: "slash" },
- { label: "Современная проза", value: "modern-prose" },
- { label: "Современный любовный роман", value: "modern-romantic-novel" },
- { label: "Социальная фантастика", value: "social-fiction" },
- { label: "Стимпанк", value: "steampunk" },
- { label: "Сценарий", value: "scenario" },
- { label: "Сюаньхуань", value: "xuanhuan" },
- { label: "Сянься", value: "xianxia" },
- { label: "Тёмное фэнтези", value: "dark-fantasy" },
- { label: "Триллер", value: "thriller" },
- { label: "Уся", value: "wuxia" },
- { label: "Фантастика", value: "fiction" },
- { label: "Фантастический детектив", value: "mystery-fiction" },
- { label: "Фанфик", value: "fan-fiction" },
- { label: "Фемслэш", value: "femslash" },
- { label: "Фэнтези", value: "fantasy" },
- { label: "Хоррор", value: "horror" },
- { label: "Шпионский детектив", value: "spy-crime" },
- { label: "Эпическое фэнтези", value: "epic-fantasy" },
- { label: "Эротика", value: "erotic-fiction" },
- { label: "Эротическая фантастика", value: "erotic-fiction" },
- { label: "Эротический фанфик", value: "erotic-fan-fiction" },
- { label: "Эротическое фэнтези", value: "erotic-fantasy" },
- { label: "Этническое фэнтези", value: "ethnic-fantasy" },
- { label: "Юмор", value: "humor" },
- { label: "Юмористическая фантастика", value: "humor-fiction" },
- { label: "Юмористическое фэнтези", value: "humor-fantasy" },
- { label: "RPS", value: "rps" },
- ],
- type: FilterTypes.ExcludableCheckboxGroup,
- },
- status: {
- label: "Статус:",
- value: "",
- options: [
- { label: "Любой статус", value: "all" },
- { label: "В процессе", value: "in-process" },
- { label: "Завершено", value: "finished" },
- ],
- type: FilterTypes.Picker,
- },
- access: {
- label: "Доступ:",
- value: "",
- options: [
- { label: "Любой доступ", value: "all" },
- { label: "Бесплатные", value: "free" },
- { label: "Платные", value: "paid" },
- ],
- type: FilterTypes.Picker,
- },
- adult: {
- label: "Возрастные ограничения:",
- value: "",
- options: [
- { label: "Скрыть 18+", value: "hide" },
- { label: "Показать +18", value: "show" },
- ],
- type: FilterTypes.Picker,
- },
- } satisfies Filters;
-}
-
-export default new freedlit();
+import { Plugin } from "@typings/plugin";
+import { FilterTypes, Filters } from "@libs/filterInputs";
+import { fetchApi, fetchFile } from "@libs/fetch";
+import { NovelStatus } from "@libs/novelStatus";
+import { load as parseHTML } from "cheerio";
+
+class freedlit implements Plugin.PluginBase {
+ id = "freedlit.space";
+ name = "LitSpace";
+ site = "https://freedlit.space";
+ version = "1.0.0";
+ icon = "src/ru/freedlit/icon.png";
+
+ async popularNovels(
+ page: number,
+ { showLatestNovels, filters }: Plugin.PopularNovelsOptions,
+ ): Promise {
+ let url = this.site + "/get-books/all/list/" + page + "?sort=";
+ url += showLatestNovels ? "recent" : filters?.sort?.value || "popular";
+ url += "&status=" + (filters?.status?.value || "all");
+ url += "&access=" + (filters?.access?.value || "all");
+ url += "&adult=" + (filters?.adult?.value || "hide");
+
+ if (filters?.genre?.value?.include?.length) {
+ url += filters.genre.value.include
+ .map((id) => "&genres_included[]=" + id)
+ .join("");
+ }
+
+ if (filters?.genre?.value?.exclude?.length) {
+ url += filters.genre.value.exclude
+ .map((id) => "&genres_excluded[]=" + id)
+ .join("");
+ }
+
+ const body = await fetchApi(url).then((res) => res.text());
+ const loadedCheerio = parseHTML(body);
+
+ const novels: Plugin.NovelItem[] = [];
+ loadedCheerio("#bookListBlock > div > div").each(function () {
+ const name = loadedCheerio(this).find("div > h4 > a").text()?.trim();
+ const cover = loadedCheerio(this)
+ .find("div > a > img")
+ .attr("src")
+ ?.trim();
+ const url = loadedCheerio(this).find("div > h4 > a").attr("href")?.trim();
+ if (!name || !url) return;
+
+ novels.push({ name, cover, url });
+ });
+
+ return novels;
+ }
+
+ async parseNovelAndChapters(novelUrl: string): Promise {
+ const body = await fetchApi(novelUrl).then((res) => res.text());
+ const loadedCheerio = parseHTML(body);
+
+ const novel: Plugin.SourceNovel = {
+ url: novelUrl,
+ name: loadedCheerio(".book-info h4").text(),
+ cover: loadedCheerio(".book-cover > div > img").attr("src")?.trim(),
+ summary: loadedCheerio("#nav-home").text()?.trim(),
+ author: loadedCheerio(".book-info h5 > a").text(),
+ genres: loadedCheerio(".genre-list > a")
+ .map((index, element) => loadedCheerio(element).text())
+ .get()
+ .join(","),
+ };
+
+ const chapters: Plugin.ChapterItem[] = [];
+
+ loadedCheerio("a.chapter-line").each((chapterIndex, element) => {
+ const name = loadedCheerio(element).find("h6").text();
+ const url = loadedCheerio(element).attr("href");
+ if (!name || !url) return;
+
+ const releaseTime = loadedCheerio(element).find('span[class="date"]').text();
+ chapters.push({ name, url, releaseTime, chapterNumber: chapterIndex + 1 });
+ });
+
+ novel.chapters = chapters;
+ return novel;
+ }
+
+ async parseChapter(chapterUrl: string): Promise {
+ const body = await fetchApi(chapterUrl).then((res) => res.text());
+ const loadedCheerio = parseHTML(body);
+
+ loadedCheerio("div.mobile-block").remove();
+ loadedCheerio("div.standart-block").remove();
+
+ const chapterText = loadedCheerio('div[class="chapter"]').html() || "";
+ return chapterText;
+ }
+
+ async searchNovels(searchTerm: string): Promise {
+ const url = `${this.site}/search?query=${searchTerm}&type=all`;
+ const body = await fetchApi(url).then((res) => res.text());
+ const loadedCheerio = parseHTML(body);
+
+ const novels: Plugin.NovelItem[] = [];
+ loadedCheerio("#bookListBlock > div").each(function () {
+ const name = loadedCheerio(this).find("h4 > a").text()?.trim();
+ const cover = loadedCheerio(this).find("a > img").attr("src")?.trim();
+ const url = loadedCheerio(this).find("h4 > a").attr("href")?.trim();
+ if (!name || !url) return;
+
+ novels.push({ name, cover, url });
+ });
+
+ return novels;
+ }
+ fetchImage = fetchFile;
+
+ filters = {
+ sort: {
+ label: "Сортировка:",
+ value: "popular",
+ options: [
+ { label: "По популярности", value: "popular" },
+ { label: "По количеству комментариев", value: "comments" },
+ { label: "По количеству лайков", value: "likes" },
+ { label: "По новизне", value: "recent" },
+ { label: "По просмотрам", value: "views" },
+ ],
+ type: FilterTypes.Picker,
+ },
+ genre: {
+ label: "Жанры:",
+ value: { include: [], exclude: [] },
+ options: [
+ { label: "Любой жанр", value: "all" },
+ { label: "Альтернативная история", value: "alternative-history" },
+ { label: "Антиутопия", value: "dystopia" },
+ { label: "Бизнес-литература", value: "business-literature" },
+ { label: "Боевая фантастика", value: "combat-fiction" },
+ { label: "Боевик", value: "action" },
+ { label: "Боевое фэнтези", value: "combat-fantasy" },
+ { label: "Бояръ-Аниме", value: "boyar-anime" },
+ { label: "Героическая фантастика", value: "heroic-fiction" },
+ { label: "Героическое фэнтези", value: "heroic-fantasy" },
+ { label: "Городское фэнтези", value: "urban-fantasy" },
+ { label: "Гримдарк", value: "grimdark" },
+ { label: "Детектив", value: "mystery" },
+ { label: "Детская литература", value: "kids-literature" },
+ { label: "Документальная проза", value: "biography" },
+ { label: "Историческая проза", value: "historical-fiction" },
+ { label: "Исторический детектив", value: "historical-mystery" },
+ { label: "Исторический любовный роман", value: "historical-romantic-novel" },
+ { label: "Историческое фэнтези", value: "historical-fantasy" },
+ { label: "Киберпанк", value: "cyberpunk" },
+ { label: "Космическая фантастика", value: "cosmic-fiction" },
+ { label: "ЛитРПГ", value: "litrpg" },
+ { label: "Лоу / Низкое фэнтези", value: "low-fantasy" },
+ { label: "Любовное фэнтези", value: "romantic-fantasy" },
+ { label: "Любовный роман", value: "romantic-novel" },
+ { label: "Мистика", value: "mystic" },
+ { label: "Мистический детектив", value: "mystic-detective" },
+ { label: "Научная фантастика", value: "science-fiction" },
+ { label: "Подростковая проза", value: "young-adult" },
+ { label: "Политический роман", value: "political-romance" },
+ { label: "Попаданцы", value: "accidental-travel" },
+ { label: "Попаданцы в магические миры", value: "magic-worlds-travel" },
+ { label: "Попаданцы во времени", value: "time-travel" },
+ { label: "Порнотика", value: "pornotica" },
+ { label: "Постапокалипсис", value: "post-apocalypse" },
+ { label: "Поэзия", value: "poetry" },
+ { label: "Приключения", value: "adventure" },
+ { label: "Публицистика", value: "journalism" },
+ { label: "Пьеса", value: "play" },
+ { label: "Развитие личности", value: "how-to-book" },
+ { label: "Разное", value: "other" },
+ { label: "Реализм", value: "Realism" },
+ { label: "РеалРПГ", value: "realrpg" },
+ { label: "Репликация", value: "replication" },
+ { label: "Романтическая эротика", value: "romantic-erotic-fiction" },
+ { label: "Сказка", value: "fairy-tale" },
+ { label: "Слэш", value: "slash" },
+ { label: "Современная проза", value: "modern-prose" },
+ { label: "Современный любовный роман", value: "modern-romantic-novel" },
+ { label: "Социальная фантастика", value: "social-fiction" },
+ { label: "Стимпанк", value: "steampunk" },
+ { label: "Сценарий", value: "scenario" },
+ { label: "Сюаньхуань", value: "xuanhuan" },
+ { label: "Сянься", value: "xianxia" },
+ { label: "Тёмное фэнтези", value: "dark-fantasy" },
+ { label: "Триллер", value: "thriller" },
+ { label: "Уся", value: "wuxia" },
+ { label: "Фантастика", value: "fiction" },
+ { label: "Фантастический детектив", value: "mystery-fiction" },
+ { label: "Фанфик", value: "fan-fiction" },
+ { label: "Фемслэш", value: "femslash" },
+ { label: "Фэнтези", value: "fantasy" },
+ { label: "Хоррор", value: "horror" },
+ { label: "Шпионский детектив", value: "spy-crime" },
+ { label: "Эпическое фэнтези", value: "epic-fantasy" },
+ { label: "Эротика", value: "erotic-fiction" },
+ { label: "Эротическая фантастика", value: "erotic-fiction" },
+ { label: "Эротический фанфик", value: "erotic-fan-fiction" },
+ { label: "Эротическое фэнтези", value: "erotic-fantasy" },
+ { label: "Этническое фэнтези", value: "ethnic-fantasy" },
+ { label: "Юмор", value: "humor" },
+ { label: "Юмористическая фантастика", value: "humor-fiction" },
+ { label: "Юмористическое фэнтези", value: "humor-fantasy" },
+ { label: "RPS", value: "rps" },
+ ],
+ type: FilterTypes.ExcludableCheckboxGroup,
+ },
+ status: {
+ label: "Статус:",
+ value: "all",
+ options: [
+ { label: "Любой статус", value: "all" },
+ { label: "В процессе", value: "in-process" },
+ { label: "Завершено", value: "finished" },
+ ],
+ type: FilterTypes.Picker,
+ },
+ access: {
+ label: "Доступ:",
+ value: "all",
+ options: [
+ { label: "Любой доступ", value: "all" },
+ { label: "Бесплатные", value: "free" },
+ { label: "Платные", value: "paid" },
+ ],
+ type: FilterTypes.Picker,
+ },
+ adult: {
+ label: "Возрастные ограничения:",
+ value: "hide",
+ options: [
+ { label: "Скрыть 18+", value: "hide" },
+ { label: "Показать +18", value: "show" },
+ ],
+ type: FilterTypes.Picker,
+ },
+ } satisfies Filters;
+}
+
+export default new freedlit();
diff --git a/plugins/russian/authortoday.ts b/plugins/russian/authortoday.ts
index f99187c..b6889bf 100644
--- a/plugins/russian/authortoday.ts
+++ b/plugins/russian/authortoday.ts
@@ -1,538 +1,529 @@
-import { Plugin } from "@typings/plugin";
-import { FilterTypes, Filters } from "@libs/filterInputs";
-import { defaultCover } from "@libs/defaultCover";
-import { fetchApi, fetchFile } from "@libs/fetch";
-import { NovelStatus } from "@libs/novelStatus";
-import { load as parseHTML } from "cheerio";
-import dayjs from "dayjs";
-
-const apiUrl = "https://api.author.today/";
-const token = "Bearer guest";
-
-class AuthorToday implements Plugin.PluginBase {
- id = "AT";
- name = "Автор Тудей";
- icon = "src/ru/authortoday/icon.png";
- site = "https://author.today";
- version = "1.0.0";
-
-
- async popularNovels(
- pageNo: number,
- { showLatestNovels, filters }: Plugin.PopularNovelsOptions,
- ): Promise {
- let url = apiUrl + "v1/catalog/search?page=" + pageNo;
- if (filters?.genre?.value) {
- url += "&genre=" + filters.genre.value;
- }
-
- url +=
- "&sorting=" + (showLatestNovels ? "recent" : filters?.sort?.value || "popular");
-
- url += "&form=" + (filters?.form?.value || "any");
- url += "&state=" + (filters?.state?.value || "any");
- url += "&series=" + (filters?.series?.value || "any");
- url += "&access=" + (filters?.access?.value || "any");
- url += "&promo=" + (filters?.promo?.value || "hide");
-
- const result = await fetchApi(url, {
- headers: {
- Authorization: token,
- },
- });
- const json = (await result.json()) as response;
- const novels: Plugin.NovelItem[] = [];
-
- if (json?.code === "NotFound") {
- return novels;
- }
-
- json?.searchResults?.forEach((novel) =>
- novels.push({
- name: novel.title,
- cover: novel?.coverUrl
- ? "https://cm.author.today/content/" + novel.coverUrl
- : defaultCover,
- url: this.site + "/work/" + novel.id,
- }),
- );
-
- return novels;
- }
- async parseNovelAndChapters(novelUrl: string): Promise {
- const workID = novelUrl.split("/")[4];
- const result = await fetchApi(`${apiUrl}v1/work/${workID}/details`, {
- headers: {
- Authorization: token,
- },
- });
-
- const json = (await result.json()) as responseBook;
- const novel: Plugin.SourceNovel = {
- url: novelUrl,
- name: json.title,
- cover: json?.coverUrl ? json.coverUrl.split("?")[0] : defaultCover,
- author:
- json?.originalAuthor ||
- json?.authorFIO ||
- json?.coAuthorFIO ||
- json?.secondCoAuthorFIO ||
- json?.translator ||
- "",
- genres: json?.tags?.join(", "),
- status: json?.isFinished ? NovelStatus.Completed : NovelStatus.Ongoing,
- };
-
- novel.summary = "";
- novel.summary += json?.annotation ? json.annotation + "\n" : "";
- novel.summary += json?.authorNotes
- ? "Примечания автора:\n" + json.authorNotes
- : "";
- // all chapters
- const chaptersRaw = await fetchApi(`${apiUrl}v1/work/${workID}/content`, {
- headers: {
- Authorization: token,
- },
- });
-
- const chaptersJSON = (await chaptersRaw.json()) as ChaptersEntity[];
- const chapters: Plugin.ChapterItem[] = [];
- chaptersJSON?.forEach((chapter, index) => {
- if (chapter?.isAvailable && !chapter?.isDraft) {
- chapters.push({
- name: chapter?.title || `Глава ${index + 1}`,
- releaseTime: dayjs(
- chapter?.publishTime || chapter.lastModificationTime,
- ).format("LLL"),
- url: `${apiUrl}v1/work/${workID}/chapter/${chapter.id}/text`,
- });
- }
- });
-
- novel.chapters = chapters;
- return novel;
- }
-
- async parseChapter(chapterUrl: string): Promise {
- const result = await fetchApi(chapterUrl, {
- headers: {
- Authorization: token,
- },
- });
- const json = (await result.json()) as encryptedСhapter;
-
- if (json?.code) {
- return json.code + "\n" + json?.message;
- }
-
- const key = json.key.split("").reverse().join("") + "@_@";
- let text = "";
-
- for (let i = 0; i < json.text.length; i++) {
- text += String.fromCharCode(
- json.text.charCodeAt(i) ^ key.charCodeAt(Math.floor(i % key.length)),
- );
- }
-
- const loadedCheerio = parseHTML(text);
- const baseUrl = this.site;
- loadedCheerio("img").each(function () {
- if (!loadedCheerio(this).attr("src")?.startsWith("http")) {
- const src = loadedCheerio(this).attr("src");
- loadedCheerio(this).attr("src", baseUrl + src);
- }
- });
- const chapterText = loadedCheerio.html();
- return chapterText;
- }
-
- async searchNovels(
- searchTerm: string,
- pageNo?: number | undefined,
- ): Promise {
- const baseUrl = this.site;
- const url = baseUrl + "/search?category=works&q=" + searchTerm + "&page=";
- const result = await fetchApi(url + (pageNo || 1));
- const body = await result.text();
- const loadedCheerio = parseHTML(body);
- const novels: Plugin.NovelItem[] = [];
-
- loadedCheerio("div.book-row").each(function () {
- const name = loadedCheerio(this)
- .find('div[class="book-title"] a')
- .text()
- .trim();
- let cover = loadedCheerio(this).find("img").attr("src");
- const url =
- baseUrl +
- "/work/" +
- loadedCheerio(this)
- .find('div[class="book-title"] a')
- .attr("href")
- ?.split("/")[2];
-
- if (cover) {
- cover = cover.split("?")[0];
- } else {
- cover = defaultCover;
- }
-
- novels.push({ name, cover, url });
- });
-
- return novels;
- }
-
- fetchImage = fetchFile;
-
- filters = {
- sort: {
- label: "Сортировка",
- value: "",
- options: [
- { label: "По популярности", value: "popular" },
- { label: "По количеству лайков", value: "likes" },
- { label: "По комментариям", value: "comments" },
- { label: "По новизне", value: "recent" },
- { label: "По просмотрам", value: "views" },
- { label: "Набирающие популярность", value: "trending" },
- ],
- type: FilterTypes.Picker,
- },
- genre: {
- label: "Жанры",
- value: "",
- options: [
- { label: "Альтернативная история", value: "sf-history" },
- { label: "Антиутопия", value: "dystopia" },
- { label: "Бизнес-литература", value: "biznes-literatura" },
- { label: "Боевая фантастика", value: "sf-action" },
- { label: "Боевик", value: "action" },
- { label: "Боевое фэнтези", value: "fantasy-action" },
- { label: "Бояръ-Аниме", value: "boyar-anime" },
- { label: "Героическая фантастика", value: "sf-heroic" },
- { label: "Героическое фэнтези", value: "heroic-fantasy" },
- { label: "Городское фэнтези", value: "urban-fantasy" },
- { label: "Детектив", value: "detective" },
- { label: "Детская литература", value: "detskaya-literatura" },
- { label: "Документальная проза", value: "non-fiction" },
- { label: "Историческая проза", value: "historical-fiction" },
- { label: "Исторические приключения", value: "historical-adventure" },
- { label: "Исторический детектив", value: "historical-mystery" },
- { label: "Исторический любовный роман", value: "historical-romance" },
- { label: "Историческое фэнтези", value: "historical-fantasy" },
- { label: "Киберпанк", value: "cyberpunk" },
- { label: "Короткий любовный роман", value: "short-romance" },
- { label: "Космическая фантастика", value: "sf-space" },
- { label: "ЛитРПГ", value: "litrpg" },
- { label: "Любовное фэнтези", value: "love-fantasy" },
- { label: "Любовные романы", value: "romance" },
- { label: "Мистика", value: "paranormal" },
- { label: "Назад в СССР", value: "back-to-ussr" },
- { label: "Научная фантастика", value: "science-fiction" },
- { label: "Подростковая проза", value: "teen-prose" },
- { label: "Политический роман", value: "political-fiction" },
- { label: "Попаданцы", value: "popadantsy" },
- { label: "Попаданцы в космос", value: "popadantsy-v-kosmos" },
- { label: "Попаданцы в магические миры", value: "popadantsy-v-magicheskie-miry" },
- { label: "Попаданцы во времени", value: "popadantsy-vo-vremeni" },
- { label: "Постапокалипсис", value: "postapocalyptic" },
- { label: "Поэзия", value: "poetry" },
- { label: "Приключения", value: "adventure" },
- { label: "Публицистика", value: "publicism" },
- { label: "Развитие личности", value: "razvitie-lichnosti" },
- { label: "Разное", value: "other" },
- { label: "РеалРПГ", value: "realrpg" },
- { label: "Романтическая эротика", value: "romantic-erotika" },
- { label: "Сказка", value: "fairy-tale" },
- { label: "Современная проза", value: "modern-prose" },
- { label: "Современный любовный роман", value: "contemporary-romance" },
- { label: "Социальная фантастика", value: "sf-social" },
- { label: "Стимпанк", value: "steampunk" },
- { label: "Темное фэнтези", value: "dark-fantasy" },
- { label: "Триллер", value: "thriller" },
- { label: "Ужасы", value: "horror" },
- { label: "Фантастика", value: "sci-fi" },
- { label: "Фантастический детектив", value: "detective-science-fiction" },
- { label: "Фанфик", value: "fanfiction" },
- { label: "Фэнтези", value: "fantasy" },
- { label: "Шпионский детектив", value: "spy-mystery" },
- { label: "Эпическое фэнтези", value: "epic-fantasy" },
- { label: "Эротика", value: "erotica" },
- { label: "Эротическая фантастика", value: "sf-erotika" },
- { label: "Эротический фанфик", value: "fanfiction-erotika" },
- { label: "Эротическое фэнтези", value: "fantasy-erotika" },
- { label: "Юмор", value: "humor" },
- { label: "Юмористическая фантастика", value: "sf-humor" },
- { label: "Юмористическое фэнтези", value: "ironical-fantasy" },
- ],
- type: FilterTypes.Picker,
- },
- form: {
- label: "Форма произведения",
- value: "",
- options: [
- { label: "Любой", value: "any" },
- { label: "Перевод", value: "translation" },
- { label: "Повесть", value: "tale" },
- { label: "Рассказ", value: "story" },
- { label: "Роман", value: "novel" },
- { label: "Сборник поэзии", value: "poetry" },
- { label: "Сборник рассказов", value: "story-book" },
- ],
- type: FilterTypes.Picker,
- },
- state: {
- label: "Статус произведения",
- value: "",
- options: [
- { label: "Любой статус", value: "any" },
- { label: "В процессе", value: "in-progress" },
- { label: "Завершено", value: "finished" },
- ],
- type: FilterTypes.Picker,
- },
- series: {
- label: "Статус цикла",
- value: "",
- options: [
- { label: "Не важно", value: "any" },
- { label: "Вне цикла", value: "out" },
- { label: "Цикл завершен", value: "finished" },
- { label: "Цикл не завершен", value: "unfinished" },
- ],
- type: FilterTypes.Picker,
- },
- access: {
- label: "Тип доступа",
- value: "",
- options: [
- { label: "Любой", value: "any" },
- { label: "Платный", value: "paid" },
- { label: "Бесплатный", value: "free" },
- ],
- type: FilterTypes.Picker,
- },
- promo: {
- label: "Промо-фрагмент",
- value: "",
- options: [
- { label: "Скрывать", value: "hide" },
- { label: "Показывать", value: "show" },
- ],
- type: FilterTypes.Picker,
- },
- } satisfies Filters;
-}
-
-export default new AuthorToday();
-
-interface response {
- searchResults?: SearchResultsEntity[] | null;
- realTotalCount: number;
- code?: string;
- errorMessage?: null;
- isLastPage: boolean;
- format: Format;
- duration: Duration;
- isWorkMarkEnabled: boolean;
-}
-interface SearchResultsEntity {
- id: number;
- title: string;
- annotation: string;
- authorId: number;
- authorFIO: string;
- authorUserName: string;
- originalAuthor?: null;
- coAuthorId?: number | null;
- coAuthorFIO?: string | null;
- coAuthorUserName?: string | null;
- coAuthorConfirmed: boolean;
- seriesId: number;
- seriesTitle?: string | null;
- publishTime: string;
- lastModificationTime: string;
- finishTime?: string | null;
- isDraft: boolean;
- formEnum: string;
- genreId: number;
- firstSubGenreId: number;
- secondSubGenreId?: number | null;
- adultOnly: boolean;
- tags?: (string | null)[] | null;
- coverUrl: string;
- viewCount: number;
- commentCount: number;
- reviewCount: number;
- textLength: number;
- likeCount: number;
- showAuthor: boolean;
- price?: number | null;
- discount?: null;
- discountStartDate?: null;
- discountEndDate?: null;
- status: string;
- promoFragment: boolean;
- isExclusive: boolean;
- format: string;
- marks?: null[] | null;
- isLiked: boolean;
- isWorkMarkEnabled: boolean;
- workInLibraryState: string;
-}
-interface Format {
- enumValue: string;
- value: string;
- title: string;
- mobileTitle: string;
-}
-interface Duration {
- value: string;
- title: string;
- mobileTitle: string;
-}
-
-interface responseBook {
- chapters?: ChaptersEntity[] | null;
- allowDownloads: boolean;
- downloadErrorCode: string;
- downloadErrorMessage: string;
- privacyDownloads: string;
- collectionCount: number;
- annotation: string;
- authorNotes: string;
- atRecommendation: boolean;
- seriesWorkIds?: number[] | null;
- seriesWorkNumber: number;
- reviewCount: number;
- tags?: string[] | null;
- orderId?: null;
- orderStatus: string;
- orderStatusMessage?: null;
- contests?: null[] | null;
- galleryImages?: GalleryImagesEntity[] | null;
- booktrailerVideoUrl?: null;
- isExclusive: boolean;
- freeChapterCount: number;
- promoFragment: boolean;
- recommendations?: RecommendationsEntity[] | null;
- linkedWork?: null;
- id: number;
- title: string;
- coverUrl: string;
- lastModificationTime: string;
- lastUpdateTime: string;
- finishTime?: null;
- isFinished: boolean;
- textLength: number;
- textLengthLastRead: number;
- price: number;
- discount?: null;
- workForm: string;
- status: string;
- authorId: number;
- authorFIO: string;
- authorUserName: string;
- originalAuthor?: null;
- translator?: null;
- reciter?: null;
- coAuthorId?: null;
- coAuthorFIO?: null;
- coAuthorUserName?: null;
- coAuthorConfirmed: boolean;
- secondCoAuthorId?: null;
- secondCoAuthorFIO?: null;
- secondCoAuthorUserName?: null;
- secondCoAuthorConfirmed: boolean;
- isPurchased: boolean;
- userLikeId?: null;
- lastReadTime?: null;
- lastChapterId?: null;
- lastChapterProgress: number;
- likeCount: number;
- commentCount: number;
- rewardCount: number;
- rewardsEnabled: boolean;
- inLibraryState: string;
- addedToLibraryTime: string;
- updateInLibraryTime: string;
- privacyDisplay: string;
- state: string;
- isDraft: boolean;
- enableRedLine: boolean;
- enableTTS: boolean;
- adultOnly: boolean;
- seriesId: number;
- seriesOrder: number;
- seriesTitle: string;
- afterword: string;
- seriesNextWorkId?: null;
- genreId: number;
- firstSubGenreId: number;
- secondSubGenreId: number;
- format: string;
- marks?: null;
- purchaseTime?: null;
- likeTime?: null;
- markTime?: null;
-}
-interface ChaptersEntity {
- id: number;
- workId: number;
- title: string;
- isDraft: boolean;
- sortOrder: number;
- publishTime: string;
- lastModificationTime: string;
- textLength: number;
- isAvailable: boolean;
-}
-
-interface GalleryImagesEntity {
- id: string;
- caption?: null;
- url: string;
- height: number;
- width: number;
-}
-interface RecommendationsEntity {
- title: string;
- coverUrl: string;
- authorId: number;
- authorFIO: string;
- authorUserName: string;
- originalAuthor?: null;
- coAuthorId?: null;
- coAuthorFIO?: null;
- coAuthorUserName?: null;
- coAuthorConfirmed: boolean;
- secondCoAuthorId?: null;
- secondCoAuthorFIO?: null;
- secondCoAuthorUserName?: null;
- secondCoAuthorConfirmed: boolean;
- discount?: null;
- price?: number | null;
- lastModificationTime: string;
- finishTime: string;
- finished: boolean;
- isExclusive: boolean;
- format: string;
- status: string;
- state: string;
- removalReason?: null;
- removalReasonComment?: null;
- id: number;
-}
-
-interface encryptedСhapter {
- id: number;
- title: string;
- isDraft: boolean;
- publishTime: string;
- lastModificationTime: string;
- text: string;
- key: string;
- code?: string;
- message?: string;
-}
+import { Plugin } from "@typings/plugin";
+import { FilterTypes, Filters } from "@libs/filterInputs";
+import { defaultCover } from "@libs/defaultCover";
+import { fetchApi, fetchFile } from "@libs/fetch";
+import { NovelStatus } from "@libs/novelStatus";
+import { load as parseHTML } from "cheerio";
+import dayjs from "dayjs";
+
+const apiUrl = "https://api.author.today/";
+const token = "Bearer guest";
+
+class AuthorToday implements Plugin.PluginBase {
+ id = "AT";
+ name = "Автор Тудей";
+ icon = "src/ru/authortoday/icon.png";
+ site = "https://author.today";
+ version = "1.0.0";
+
+ async popularNovels(
+ pageNo: number,
+ { showLatestNovels, filters }: Plugin.PopularNovelsOptions,
+ ): Promise {
+ let url = apiUrl + "v1/catalog/search?page=" + pageNo;
+ if (filters?.genre?.value) {
+ url += "&genre=" + filters.genre.value;
+ }
+
+ url +=
+ "&sorting=" +
+ (showLatestNovels ? "recent" : filters?.sort?.value || "popular");
+
+ url += "&form=" + (filters?.form?.value || "any");
+ url += "&state=" + (filters?.state?.value || "any");
+ url += "&series=" + (filters?.series?.value || "any");
+ url += "&access=" + (filters?.access?.value || "any");
+ url += "&promo=" + (filters?.promo?.value || "hide");
+
+ const result = await fetchApi(url, {
+ headers: {
+ Authorization: token,
+ },
+ });
+ const json = (await result.json()) as response;
+ const novels: Plugin.NovelItem[] = [];
+
+ if (json.code === "NotFound") {
+ return novels;
+ }
+
+ json?.searchResults?.forEach((novel) =>
+ novels.push({
+ name: novel.title,
+ cover: novel.coverUrl
+ ? "https://cm.author.today/content/" + novel.coverUrl
+ : defaultCover,
+ url: this.site + "/work/" + novel.id,
+ }),
+ );
+
+ return novels;
+ }
+ async parseNovelAndChapters(novelUrl: string): Promise {
+ const workID = novelUrl.split("/")[4];
+ const result = await fetchApi(`${apiUrl}v1/work/${workID}/details`, {
+ headers: {
+ Authorization: token,
+ },
+ });
+
+ const book = (await result.json()) as responseBook;
+ const novel: Plugin.SourceNovel = {
+ url: novelUrl,
+ name: book.title,
+ cover: book.coverUrl ? book.coverUrl.split("?")[0] : defaultCover,
+ genres: book.tags?.join(", "),
+ summary: "",
+ author:
+ book.originalAuthor ||
+ book.authorFIO ||
+ book.coAuthorFIO ||
+ book.secondCoAuthorFIO ||
+ book.translator ||
+ "",
+ status: book.isFinished ? NovelStatus.Completed : NovelStatus.Ongoing,
+ };
+
+ if (book.annotation) novel.summary += book.annotation + "\n";
+ if (book.authorNotes) novel.summary += "Примечания автора:\n" + book.authorNotes;
+
+ // all chapters
+ const chaptersRaw = await fetchApi(`${apiUrl}v1/work/${workID}/content`, {
+ headers: {
+ Authorization: token,
+ },
+ });
+
+ const chaptersJSON = (await chaptersRaw.json()) as ChaptersEntity[];
+ const chapters: Plugin.ChapterItem[] = [];
+ chaptersJSON.forEach((chapter, chapterIndex) => {
+ if (chapter.isAvailable && !chapter.isDraft) {
+ chapters.push({
+ name: chapter.title || 'Глава ' + (chapterIndex + 1),
+ url: `${apiUrl}v1/work/${workID}/chapter/${chapter.id}/text`,
+ releaseTime: dayjs(chapter.publishTime || chapter.lastModificationTime).format("LLL"),
+ chapterNumber: (chapter.sortOrder || chapterIndex) + 1,
+ });
+ }
+ });
+
+ novel.chapters = chapters;
+ return novel;
+ }
+
+ async parseChapter(chapterUrl: string): Promise {
+ const result = await fetchApi(chapterUrl, {
+ headers: {
+ Authorization: token,
+ },
+ });
+ const json = (await result.json()) as encryptedСhapter;
+
+ if (json.code) {
+ return json.code + "\n" + json?.message;
+ }
+
+ const key = json.key.split("").reverse().join("") + "@_@";
+ let text = "";
+
+ for (let i = 0; i < json.text.length; i++) {
+ text += String.fromCharCode(
+ json.text.charCodeAt(i) ^ key.charCodeAt(Math.floor(i % key.length)),
+ );
+ }
+
+ const loadedCheerio = parseHTML(text);
+ loadedCheerio("img").each((index, element) => {
+ if (!loadedCheerio(element).attr("src")?.startsWith("http")) {
+ const src = loadedCheerio(element).attr("src");
+ loadedCheerio(element).attr("src", this.site + src);
+ }
+ });
+ const chapterText = loadedCheerio.html();
+ return chapterText;
+ }
+
+ async searchNovels(
+ searchTerm: string,
+ pageNo: number | undefined = 1,
+ ): Promise {
+ const url =
+ this.site + "/search?category=works&q=" + searchTerm + "&page=" + pageNo;
+ const result = await fetchApi(url).then((res) => res.text());
+ const loadedCheerio = parseHTML(result);
+ const novels: Plugin.NovelItem[] = [];
+
+ loadedCheerio("div.book-row").each((index, element) => {
+ const name = loadedCheerio(element)
+ .find('div[class="book-title"] a')
+ .text()
+ .trim();
+ let cover = loadedCheerio(element).find("img").attr("src");
+ const url = loadedCheerio(element)
+ .find('div[class="book-title"] a')
+ .attr("href")
+ ?.split("/")?.[2];
+
+ cover = cover ? cover.split("?")[0] : defaultCover;
+
+ if (!url) return;
+ novels.push({ name, cover, url: this.site + "/work/" + url });
+ });
+
+ return novels;
+ }
+
+ fetchImage = fetchFile;
+
+ filters = {
+ sort: {
+ label: "Сортировка",
+ value: "popular",
+ options: [
+ { label: "По популярности", value: "popular" },
+ { label: "По количеству лайков", value: "likes" },
+ { label: "По комментариям", value: "comments" },
+ { label: "По новизне", value: "recent" },
+ { label: "По просмотрам", value: "views" },
+ { label: "Набирающие популярность", value: "trending" },
+ ],
+ type: FilterTypes.Picker,
+ },
+ genre: {
+ label: "Жанры",
+ value: "",
+ options: [
+ { label: "Все", value:"" },
+ { label: "Альтернативная история", value: "sf-history" },
+ { label: "Антиутопия", value: "dystopia" },
+ { label: "Бизнес-литература", value: "biznes-literatura" },
+ { label: "Боевая фантастика", value: "sf-action" },
+ { label: "Боевик", value: "action" },
+ { label: "Боевое фэнтези", value: "fantasy-action" },
+ { label: "Бояръ-Аниме", value: "boyar-anime" },
+ { label: "Героическая фантастика", value: "sf-heroic" },
+ { label: "Героическое фэнтези", value: "heroic-fantasy" },
+ { label: "Городское фэнтези", value: "urban-fantasy" },
+ { label: "Детектив", value: "detective" },
+ { label: "Детская литература", value: "detskaya-literatura" },
+ { label: "Документальная проза", value: "non-fiction" },
+ { label: "Историческая проза", value: "historical-fiction" },
+ { label: "Исторические приключения", value: "historical-adventure" },
+ { label: "Исторический детектив", value: "historical-mystery" },
+ { label: "Исторический любовный роман", value: "historical-romance" },
+ { label: "Историческое фэнтези", value: "historical-fantasy" },
+ { label: "Киберпанк", value: "cyberpunk" },
+ { label: "Короткий любовный роман", value: "short-romance" },
+ { label: "Космическая фантастика", value: "sf-space" },
+ { label: "ЛитРПГ", value: "litrpg" },
+ { label: "Любовное фэнтези", value: "love-fantasy" },
+ { label: "Любовные романы", value: "romance" },
+ { label: "Мистика", value: "paranormal" },
+ { label: "Назад в СССР", value: "back-to-ussr" },
+ { label: "Научная фантастика", value: "science-fiction" },
+ { label: "Подростковая проза", value: "teen-prose" },
+ { label: "Политический роман", value: "political-fiction" },
+ { label: "Попаданцы", value: "popadantsy" },
+ { label: "Попаданцы в космос", value: "popadantsy-v-kosmos" },
+ { label: "Попаданцы в магические миры", value: "popadantsy-v-magicheskie-miry" },
+ { label: "Попаданцы во времени", value: "popadantsy-vo-vremeni" },
+ { label: "Постапокалипсис", value: "postapocalyptic" },
+ { label: "Поэзия", value: "poetry" },
+ { label: "Приключения", value: "adventure" },
+ { label: "Публицистика", value: "publicism" },
+ { label: "Развитие личности", value: "razvitie-lichnosti" },
+ { label: "Разное", value: "other" },
+ { label: "РеалРПГ", value: "realrpg" },
+ { label: "Романтическая эротика", value: "romantic-erotika" },
+ { label: "Сказка", value: "fairy-tale" },
+ { label: "Современная проза", value: "modern-prose" },
+ { label: "Современный любовный роман", value: "contemporary-romance" },
+ { label: "Социальная фантастика", value: "sf-social" },
+ { label: "Стимпанк", value: "steampunk" },
+ { label: "Темное фэнтези", value: "dark-fantasy" },
+ { label: "Триллер", value: "thriller" },
+ { label: "Ужасы", value: "horror" },
+ { label: "Фантастика", value: "sci-fi" },
+ { label: "Фантастический детектив", value: "detective-science-fiction" },
+ { label: "Фанфик", value: "fanfiction" },
+ { label: "Фэнтези", value: "fantasy" },
+ { label: "Шпионский детектив", value: "spy-mystery" },
+ { label: "Эпическое фэнтези", value: "epic-fantasy" },
+ { label: "Эротика", value: "erotica" },
+ { label: "Эротическая фантастика", value: "sf-erotika" },
+ { label: "Эротический фанфик", value: "fanfiction-erotika" },
+ { label: "Эротическое фэнтези", value: "fantasy-erotika" },
+ { label: "Юмор", value: "humor" },
+ { label: "Юмористическая фантастика", value: "sf-humor" },
+ { label: "Юмористическое фэнтези", value: "ironical-fantasy" },
+ ],
+ type: FilterTypes.Picker,
+ },
+ form: {
+ label: "Форма произведения",
+ value: "any",
+ options: [
+ { label: "Любой", value: "any" },
+ { label: "Перевод", value: "translation" },
+ { label: "Повесть", value: "tale" },
+ { label: "Рассказ", value: "story" },
+ { label: "Роман", value: "novel" },
+ { label: "Сборник поэзии", value: "poetry" },
+ { label: "Сборник рассказов", value: "story-book" },
+ ],
+ type: FilterTypes.Picker,
+ },
+ state: {
+ label: "Статус произведения",
+ value: "any",
+ options: [
+ { label: "Любой статус", value: "any" },
+ { label: "В процессе", value: "in-progress" },
+ { label: "Завершено", value: "finished" },
+ ],
+ type: FilterTypes.Picker,
+ },
+ series: {
+ label: "Статус цикла",
+ value: "any",
+ options: [
+ { label: "Не важно", value: "any" },
+ { label: "Вне цикла", value: "out" },
+ { label: "Цикл завершен", value: "finished" },
+ { label: "Цикл не завершен", value: "unfinished" },
+ ],
+ type: FilterTypes.Picker,
+ },
+ access: {
+ label: "Тип доступа",
+ value: "any",
+ options: [
+ { label: "Любой", value: "any" },
+ { label: "Платный", value: "paid" },
+ { label: "Бесплатный", value: "free" },
+ ],
+ type: FilterTypes.Picker,
+ },
+ promo: {
+ label: "Промо-фрагмент",
+ value: "hide",
+ options: [
+ { label: "Скрывать", value: "hide" },
+ { label: "Показывать", value: "show" },
+ ],
+ type: FilterTypes.Picker,
+ },
+ } satisfies Filters;
+}
+
+export default new AuthorToday();
+
+interface response {
+ searchResults?: SearchResultsEntity[] | null;
+ realTotalCount: number;
+ code?: string;
+ errorMessage?: null;
+ isLastPage: boolean;
+ format: Format;
+ duration: Duration;
+ isWorkMarkEnabled: boolean;
+}
+interface SearchResultsEntity {
+ id: number;
+ title: string;
+ annotation: string;
+ authorId: number;
+ authorFIO: string;
+ authorUserName: string;
+ originalAuthor?: null;
+ coAuthorId?: number | null;
+ coAuthorFIO?: string | null;
+ coAuthorUserName?: string | null;
+ coAuthorConfirmed: boolean;
+ seriesId: number;
+ seriesTitle?: string | null;
+ publishTime: string;
+ lastModificationTime: string;
+ finishTime?: string | null;
+ isDraft: boolean;
+ formEnum: string;
+ genreId: number;
+ firstSubGenreId: number;
+ secondSubGenreId?: number | null;
+ adultOnly: boolean;
+ tags?: (string | null)[] | null;
+ coverUrl: string;
+ viewCount: number;
+ commentCount: number;
+ reviewCount: number;
+ textLength: number;
+ likeCount: number;
+ showAuthor: boolean;
+ price?: number | null;
+ discount?: null;
+ discountStartDate?: null;
+ discountEndDate?: null;
+ status: string;
+ promoFragment: boolean;
+ isExclusive: boolean;
+ format: string;
+ marks?: null[] | null;
+ isLiked: boolean;
+ isWorkMarkEnabled: boolean;
+ workInLibraryState: string;
+}
+interface Format {
+ enumValue: string;
+ value: string;
+ title: string;
+ mobileTitle: string;
+}
+interface Duration {
+ value: string;
+ title: string;
+ mobileTitle: string;
+}
+
+interface responseBook {
+ chapters?: ChaptersEntity[] | null;
+ allowDownloads: boolean;
+ downloadErrorCode: string;
+ downloadErrorMessage: string;
+ privacyDownloads: string;
+ collectionCount: number;
+ annotation: string;
+ authorNotes: string;
+ atRecommendation: boolean;
+ seriesWorkIds?: number[] | null;
+ seriesWorkNumber: number;
+ reviewCount: number;
+ tags?: string[] | null;
+ orderId?: null;
+ orderStatus: string;
+ orderStatusMessage?: null;
+ contests?: null[] | null;
+ galleryImages?: GalleryImagesEntity[] | null;
+ booktrailerVideoUrl?: null;
+ isExclusive: boolean;
+ freeChapterCount: number;
+ promoFragment: boolean;
+ recommendations?: RecommendationsEntity[] | null;
+ linkedWork?: null;
+ id: number;
+ title: string;
+ coverUrl: string;
+ lastModificationTime: string;
+ lastUpdateTime: string;
+ finishTime?: null;
+ isFinished: boolean;
+ textLength: number;
+ textLengthLastRead: number;
+ price: number;
+ discount?: null;
+ workForm: string;
+ status: string;
+ authorId: number;
+ authorFIO: string;
+ authorUserName: string;
+ originalAuthor?: null;
+ translator?: null;
+ reciter?: null;
+ coAuthorId?: null;
+ coAuthorFIO?: null;
+ coAuthorUserName?: null;
+ coAuthorConfirmed: boolean;
+ secondCoAuthorId?: null;
+ secondCoAuthorFIO?: null;
+ secondCoAuthorUserName?: null;
+ secondCoAuthorConfirmed: boolean;
+ isPurchased: boolean;
+ userLikeId?: null;
+ lastReadTime?: null;
+ lastChapterId?: null;
+ lastChapterProgress: number;
+ likeCount: number;
+ commentCount: number;
+ rewardCount: number;
+ rewardsEnabled: boolean;
+ inLibraryState: string;
+ addedToLibraryTime: string;
+ updateInLibraryTime: string;
+ privacyDisplay: string;
+ state: string;
+ isDraft: boolean;
+ enableRedLine: boolean;
+ enableTTS: boolean;
+ adultOnly: boolean;
+ seriesId: number;
+ seriesOrder: number;
+ seriesTitle: string;
+ afterword: string;
+ seriesNextWorkId?: null;
+ genreId: number;
+ firstSubGenreId: number;
+ secondSubGenreId: number;
+ format: string;
+ marks?: null;
+ purchaseTime?: null;
+ likeTime?: null;
+ markTime?: null;
+}
+interface ChaptersEntity {
+ id: number;
+ workId: number;
+ title: string;
+ isDraft: boolean;
+ sortOrder: number;
+ publishTime?: string;
+ lastModificationTime: string;
+ textLength: number;
+ isAvailable: boolean;
+}
+
+interface GalleryImagesEntity {
+ id: string;
+ caption?: null;
+ url: string;
+ height: number;
+ width: number;
+}
+interface RecommendationsEntity {
+ title: string;
+ coverUrl: string;
+ authorId: number;
+ authorFIO: string;
+ authorUserName: string;
+ originalAuthor?: null;
+ coAuthorId?: null;
+ coAuthorFIO?: null;
+ coAuthorUserName?: null;
+ coAuthorConfirmed: boolean;
+ secondCoAuthorId?: null;
+ secondCoAuthorFIO?: null;
+ secondCoAuthorUserName?: null;
+ secondCoAuthorConfirmed: boolean;
+ discount?: null;
+ price?: number | null;
+ lastModificationTime: string;
+ finishTime: string;
+ finished: boolean;
+ isExclusive: boolean;
+ format: string;
+ status: string;
+ state: string;
+ removalReason?: null;
+ removalReasonComment?: null;
+ id: number;
+}
+
+interface encryptedСhapter {
+ id: number;
+ title: string;
+ isDraft: boolean;
+ publishTime: string;
+ lastModificationTime: string;
+ text: string;
+ key: string;
+ code?: string;
+ message?: string;
+}
diff --git a/plugins/russian/bookriver.ts b/plugins/russian/bookriver.ts
index 1ef60ac..f9e980e 100644
--- a/plugins/russian/bookriver.ts
+++ b/plugins/russian/bookriver.ts
@@ -1,258 +1,252 @@
-import { Plugin } from "@typings/plugin";
-import { FilterTypes, Filters } from "@libs/filterInputs";
-import { fetchApi, fetchFile } from "@libs/fetch";
-import { NovelStatus } from "@libs/novelStatus";
-import { load as parseHTML } from "cheerio";
-import dayjs from "dayjs";
-
-class Bookriver implements Plugin.PluginBase {
- id = "bookriver";
- name = "Bookriver";
- site = "https://bookriver.ru";
- version = "1.0.0";
- icon = "src/ru/bookriver/icon.png";
-
-
- async popularNovels(
- pageNo: number,
- { showLatestNovels, filters }: Plugin.PopularNovelsOptions,
- ): Promise {
- let url = this.site + `/genre?page=${pageNo}&perPage=24&sortingType=`;
- url += showLatestNovels
- ? "last-update"
- : filters?.sort?.value || "bestseller";
-
- if (filters?.genres?.value instanceof Array && filters?.genres?.value.length) {
- url += "&g=" + filters.genres.value.join(",");
- }
-
- const result = await fetchApi(url);
- const body = await result.text();
-
- const loadedCheerio = parseHTML(body);
- const novels: Plugin.NovelItem[] = [];
-
- const jsonRaw = loadedCheerio("#__NEXT_DATA__").html();
- if (jsonRaw) {
- const json: response = JSON.parse(jsonRaw);
- json.props.pageProps.state.pagesFilter?.genre?.books?.forEach((novel) =>
- novels.push({
- name: novel.name,
- cover: novel.coverImages[0].url,
- url: this.site + "/book/" + novel.slug,
- }),
- );
- }
- return novels;
- }
-
- async parseNovelAndChapters(novelUrl: string): Promise {
- const result = await fetchApi(novelUrl);
- const body = await result.text();
-
- const loadedCheerio = parseHTML(body);
- const jsonRaw = loadedCheerio("#__NEXT_DATA__").html();
- const json: response = JSON.parse(jsonRaw || "{}");
- const book = json.props.pageProps.state.book?.bookPage;
- const novel: Plugin.SourceNovel = {
- url: novelUrl,
- name: book?.name,
- cover: book?.coverImages[0].url,
- summary: book?.annotation,
- author: book?.author?.name,
- genres: book?.tags?.map((item) => item.name).join(", "),
- status:
- book?.statusComplete === "writing"
- ? NovelStatus.Ongoing
- : NovelStatus.Completed,
- };
-
- const chapters: Plugin.ChapterItem[] = [];
- book?.ebook?.chapters?.forEach((chapter) => {
- if (chapter.available) {
- chapters.push({
- name: chapter.name,
- releaseTime: dayjs(
- chapter?.firstPublishedAt || chapter.createdAt,
- ).format("LLL"),
- url: this.site + "/reader/" + book?.slug + "/" + chapter.chapterId,
- });
- }
- });
- novel.chapters = chapters;
- return novel;
- }
-
- async parseChapter(chapterUrl: string): Promise {
- const url = "https://api.bookriver.ru/api/v1/books/chapter/text/";
- const result = await fetchApi(url + chapterUrl.split("/").pop());
- const json = (await result.json()) as responseChapter;
-
- let chapterText = json.data.content || "Конец произведения";
- if (json.data?.audio?.available) {
- chapterText += "\n" + json.data.audio.url;
- }
-
- return chapterText;
- }
-
- async searchNovels(
- searchTerm: string,
- pageNo: number | undefined = 1,
- ): Promise {
- const url = `https://api.bookriver.ru/api/v1/search/autocomplete?keyword=${searchTerm}&page=${pageNo}&perPage=10`;
- const result = await fetchApi(url);
- const json = (await result.json()) as responseSearch;
-
- const novels: Plugin.NovelItem[] = [];
- json?.data?.books?.forEach((novel) =>
- novels.push({
- name: novel.name,
- cover: novel.coverImages[0].url,
- url: this.site + "/book/" + novel.slug,
- }),
- );
-
- return novels;
- }
- fetchImage = fetchFile;
-
- filters = {
- sort: {
- label: "Сортировка",
- value: "",
- options: [
- { label: "Бестселлеры", value: "bestseller" },
- { label: "Дате добавления", value: "newest" },
- { label: "Дате обновления", value: "last-update" },
- ],
- type: FilterTypes.Picker,
- },
- genres: {
- label: "жанры",
- value: [],
- options: [
- { label: "Альтернативная история", value: "alternativnaya-istoriya" },
- { label: "Боевая фантастика", value: "boevaya-fantastika" },
- { label: "Боевое фэнтези", value: "boevoe-fentezi" },
- { label: "Бытовое фэнтези", value: "bytovoe-fentezi" },
- { label: "Героическая фантастика", value: "geroicheskaya-fantastika" },
- { label: "Героическое фэнтези", value: "geroicheskoe-fentezi" },
- { label: "Городское фэнтези", value: "gorodskoe-fentezi" },
- { label: "Детектив", value: "detektiv" },
- { label: "Детективная фантастика", value: "detektivnaya-fantastika" },
- { label: "Жёсткая эротика", value: "zhyostkaya-erotika" },
- { label: "Исторический детектив", value: "istoricheskii-detektiv" },
- { label: "Исторический любовный роман", value: "istoricheskii-lyubovnyi-roman" },
- { label: "Историческое фэнтези", value: "istoricheskoe-fentezi" },
- { label: "Киберпанк", value: "kiberpank" },
- { label: "Классический детектив", value: "klassicheskii-detektiv" },
- { label: "Короткий любовный роман", value: "korotkii-lyubovnyi-roman" },
- { label: "Космическая фантастика", value: "kosmicheskaya-fantastika" },
- { label: "Криминальный детектив", value: "kriminalnyi-detektiv" },
- { label: "ЛитРПГ", value: "litrpg" },
- { label: "Любовная фантастика", value: "lyubovnaya-fantastika" },
- { label: "Любовное фэнтези", value: "lyubovnoe-fentezi" },
- { label: "Любовный роман", value: "lyubovnyi-roman" },
- { label: "Мистика", value: "mistika" },
- { label: "Молодежная проза", value: "molodezhnaya-proza" },
- { label: "Научная фантастика", value: "nauchnaya-fantastika" },
- { label: "Остросюжетный любовный роман", value: "ostrosyuzhetnyi-lyubovnyi-roman" },
- { label: "Политический детектив", value: "politicheskii-detektiv" },
- { label: "Попаданцы", value: "popadantsy" },
- { label: "Постапокалипсис", value: "postapokalipsis" },
- { label: "Приключенческое фэнтези", value: "priklyuchencheskoe-fentezi" },
- { label: "Романтическая эротика", value: "romanticheskaya-erotika" },
- { label: "С элементами эротики", value: "s-elementami-erotiki" },
- { label: "Славянское фэнтези", value: "slavyanskoe-fentezi" },
- { label: "Современный любовный роман", value: "sovremennyi-lyubovnyi-roman" },
- { label: "Социальная фантастика", value: "sotsialnaya-fantastika" },
- { label: "Тёмное фэнтези", value: "temnoe-fentezi" },
- { label: "Фантастика", value: "fantastika" },
- { label: "Фэнтези", value: "fentezi" },
- { label: "Шпионский детектив", value: "shpionskii-detektiv" },
- { label: "Эпическое фэнтези", value: "epicheskoe-fentezi" },
- { label: "Эротика", value: "erotika" },
- { label: "Эротическая фантастика", value: "eroticheskaya-fantastika" },
- { label: "Эротический фанфик", value: "eroticheskii-fanfik" },
- { label: "Эротическое фэнтези", value: "eroticheskoe-fentezi" },
- { label: "Юмористический детектив", value: "yumoristicheskii-detektiv" },
- { label: "Юмористическое фэнтези", value: "yumoristicheskoe-fentezi" },
- ],
- type: FilterTypes.CheckboxGroup,
- },
- } satisfies Filters;
-}
-export default new Bookriver();
-
-interface response {
- props: {
- pageProps: {
- state: {
- book?: {
- bookPage: BooksEntity;
- };
- pagesFilter?: {
- genre: {
- books: BooksEntity[];
- };
- };
- };
- };
- };
-}
-
-interface BooksEntity {
- name: string;
- coverImages: { url: string }[];
- slug: string;
- annotation?: string;
- author?: {
- name: string;
- };
- tags?: { name: string }[];
- ebook?: {
- chapters: Chapter[];
- };
- statusComplete: string;
-}
-
-interface Chapter {
- name: string;
- available: boolean;
- firstPublishedAt?: Date | null;
- createdAt?: Date | null;
- chapterId: number | string;
-}
-
-interface responseChapter {
- data: {
- id: number;
- bookId: number;
- name: string;
- content: string;
- symbols: number;
- number: number;
- authorPages: number;
- createdAt: string;
- updatedAt: string;
- firstPublishedAt: string;
- status: string;
- protected: boolean;
- free: boolean;
- audio?: {
- available: boolean;
- url: string;
- duration: number;
- };
- publicationScheduledFor?: null;
- };
-}
-
-interface responseSearch {
- data: Data;
- total: number;
-}
-interface Data {
- books?: BooksEntity[] | null;
-}
+import { Plugin } from "@typings/plugin";
+import { FilterTypes, Filters } from "@libs/filterInputs";
+import { fetchApi, fetchFile } from "@libs/fetch";
+import { NovelStatus } from "@libs/novelStatus";
+import { load as parseHTML } from "cheerio";
+import dayjs from "dayjs";
+
+class Bookriver implements Plugin.PluginBase {
+ id = "bookriver";
+ name = "Bookriver";
+ site = "https://bookriver.ru";
+ version = "1.0.0";
+ icon = "src/ru/bookriver/icon.png";
+
+ async popularNovels(
+ pageNo: number,
+ { showLatestNovels, filters }: Plugin.PopularNovelsOptions,
+ ): Promise {
+ let url = this.site + `/genre?page=${pageNo}&perPage=24&sortingType=`;
+ url += showLatestNovels ? "last-update" : filters?.sort?.value || "bestseller";
+
+ if (filters?.genres?.value?.length) {
+ url += "&g=" + filters.genres.value.join(",");
+ }
+
+ const result = await fetchApi(url).then((res) => res.text());
+ const loadedCheerio = parseHTML(result);
+ const novels: Plugin.NovelItem[] = [];
+
+ const jsonRaw = loadedCheerio("#__NEXT_DATA__").html();
+ if (jsonRaw) {
+ const json: response = JSON.parse(jsonRaw);
+ json.props.pageProps.state.pagesFilter?.genre?.books?.forEach((novel) =>
+ novels.push({
+ name: novel.name,
+ cover: novel.coverImages[0].url,
+ url: this.site + "/book/" + novel.slug,
+ }),
+ );
+ }
+ return novels;
+ }
+
+ async parseNovelAndChapters(novelUrl: string): Promise {
+ const result = await fetchApi(novelUrl).then((res) => res.text());
+ const loadedCheerio = parseHTML(result);
+
+ const jsonRaw = loadedCheerio("#__NEXT_DATA__").html();
+ const json: response = JSON.parse(jsonRaw || "{}");
+ const book = json.props.pageProps.state.book?.bookPage;
+
+ const novel: Plugin.SourceNovel = {
+ url: novelUrl,
+ name: book?.name,
+ cover: book?.coverImages[0].url,
+ summary: book?.annotation,
+ author: book?.author?.name,
+ genres: book?.tags?.map((tag) => tag.name).join(", "),
+ status:
+ book?.statusComplete === "writing"
+ ? NovelStatus.Ongoing
+ : NovelStatus.Completed,
+ };
+
+ const chapters: Plugin.ChapterItem[] = [];
+ book?.ebook?.chapters?.forEach((chapter, chapterIndex) => {
+ if (chapter.available) {
+ chapters.push({
+ name: chapter.name,
+ url: this.site + "/reader/" + book?.slug + "/" + chapter.chapterId,
+ releaseTime: dayjs(chapter?.firstPublishedAt || chapter.createdAt).format("LLL"),
+ chapterNumber: chapterIndex + 1,
+ });
+ }
+ });
+ novel.chapters = chapters;
+ return novel;
+ }
+
+ async parseChapter(chapterUrl: string): Promise {
+ const url = "https://api.bookriver.ru/api/v1/books/chapter/text/";
+ const result = await fetchApi(url + chapterUrl.split("/").pop());
+ const json = (await result.json()) as responseChapter;
+
+ let chapterText = json.data.content || "Конец произведения";
+ if (json.data?.audio?.available) {
+ chapterText += "\n" + json.data.audio.url;
+ }
+
+ return chapterText;
+ }
+
+ async searchNovels(
+ searchTerm: string,
+ pageNo: number | undefined = 1,
+ ): Promise {
+ const url = `https://api.bookriver.ru/api/v1/search/autocomplete?keyword=${searchTerm}&page=${pageNo}&perPage=10`;
+ const result = await fetchApi(url);
+ const json = (await result.json()) as responseSearch;
+
+ const novels: Plugin.NovelItem[] = [];
+ json.data?.books?.forEach((novel) =>
+ novels.push({
+ name: novel.name,
+ cover: novel.coverImages[0].url,
+ url: this.site + "/book/" + novel.slug,
+ }),
+ );
+
+ return novels;
+ }
+ fetchImage = fetchFile;
+
+ filters = {
+ sort: {
+ label: "Сортировка",
+ value: "bestseller",
+ options: [
+ { label: "Бестселлеры", value: "bestseller" },
+ { label: "Дате добавления", value: "newest" },
+ { label: "Дате обновления", value: "last-update" },
+ ],
+ type: FilterTypes.Picker,
+ },
+ genres: {
+ label: "жанры",
+ value: [],
+ options: [
+ { label: "Альтернативная история", value: "alternativnaya-istoriya" },
+ { label: "Боевая фантастика", value: "boevaya-fantastika" },
+ { label: "Боевое фэнтези", value: "boevoe-fentezi" },
+ { label: "Бытовое фэнтези", value: "bytovoe-fentezi" },
+ { label: "Героическая фантастика", value: "geroicheskaya-fantastika" },
+ { label: "Героическое фэнтези", value: "geroicheskoe-fentezi" },
+ { label: "Городское фэнтези", value: "gorodskoe-fentezi" },
+ { label: "Детектив", value: "detektiv" },
+ { label: "Детективная фантастика", value: "detektivnaya-fantastika" },
+ { label: "Жёсткая эротика", value: "zhyostkaya-erotika" },
+ { label: "Исторический детектив", value: "istoricheskii-detektiv" },
+ { label: "Исторический любовный роман", value: "istoricheskii-lyubovnyi-roman" },
+ { label: "Историческое фэнтези", value: "istoricheskoe-fentezi" },
+ { label: "Киберпанк", value: "kiberpank" },
+ { label: "Классический детектив", value: "klassicheskii-detektiv" },
+ { label: "Короткий любовный роман", value: "korotkii-lyubovnyi-roman" },
+ { label: "Космическая фантастика", value: "kosmicheskaya-fantastika" },
+ { label: "Криминальный детектив", value: "kriminalnyi-detektiv" },
+ { label: "ЛитРПГ", value: "litrpg" },
+ { label: "Любовная фантастика", value: "lyubovnaya-fantastika" },
+ { label: "Любовное фэнтези", value: "lyubovnoe-fentezi" },
+ { label: "Любовный роман", value: "lyubovnyi-roman" },
+ { label: "Мистика", value: "mistika" },
+ { label: "Молодежная проза", value: "molodezhnaya-proza" },
+ { label: "Научная фантастика", value: "nauchnaya-fantastika" },
+ { label: "Остросюжетный любовный роман", value: "ostrosyuzhetnyi-lyubovnyi-roman" },
+ { label: "Политический детектив", value: "politicheskii-detektiv" },
+ { label: "Попаданцы", value: "popadantsy" },
+ { label: "Постапокалипсис", value: "postapokalipsis" },
+ { label: "Приключенческое фэнтези", value: "priklyuchencheskoe-fentezi" },
+ { label: "Романтическая эротика", value: "romanticheskaya-erotika" },
+ { label: "С элементами эротики", value: "s-elementami-erotiki" },
+ { label: "Славянское фэнтези", value: "slavyanskoe-fentezi" },
+ { label: "Современный любовный роман", value: "sovremennyi-lyubovnyi-roman" },
+ { label: "Социальная фантастика", value: "sotsialnaya-fantastika" },
+ { label: "Тёмное фэнтези", value: "temnoe-fentezi" },
+ { label: "Фантастика", value: "fantastika" },
+ { label: "Фэнтези", value: "fentezi" },
+ { label: "Шпионский детектив", value: "shpionskii-detektiv" },
+ { label: "Эпическое фэнтези", value: "epicheskoe-fentezi" },
+ { label: "Эротика", value: "erotika" },
+ { label: "Эротическая фантастика", value: "eroticheskaya-fantastika" },
+ { label: "Эротический фанфик", value: "eroticheskii-fanfik" },
+ { label: "Эротическое фэнтези", value: "eroticheskoe-fentezi" },
+ { label: "Юмористический детектив", value: "yumoristicheskii-detektiv" },
+ { label: "Юмористическое фэнтези", value: "yumoristicheskoe-fentezi" },
+ ],
+ type: FilterTypes.CheckboxGroup,
+ },
+ } satisfies Filters;
+}
+export default new Bookriver();
+
+interface response {
+ props: {
+ pageProps: {
+ state: {
+ book?: {
+ bookPage: BooksEntity;
+ };
+ pagesFilter?: {
+ genre: {
+ books: BooksEntity[];
+ };
+ };
+ };
+ };
+ };
+}
+
+interface BooksEntity {
+ name: string;
+ coverImages: { url: string }[];
+ slug: string;
+ annotation?: string;
+ author?: {
+ name: string;
+ };
+ tags?: { name: string }[];
+ ebook?: {
+ chapters: Chapter[];
+ };
+ statusComplete: string;
+}
+
+interface Chapter {
+ name: string;
+ available: boolean;
+ firstPublishedAt?: Date | null;
+ createdAt?: Date | null;
+ chapterId: number | string;
+}
+
+interface responseChapter {
+ data: {
+ id: number;
+ bookId: number;
+ name: string;
+ content: string;
+ symbols: number;
+ number: number;
+ authorPages: number;
+ createdAt: string;
+ updatedAt: string;
+ firstPublishedAt: string;
+ status: string;
+ protected: boolean;
+ free: boolean;
+ audio?: {
+ available: boolean;
+ url: string;
+ duration: number;
+ };
+ publicationScheduledFor?: null;
+ };
+}
+
+interface responseSearch {
+ data: Data;
+ total: number;
+}
+interface Data {
+ books?: BooksEntity[] | null;
+}
diff --git a/plugins/russian/ficbook.ts b/plugins/russian/ficbook.ts
index 13e034d..19f058c 100644
--- a/plugins/russian/ficbook.ts
+++ b/plugins/russian/ficbook.ts
@@ -1,2643 +1,2636 @@
-import { Plugin } from "@typings/plugin";
-import { FilterTypes, Filters } from "@libs/filterInputs";
-import { fetchApi, fetchFile } from "@libs/fetch";
-import { NovelStatus } from "@libs/novelStatus";
-import { load as parseHTML } from "cheerio";
-import { defaultCover } from "@libs/defaultCover";
-
-class ficbook implements Plugin.PluginBase {
- id = "ficbook";
- name = "ficbook";
- site = "https://ficbook.net";
- version = "1.0.0";
- icon = "src/ru/ficbook/icon.png";
-
-
- async popularNovels(
- pageNo: number,
- { showLatestNovels, filters }: Plugin.PopularNovelsOptions,
- ): Promise {
- const baseUrl = this.site;
- let url = baseUrl;
-
- if (filters?.directions?.value) {
- url += "/popular-fanfics/" + filters.directions.value;
- } else if (filters?.tags?.value) {
- url += "/tags/" + filters.tags.value + "?p=" + pageNo;
- } else {
- url += "/" + (filters?.sort?.value || "fanfiction") + "?p=" + pageNo;
- }
-
- const result = await fetchApi(url);
- const body = await result.text();
- const loadedCheerio = parseHTML(body);
-
- const novels: Plugin.NovelItem[] = [];
-
- loadedCheerio("article.fanfic-inline").each(function () {
- const name = loadedCheerio(this).find("h3 > a").text().trim();
- let cover = loadedCheerio(this).find("picture > img").attr("src");
- const url = loadedCheerio(this).find("h3 > a").attr("href");
-
- cover = cover
- ? cover.replace(/covers\/m_|covers\/d_/g, "covers/")
- : defaultCover;
- if (!name || !url) return;
-
- novels.push({ name, cover, url: baseUrl + url.replace(/\?.*/g, "") });
- });
-
- return novels;
- }
-
- async parseNovelAndChapters(novelUrl: string): Promise {
- const result = await fetchApi(novelUrl);
- const body = await result.text();
-
- const loadedCheerio = parseHTML(body);
-
- const novel: Plugin.SourceNovel = {
- url: novelUrl,
- };
-
- novel.name = (
- loadedCheerio('h1[itemprop="headline"]').text() ||
- loadedCheerio('h1[itemprop="name"]').text()
- ).trim();
-
- novel.cover = loadedCheerio('meta[property="og:image"]').attr("content");
- novel.summary = loadedCheerio('div[itemprop="description"]').text().trim();
- novel.author = loadedCheerio('a[itemprop="author"]').text();
-
- novel.status =
- loadedCheerio(
- "div.fanfic-main-info > section:nth-child(3) > div:nth-child(3) > span:nth-child(2)",
- ).text() === "В процессе"
- ? NovelStatus.Ongoing
- : NovelStatus.Completed;
-
- const tags = loadedCheerio('div[class="tags"] > a')
- .map((index, element) => loadedCheerio(element).text())
- .get();
- if (tags) {
- novel.genres = tags.join(",");
- }
-
- if (!novel.cover || novel.cover?.includes("/design/")) {
- novel.cover = defaultCover;
- } else {
- novel.cover = novel.cover.replace(/covers\/m_|covers\/d_/g, "covers/");
- }
-
- const chapters: Plugin.ChapterItem[] = [];
- const baseUrl = this.site;
-
- if (loadedCheerio("#content").length == 1) {
- const name = loadedCheerio(".title-area > h2").text();
- const releaseTime = loadedCheerio(".part-date > span").attr("title");
-
- if (name) chapters.push({ name, releaseTime, url: novelUrl });
- } else {
- loadedCheerio("li.part").each(function () {
- const name = loadedCheerio(this).find("h3").text();
- const releaseTime = loadedCheerio(this)
- .find("div > span")
- .attr("title");
- const url = loadedCheerio(this).find("a:nth-child(1)").attr("href");
- if (!name || !url) return;
-
- chapters.push({ name, releaseTime, url: baseUrl + url });
- });
- }
-
- novel.chapters = chapters;
- return novel;
- }
-
- async parseChapter(chapterUrl: string): Promise {
- const result = await fetchApi(chapterUrl);
- const body = await result.text();
-
- const loadedCheerio = parseHTML(body);
- let chapterText = "";
-
- loadedCheerio("#content")
- .html()
- ?.split("\n")
- ?.forEach((line) => {
- if (line.trim()) {
- //blank line skip
- if (line.includes("
")) {
- //new paragraph
- chapterText += line;
- } else {
- //plaintext
- chapterText += "" + line + "
";
- }
- }
- });
-
- return chapterText;
- }
-
- async searchNovels(
- searchTerm: string,
- pageNo: number | undefined = 1,
- ): Promise {
- const formData = new FormData();
- formData.append("term", searchTerm);
- formData.append("page", pageNo.toString());
-
- const result = await fetchApi(this.site + "/search/fanfic", {
- method: "POST",
- body: formData,
- });
- const json = (await result.json()) as { data: Data };
- const novels: Plugin.NovelItem[] = [];
-
- json.data?.data?.forEach((novel) => {
- const name = novel.title.trim();
- const url = this.site + "/readfic/" + novel.slug;
- const cover = novel.cover
- ? "https://images.ficbook.net/fanfic-covers/" + novel.cover
- : defaultCover;
-
- novels.push({ name, cover, url });
- });
-
- return novels;
- }
- fetchImage = fetchFile;
-
- filters = {
- sort: {
- label: "Сортировка:",
- value: "",
- options: [
- { label: "Горячие работы", value: "fanfiction" },
- { label: "Популярные ", value: "popular-fanfics" },
- ],
- type: FilterTypes.Picker,
- },
- directions: {
- label: "Направление:",
- value: "",
- options: [
- { label: "Все", value: "" },
- { label: "Джен", value: "gen" },
- { label: "Гет", value: "het" },
- { label: "Слэш", value: "slash-fics-3712917" },
- { label: "Фемслэш", value: "femslash-fanfics-9374932" },
- { label: "Статьи", value: "article" },
- { label: "Смешанный", value: "mixed" },
- { label: "Другой", value: "other" },
- ],
- type: FilterTypes.Picker,
- },
- tags: {
- label: "Тэги:",
- value: "",
- options: [
- { label: "Все", value: "" },
- { label: "#1fic1week", value: "884" },
- { label: "#7daystowrite", value: "2961" },
- { label: "#Бинго_ТФ", value: "1458" },
- { label: "#миниатюры3days", value: "2118" },
- { label: "#Не_Тайный_Санта", value: "2760" },
- { label: "#Писательские фанты-блиц", value: "2613" },
- { label: "#cosmowrite", value: "2284" },
- { label: "#femKHRweek", value: "2658" },
- { label: "#FourShips", value: "2588" },
- { label: "#Goretober", value: "1861" },
- { label: "#InternationalVampireDay / #WorldDraculaDay", value: "2048" },
- { label: "#KattWeek", value: "2717" },
- { label: "#Kinktober", value: "1867" },
- { label: "#LotorWeek", value: "2657" },
- { label: "#MerMay", value: "1122" },
- { label: "#NaNoWriMo", value: "1852" },
- { label: "#nsfweruriweek", value: "2944" },
- { label: "#RCMiaChallenge", value: "2700" },
- { label: "#SheithMonth", value: "2432" },
- { label: "#SixDrabbles", value: "2293" },
- { label: "#Writober", value: "1831" },
- { label: "1900-е годы", value: "369" },
- { label: "1910-е годы", value: "213" },
- { label: "1920-е годы", value: "81" },
- { label: "1930-е годы", value: "82" },
- { label: "1940-е годы", value: "83" },
- { label: "1950-е годы", value: "84" },
- { label: "1960-е годы", value: "85" },
- { label: "1970-е годы", value: "86" },
- { label: "1980-е годы", value: "87" },
- { label: "1990-е годы", value: "88" },
- { label: "2000-е годы", value: "590" },
- { label: "2010-е годы", value: "2562" },
- { label: "2014 год", value: "2977" },
- { label: "2P", value: "1910" },
- { label: "9 мая", value: "1019" },
- { label: "Аборт / Выкидыш", value: "306" },
- { label: "Аватары", value: "2401" },
- { label: "Авиатранспорт", value: "962" },
- { label: "Авиация", value: "455" },
- { label: "Аврорат", value: "1906" },
- { label: "Австралия", value: "767" },
- { label: "Австрия", value: "1024" },
- { label: "Автомастерские", value: "788" },
- { label: "Авторская пунктуация", value: "2886" },
- { label: "Авторские неологизмы", value: "1123" },
- { label: "Автоспорт", value: "856" },
- { label: "Автостоп", value: "1429" },
- { label: "Аддикции", value: "1230" },
- { label: "Адреналиновая зависимость", value: "1480" },
- { label: "Азартные игры", value: "1009" },
- { label: "Азкабан", value: "1922" },
- { label: "Аквакинез", value: "1380" },
- { label: "Аквапарки", value: "789" },
- { label: "Акростих", value: "911" },
- { label: "Актеры", value: "408" },
- { label: "Акустикофилия", value: "903" },
- { label: "Алекситимия", value: "2020" },
- { label: "Алкоголь", value: "201" },
- { label: "Алкогольные игры", value: "1534" },
- { label: "Аллергии", value: "746" },
- { label: "Алхимия", value: "1174" },
- { label: "Альбинизм", value: "1213" },
- { label: "Альпинизм", value: "1448" },
- { label: "Альтернативная мировая история", value: "442" },
- { label: "Альтернативное размножение", value: "2751" },
- { label: "Альтернативные судьбы", value: "2839" },
- { label: "Амазонки", value: "1424" },
- { label: "Амегакуре", value: "2571" },
- { label: "Американский футбол", value: "808" },
- { label: "Ампутация", value: "704" },
- { label: "Амфибии", value: "2792" },
- { label: "Анальгезия", value: "1254" },
- { label: "Анальный оргазм", value: "999" },
- { label: "Анальный секс", value: "215" },
- { label: "Анархия", value: "1175" },
- { label: "Анахронизмы", value: "780" },
- { label: "Ангелы", value: "91" },
- { label: "Ангелы-хранители", value: "1044" },
- { label: "Ангст", value: "1665" },
- { label: "Андрогинная внешность", value: "2602" },
- { label: "Андроиды", value: "155" },
- { label: "Анимагия", value: "2519" },
- { label: "Анимализм", value: "1443" },
- { label: "Аномальные зоны", value: "822" },
- { label: "Анонимный секс", value: "112" },
- { label: "Анрождение", value: "1246" },
- { label: "Антарктида", value: "2205" },
- { label: "Анти-Сью (Анти-Стью)", value: "1150" },
- { label: "Антигерои", value: "418" },
- { label: "Антизлодеи", value: "1833" },
- { label: "Антикварные магазины", value: "1496" },
- { label: "Антисоциальное расстройство личности", value: "734" },
- { label: "Антиутопия", value: "1700" },
- { label: "Античность", value: "237" },
- { label: "Апатия", value: "1850" },
- { label: "Аптеки", value: "1240" },
- { label: "Аргентина", value: "1146" },
- { label: "Арены", value: "940" },
- { label: "Аристократия", value: "16" },
- { label: "Арктика", value: "2426" },
- { label: "Армия", value: "22" },
- { label: "Аромантичные персонажи", value: "339" },
- { label: "Артефакты", value: "924" },
- { label: "Археологи", value: "405" },
- { label: "Архивы", value: "2594" },
- { label: "Архитекторы", value: "1011" },
- { label: "Асексофобия", value: "1120" },
- { label: "Асексуальные персонажи", value: "168" },
- { label: "Аскетизм", value: "606" },
- { label: "Асоциальность", value: "2019" },
- { label: "Ассистенты", value: "2641" },
- { label: "Астма", value: "1121" },
- { label: "Астральное проецирование", value: "2530" },
- { label: "Астральные миры", value: "1379" },
- { label: "Астрология", value: "476" },
- { label: "Астронавты", value: "2220" },
- { label: "Астрономия", value: "1372" },
- { label: "Асфиксия", value: "104" },
- { label: "Атеисты", value: "669" },
- { label: "Атлантида", value: "1144" },
- { label: "Атмокинез", value: "1964" },
- { label: "Атмосферная зарисовка", value: "2802" },
- { label: "Атомные электростанции", value: "2192" },
- { label: "Аудиокинез", value: "2849" },
- { label: "Аукционы", value: "607" },
- { label: "Аутоассасинофилия", value: "2025" },
- { label: "Аутоканнибализм", value: "2593" },
- { label: "Аутофелляция / Аутокуннилингус", value: "610" },
- { label: "Африка", value: "791" },
- { label: "Афродизиаки", value: "103" },
- { label: "Аффект", value: "938" },
- { label: "Аэрокинез", value: "2850" },
- { label: "Байкеры", value: "522" },
- { label: "Байронические герои", value: "2900" },
- { label: "Балет", value: "404" },
- { label: "Баллада", value: "2318" },
- { label: "Банки / Биржи", value: "937" },
- { label: "Банши", value: "250" },
- { label: "Барти Крауч-младший — не Пожиратель Смерти", value: "2795" },
- { label: "Бары", value: "142" },
- { label: "Баскетбол", value: "829" },
- { label: "Баски", value: "1763" },
- { label: "Бастарды", value: "603" },
- { label: "Батохаки", value: "2830" },
- { label: "Бедность", value: "979" },
- { label: "Без Волдеморта", value: "2160" },
- { label: "Без диалогов (стилизация)", value: "2885" },
- { label: "Без золотого трио", value: "2648" },
- { label: "Без Избранного (Гарри Поттер)", value: "2762" },
- { label: "Без канонических персонажей", value: "2694" },
- { label: "Без Таноса", value: "2381" },
- { label: "БезГражданки", value: "2418" },
- { label: "Бездомные", value: "916" },
- { label: "Безответственность", value: "2152" },
- { label: "Безумные ученые", value: "2559" },
- { label: "Безэмоциональность", value: "1488" },
- { label: "Бейсбол", value: "1489" },
- { label: "Беларусь", value: "1030" },
- { label: "Белый день", value: "683" },
- { label: "Белый стих", value: "1998" },
- { label: "Бельгия", value: "1039" },
- { label: "Беременность", value: "1712" },
- { label: "Бермудский треугольник", value: "1158" },
- { label: "Берсерки", value: "566" },
- { label: "Бесконтактный секс", value: "2214" },
- { label: "Бесплодие", value: "719" },
- { label: "Беспокойство", value: "2888" },
- { label: "Беспризорники", value: "604" },
- { label: "Беспричудный Изуку", value: "2422" },
- { label: "Бессмертие", value: "219" },
- { label: "Бессмертный конкурс 2023", value: "3016" },
- { label: "Бестелесность", value: "2607" },
- { label: "Би-персонажи", value: "300" },
- { label: "Библейские темы и мотивы", value: "1468" },
- { label: "Библиотекари", value: "2631" },
- { label: "Библиотеки", value: "310" },
- { label: "Бизнесмены / Бизнесвумен", value: "573" },
- { label: "Биологическое оружие", value: "1188" },
- { label: "Биопанк", value: "281" },
- { label: "Биороботы", value: "2256" },
- { label: "Биполярное расстройство", value: "690" },
- { label: "Битва за Хогвартс", value: "2774" },
- { label: "Битва Историй", value: "2960" },
- { label: "Благородные разбойники", value: "952" },
- { label: "Благотворительность", value: "613" },
- { label: "Бладплей", value: "109" },
- { label: "Ближний Восток", value: "1041" },
- { label: "Близкие враги", value: "721" },
- { label: "Близнецы", value: "295" },
- { label: "Блиц-свидания", value: "2511" },
- { label: "Блогеры", value: "1471" },
- { label: "Блокадный Ленинград", value: "1111" },
- { label: "Блэкигуд", value: "2905" },
- { label: "Богачи", value: "1549" },
- { label: "Боги / Божественные сущности", value: "149" },
- { label: "Боди-арт", value: "2260" },
- { label: "Бодипозитив", value: "1153" },
- { label: "Боевая пара", value: "1919" },
- { label: "Боевые искусства", value: "918" },
- { label: "Бои без правил", value: "1390" },
- { label: "Бокс", value: "765" },
- { label: "Болгария", value: "1786" },
- { label: "Болезнь Альцгеймера", value: "2533" },
- { label: "Боль", value: "1803" },
- { label: "Больницы", value: "20" },
- { label: "Большая Игра профессора Дамблдора", value: "2890" },
- { label: "Бордели", value: "120" },
- { label: "Борьба за власть", value: "2300" },
- { label: "Борьба за отношения", value: "1251" },
- { label: "Борьба за справедливость", value: "2335" },
- { label: "Боязнь боли", value: "2441" },
- { label: "Боязнь воды", value: "1084" },
- { label: "Боязнь врачей", value: "2063" },
- { label: "Боязнь высоты", value: "1085" },
- { label: "Боязнь грозы", value: "1124" },
- { label: "Боязнь громких звуков", value: "1090" },
- { label: "Боязнь грязи", value: "1277" },
- { label: "Боязнь замкнутых пространств", value: "821" },
- { label: "Боязнь зеркал", value: "2739" },
- { label: "Боязнь клоунов", value: "2970" },
- { label: "Боязнь крови", value: "1312" },
- { label: "Боязнь людей", value: "1082" },
- { label: "Боязнь мужчин", value: "1264" },
- { label: "Боязнь насекомых / Боязнь пауков", value: "1119" },
- { label: "Боязнь неудачи", value: "2713" },
- { label: "Боязнь огня", value: "1258" },
- { label: "Боязнь одиночества", value: "1491" },
- { label: "Боязнь открытых пространств", value: "965" },
- { label: "Боязнь привязанности", value: "1343" },
- { label: "Боязнь призраков", value: "2770" },
- { label: "Боязнь прикосновений", value: "823" },
- { label: "Боязнь сексуальных домогательств", value: "2319" },
- { label: "Боязнь смерти", value: "1515" },
- { label: "Боязнь сна", value: "2262" },
- { label: "Боязнь темноты", value: "1494" },
- { label: "Боязнь тишины", value: "2233" },
- { label: "Бразилия", value: "833" },
- { label: "Брак по договоренности", value: "35" },
- { label: "Брак по расчету", value: "303" },
- { label: "БРД", value: "2907" },
- { label: "Бродячие артисты", value: "2661" },
- { label: "Бродячие певцы", value: "1497" },
- { label: "Броманс", value: "171" },
- { label: "Будущее", value: "227" },
- { label: "Буллёзный эпидермолиз", value: "2725" },
- { label: "Буллинг", value: "436" },
- { label: "Бухгалтеры", value: "2509" },
- { label: "Буч и фэм", value: "486" },
- { label: "Бывшие", value: "311" },
- { label: "Бывшие враги", value: "2812" },
- { label: "Бывшие серийные убийцы", value: "2498" },
- { label: "Бытовое фэнтези", value: "2702" },
- { label: "В одном теле", value: "1425" },
- { label: "В поисках отношений", value: "1576" },
- { label: "В. А. О. Н.", value: "2377" },
- { label: "Вагинальный секс", value: "395" },
- { label: "Ваканда", value: "2668" },
- { label: "Валькирии", value: "557" },
- { label: "Вампиры", value: "27" },
- { label: "Василиски", value: "863" },
- { label: "Вдовство", value: "2030" },
- { label: "Вебкам-модели", value: "2299" },
- { label: "Вегетарианцы / Веганы", value: "577" },
- { label: "Ведьмы / Колдуны", value: "33" },
- { label: "Великая депрессия", value: "2224" },
- { label: "Великая французская революция", value: "2000" },
- { label: "Великобритания", value: "673" },
- { label: "Великое Княжество Литовское", value: "2587" },
- { label: "Великолепный мерзавец", value: "1244" },
- { label: "Велоспорт", value: "2978" },
- { label: "Венгрия", value: "1432" },
- { label: "Вендиго", value: "251" },
- { label: "Верность", value: "459" },
- { label: "Вертикальный инцест", value: "337" },
- { label: "Вестерн", value: "2329" },
- { label: "Ветераны", value: "555" },
- { label: "Ветеринары", value: "629" },
- { label: "Вечеринки", value: "854" },
- { label: "Вечная молодость", value: "2405" },
- { label: "Вещие сны", value: "1993" },
- { label: "Взаимопонимание", value: "2887" },
- { label: "Взросление", value: "909" },
- { label: "Вигиланты", value: "1514" },
- { label: "Видеоигры", value: "2508" },
- { label: "Визажисты / Гримеры", value: "1801" },
- { label: "Викинги", value: "676" },
- { label: "Виктимблейминг", value: "331" },
- { label: "Викторианская эпоха", value: "469" },
- { label: "Виртуальная реальность", value: "803" },
- { label: "Виртуальный секс", value: "268" },
- { label: "Витилиго", value: "1167" },
- { label: "Вице-королевство Новая Испания", value: "2603" },
- { label: "ВИЧ / СПИД", value: "542" },
- { label: "Влюбленность", value: "1303" },
- { label: "Вне закона", value: "1089" },
- { label: "Внутренний сексизм", value: "2155" },
- { label: "Внутренняя гомофобия", value: "2154" },
- { label: "Внутренняя трансфобия", value: "2716" },
- { label: "Водители / Шоферы", value: "879" },
- { label: "Военные", value: "313" },
- { label: "Военные городки", value: "2095" },
- { label: "Военные преступления", value: "2356" },
- { label: "Возвращение", value: "1522" },
- { label: "Возвращение Артура", value: "2570" },
- { label: "Воздержание", value: "921" },
- { label: "Воздушная атлетика", value: "2811" },
- { label: "Война", value: "232" },
- { label: "Война в Афганистане", value: "1050" },
- { label: "Война во Вьетнаме", value: "1332" },
- { label: "Война за независимость США", value: "2065" },
- { label: "Война миров", value: "1222" },
- { label: "Волдигуд", value: "1874" },
- { label: "Волейбол", value: "1095" },
- { label: "Волк в овечьей шкуре", value: "2228" },
- { label: "Волонтеры", value: "900" },
- { label: "Волшебники / Волшебницы", value: "93" },
- { label: "Воображаемые друзья", value: "738" },
- { label: "Ворарефилия", value: "157" },
- { label: "Воры", value: "320" },
- { label: "Воскрешение", value: "256" },
- { label: "Воспоминания", value: "1118" },
- { label: "Воссоединение", value: "498" },
- { label: "Восстание машин", value: "817" },
- { label: "Восточное побережье", value: "770" },
- { label: "Восьмое марта", value: "493" },
- { label: "Вражда", value: "681" },
- { label: "Вражда семей", value: "2867" },
- { label: "Врачи", value: "374" },
- { label: "Времена Мародеров", value: "1872" },
- { label: "Времена Основателей", value: "1891" },
- { label: "Временная смерть персонажа", value: "439" },
- { label: "Временное бессмертие", value: "2755" },
- { label: "Временное воскрешение персонажей", value: "2649" },
- { label: "Временные петли", value: "147" },
- { label: "Временные превращения", value: "927" },
- { label: "Врожденные заболевания", value: "1781" },
- { label: "Всадники Апокалипсиса", value: "1326" },
- { label: "Все живы / Никто не умер", value: "535" },
- { label: "Все за Одного — отец Изуку", value: "2421" },
- { label: "Всезнающий рассказчик", value: "1368" },
- { label: "Вселение в тело", value: "1181" },
- { label: "Вторая мировая", value: "488" },
- { label: "Вторжение пришельцев", value: "755" },
- { label: "Вторичный стыд", value: "1393" },
- { label: "Второй шанс", value: "1799" },
- { label: "Второстепенные оригинальные персонажи", value: "1536" },
- { label: "Вуайеризм", value: "174" },
- { label: "Вуду", value: "678" },
- { label: "Выбор", value: "2808" },
- { label: "Выгорание", value: "2914" },
- { label: "Выживание", value: "216" },
- { label: "Вымирающий вид", value: "2373" },
- { label: "Вымышленная анатомия", value: "1317" },
- { label: "Вымышленная география", value: "1294" },
- { label: "Вымышленная религия", value: "2062" },
- { label: "Вымышленная физика", value: "2132" },
- { label: "Вымышленные виды спорта", value: "1777" },
- { label: "Вымышленные заболевания", value: "1295" },
- { label: "Вымышленные науки", value: "1333" },
- { label: "Вымышленные праздники", value: "1769" },
- { label: "Вымышленные профессии", value: "1391" },
- { label: "Вымышленные существа", value: "1685" },
- { label: "Вымышленные языки", value: "536" },
- { label: "Выпускные", value: "717" },
- { label: "Высшее общество", value: "1093" },
- { label: "Высшие учебные заведения", value: "97" },
- { label: "Выученная беспомощность", value: "2772" },
- { label: "Выхаживание", value: "511" },
- { label: "Выход из нездоровых отношений", value: "2891" },
- { label: "Гадалки / Ясновидящие", value: "2662" },
- { label: "Гадкий утенок", value: "1225" },
- { label: "Газлайтинг", value: "1418" },
- { label: "Галлюцинации / Иллюзии", value: "365" },
- { label: "Гаремник", value: "50" },
- { label: "Гаремы", value: "115" },
- { label: "Гарпии", value: "1482" },
- { label: "Гарри Поттер и Драко Малфой — друзья", value: "1923" },
- { label: "Гастроли", value: "2487" },
- { label: "Гедонизм", value: "736" },
- { label: "Гей-клубы", value: "2482" },
- { label: "Геймеры", value: "356" },
- { label: "Геймлит", value: "23" },
- { label: "Гейши / Кисэн", value: "332" },
- { label: "Гемофилия", value: "1341" },
- { label: "Гендерная дисфория", value: "431" },
- { label: "Гендерная интрига", value: "55" },
- { label: "Гендерное неравенство", value: "2568" },
- { label: "Гендерный нонконформизм", value: "1417" },
- { label: "Гендерсвап", value: "1691" },
- { label: "Генетика / Эволюция", value: "2131" },
- { label: "Гении", value: "445" },
- { label: "Генитальные пытки", value: "2104" },
- { label: "Геноцид", value: "720" },
- { label: "Геокинез", value: "2889" },
- { label: "Геологи / Географы", value: "934" },
- { label: "Германия", value: "688" },
- { label: "Германия — не Священная Римская Империя", value: "2470" },
- { label: "Герой поневоле", value: "2145" },
- { label: "Геронтофилия", value: "162" },
- { label: "Гетерохромия", value: "1210" },
- { label: "Гетто", value: "1783" },
- { label: "Гибристофилия", value: "1843" },
- { label: "Гиганты", value: "735" },
- { label: "Гидра трэш-пати", value: "2804" },
- { label: "Гики", value: "482" },
- { label: "Гильдии", value: "957" },
- { label: "Гимнастика", value: "1974" },
- { label: "Гиперакузия", value: "2866" },
- { label: "Гиперсексуальность", value: "945" },
- { label: "Гипноз", value: "700" },
- { label: "Гладиаторы", value: "677" },
- { label: "Глобальные катастрофы", value: "525" },
- { label: "Глухота", value: "595" },
- { label: "Гнев", value: "2806" },
- { label: "Гнездование", value: "1452" },
- { label: "Гномы", value: "138" },
- { label: "Гоблины", value: "188" },
- { label: "Големы", value: "1208" },
- { label: "Голод", value: "868" },
- { label: "Голодные Фэндомные Игры", value: "2895" },
- { label: "Гомофобия", value: "428" },
- { label: "Гомункулы", value: "1366" },
- { label: "Горе / Утрата", value: "1113" },
- { label: "Горизонтальный инцест", value: "338" },
- { label: "Городские легенды", value: "1832" },
- { label: "Горы", value: "702" },
- { label: "Горячие источники", value: "2813" },
- { label: "Гостевой брак", value: "1354" },
- { label: "Гостиницы", value: "384" },
- { label: "Готический роман", value: "963" },
- { label: "Готы", value: "575" },
- { label: "Гравиокинез", value: "1985" },
- { label: "Гражданская война", value: "370" },
- { label: "Гражданская война в России", value: "1282" },
- { label: "Гражданская война в США", value: "1018" },
- { label: "Графичные описания", value: "2854" },
- { label: "Грейнджергад", value: "1892" },
- { label: "Грейромантичные персонажи", value: "707" },
- { label: "Гремлины", value: "189" },
- { label: "Греция", value: "1040" },
- { label: "Грифоны", value: "335" },
- { label: "Громкий секс", value: "1184" },
- { label: "Грубый секс", value: "121" },
- { label: "Грудное кормление", value: "296" },
- { label: "Групи", value: "2925" },
- { label: "Групповое изнасилование", value: "2203" },
- { label: "Групповой секс", value: "1654" },
- { label: "Грязный реализм", value: "634" },
- { label: "Гувернантки", value: "1179" },
- { label: "Гули", value: "367" },
- { label: "Гэвин Рид — андроид", value: "2692" },
- { label: "Даб-кон", value: "57" },
- { label: "Даби — не Тойя Тодороки", value: "2821" },
- { label: "Даби — Тойя Тодороки", value: "2423" },
- { label: "Дадзава", value: "2915" },
- { label: "Дадмайт", value: "2917" },
- { label: "Дайверы", value: "939" },
- { label: "Дайвинг", value: "2823" },
- { label: "Дама в беде", value: "1259" },
- { label: "Дамбигад", value: "1863" },
- { label: "Дамбигуд", value: "1873" },
- { label: "Дампиры", value: "2860" },
- { label: "Дандэрэ", value: "1364" },
- { label: "Дарк", value: "1678" },
- { label: "Даркнет", value: "1287" },
- { label: "Дачи", value: "930" },
- { label: "Двойники", value: "305" },
- { label: "Двойное проникновение", value: "107" },
- { label: "Двойной кноттинг", value: "2619" },
- { label: "Двойные агенты", value: "441" },
- { label: "Дворцовые интриги", value: "2075" },
- { label: "Девиантное поведение", value: "1814" },
- { label: "Девичники / Мальчишники", value: "1191" },
- { label: "Девочки из Эквестрии", value: "2912" },
- { label: "Дежавю", value: "2049" },
- { label: "Декаданс", value: "2353" },
- { label: "Деконструкция", value: "1322" },
- { label: "Деми-персонажи", value: "723" },
- { label: "Демиурги", value: "819" },
- { label: "Демонология", value: "2485" },
- { label: "Демоны", value: "73" },
- { label: "Демоны-хранители", value: "2045" },
- { label: "Дендрофилия", value: "491" },
- { label: "День благодарения", value: "754" },
- { label: "День знаний", value: "1075" },
- { label: "День матери", value: "2979" },
- { label: "День мертвых", value: "1074" },
- { label: "День независимости США", value: "1008" },
- { label: "День рождения", value: "298" },
- { label: "День святого Валентина", value: "204" },
- { label: "День святого Патрика", value: "1129" },
- { label: "День смерти", value: "2251" },
- { label: "День учителя", value: "1076" },
- { label: "Деперсонализация", value: "1197" },
- { label: "Депрессия", value: "354" },
- { label: "Депривация сна", value: "551" },
- { label: "Дереализация", value: "1198" },
- { label: "Деревни", value: "364" },
- { label: "Дерматозойный бред", value: "2779" },
- { label: "Деспоты / Тираны", value: "1345" },
- { label: "Детектив", value: "1672" },
- { label: "Дети", value: "217" },
- { label: "Детоненавистничество", value: "1836" },
- { label: "Детская влюбленность", value: "186" },
- { label: "Детские дома", value: "355" },
- { label: "Детские лагеря", value: "222" },
- { label: "Детские сады", value: "567" },
- { label: "Дефекты зрения", value: "2639" },
- { label: "Дефекты речи", value: "737" },
- { label: "Джинны / Пери", value: "456" },
- { label: "Джон Ватсон — преступник", value: "1932" },
- { label: "Джуманджи — не игровой мир", value: "2799" },
- { label: "Диабет", value: "820" },
- { label: "Диалоги (стилизация)", value: "1139" },
- { label: "Дизайнеры", value: "1875" },
- { label: "Дизельпанк", value: "294" },
- { label: "Дикие животные", value: "622" },
- { label: "Дикий Запад", value: "293" },
- { label: "Дилетанты", value: "2443" },
- { label: "Динозавры", value: "670" },
- { label: "Дипломатия", value: "1790" },
- { label: "Дисбаланс власти", value: "732" },
- { label: "Дискриминация", value: "2230" },
- { label: "Дискриминация по внешности", value: "1414" },
- { label: "Дискриминация по возрасту", value: "2843" },
- { label: "Дислексия", value: "860" },
- { label: "Дисморфофобия", value: "1108" },
- { label: "Диссоциативное расстройство идентичности", value: "2127" },
- { label: "Дистанционное обучение", value: "2592" },
- { label: "Дисфункциональные семьи", value: "602" },
- { label: "Дневники (стилизация)", value: "214" },
- { label: "Добрый Сальери", value: "2522" },
- { label: "Доверие", value: "1117" },
- { label: "Договоры / Сделки", value: "2137" },
- { label: "Документы / Отчеты (стилизация)", value: "752" },
- { label: "Долголетие", value: "2130" },
- { label: "Домашнее насилие", value: "42" },
- { label: "Домашние животные", value: "517" },
- { label: "Домашний арест", value: "2526" },
- { label: "Домашний ремонт", value: "867" },
- { label: "Домовые", value: "1423" },
- { label: "Допросы", value: "2654" },
- { label: "Дорожное приключение", value: "47" },
- { label: "Драббл", value: "2935" },
- { label: "Драки", value: "1367" },
- { label: "Драконы", value: "43" },
- { label: "Драма", value: "1668" },
- { label: "Драуги", value: "2264" },
- { label: "Древний Восток", value: "1940" },
- { label: "Древний Египет", value: "474" },
- { label: "Древний Китай", value: "1438" },
- { label: "Древняя Русь", value: "466" },
- { label: "Дремлющее зло", value: "2719" },
- { label: "Дремлющие способности", value: "2084" },
- { label: "Другая магическая школа", value: "1864" },
- { label: "Другие планеты", value: "1415" },
- { label: "Другой избранный", value: "2054" },
- { label: "Другой факультет", value: "1866" },
- { label: "Дружба", value: "1701" },
- { label: "Дружба втайне", value: "2303" },
- { label: "Дружба по расчету", value: "2331" },
- { label: "Друзья детства", value: "343" },
- { label: "Друзья по переписке", value: "1466" },
- { label: "Друзья поневоле", value: "627" },
- { label: "Друзья с привилегиями", value: "113" },
- { label: "Друиды", value: "1199" },
- { label: "Дрэг (субкультура)", value: "1248" },
- { label: "Дурмстранг", value: "2389" },
- { label: "Дурслигуд", value: "2058" },
- { label: "Духи природы", value: "503" },
- { label: "Духовенство", value: "478" },
- { label: "Духовная связь", value: "2090" },
- { label: "Духокинез", value: "2500" },
- { label: "Дуэли", value: "446" },
- { label: "Дьяволы", value: "2369" },
- { label: "Дэдди-кинк", value: "165" },
- { label: "Еда / Кулинария", value: "1195" },
- { label: "Единороги", value: "373" },
- { label: "Ёкаи", value: "416" },
- { label: "Естественные враги", value: "728" },
- { label: "Жамевю", value: "2050" },
- { label: "Жаргон", value: "1016" },
- { label: "Ждун Фест", value: "2936" },
- { label: "Железнодорожники", value: "2680" },
- { label: "Железные дороги", value: "811" },
- { label: "Женская дружба", value: "2156" },
- { label: "Жертвы обстоятельств", value: "1475" },
- { label: "Жестокое обращение с животными", value: "722" },
- { label: "Жестокость", value: "1710" },
- { label: "Живой сосуд", value: "2072" },
- { label: "Животные-компаньоны", value: "2371" },
- { label: "Живые машины", value: "961" },
- { label: "ЖиП", value: "143" },
- { label: "Журналисты", value: "438" },
- { label: "Заболевания", value: "1268" },
- { label: "Заболевания крови", value: "2254" },
- { label: "Заболевания сердца", value: "1767" },
- { label: "Забота / Поддержка", value: "1302" },
- { label: "Заброшенные города", value: "1276" },
- { label: "Заброшенные здания", value: "1483" },
- { label: "Забытый герой", value: "2337" },
- { label: "Завещание", value: "1262" },
- { label: "Зависимое расстройство личности", value: "2349" },
- { label: "Зависть", value: "990" },
- { label: "Завоевание", value: "978" },
- { label: "Загробный мир", value: "275" },
- { label: "Закавказье", value: "2819" },
- { label: "Заклятые друзья", value: "1316" },
- { label: "Закрытые города", value: "1481" },
- { label: "Закрытые учебные заведения", value: "98" },
- { label: "Закрытый детектив", value: "2616" },
- { label: "Заложники", value: "845" },
- { label: "Замки", value: "654" },
- { label: "Замкнутое пространство", value: "2306" },
- { label: "Замкнутый мир", value: "874" },
- { label: "Занавесочная история", value: "1688" },
- { label: "Запахи", value: "1385" },
- { label: "Заповедники", value: "618" },
- { label: "Запредельно одаренный персонаж", value: "1241" },
- { label: "Запрет на магию", value: "2663" },
- { label: "Запретные отношения", value: "362" },
- { label: "Засосы / Укусы", value: "913" },
- { label: "Застенчивость", value: "2807" },
- { label: "Затворники", value: "1059" },
- { label: "Затерянные миры", value: "2448" },
- { label: "Защита любимого", value: "2492" },
- { label: "Защитники природы", value: "628" },
- { label: "Защищенный секс", value: "636" },
- { label: "Звездные слезы", value: "2971" },
- { label: "Здоровые механизмы преодоления", value: "2147" },
- { label: "Здоровые отношения", value: "1853" },
- { label: "Зеркала", value: "724" },
- { label: "Зимняя Фандомная Битва", value: "254" },
- { label: "Злобные бывшие", value: "518" },
- { label: "Зловещая находка", value: "2275" },
- { label: "Знаки зодиака", value: "643" },
- { label: "Знаменитости", value: "1360" },
- { label: "Золотая клетка", value: "480" },
- { label: "Золотая молодежь", value: "796" },
- { label: "Золотая Орда", value: "1143" },
- { label: "Золушка", value: "1226" },
- { label: "Зомби", value: "31" },
- { label: "Зоопарки", value: "792" },
- { label: "Зоофилия", value: "1662" },
- { label: "Зоофобии", value: "2715" },
- { label: "ЗППП", value: "630" },
- { label: "ЗПР", value: "2259" },
- { label: "Зрелые персонажи", value: "851" },
- { label: "Иван Купала", value: "1068" },
- { label: "Игровое расстройство", value: "949" },
- { label: "Игрушки", value: "1346" },
- { label: "Игры на выживание", value: "554" },
- { label: "Игры на раздевание", value: "1535" },
- { label: "Игры с сосками", value: "423" },
- { label: "Игры с температурой", value: "230" },
- { label: "Идеализация", value: "1540" },
- { label: "Иерархический строй", value: "652" },
- { label: "Избранные", value: "847" },
- { label: "Избыточный физиологизм", value: "2334" },
- { label: "Изгнанники", value: "871" },
- { label: "Измена", value: "62" },
- { label: "Измененное состояние сознания", value: "2242" },
- { label: "Изменились за лето", value: "1908" },
- { label: "Изнасилование", value: "1650" },
- { label: "Изоляция", value: "1296" },
- { label: "Израиль", value: "1094" },
- { label: "Изуку Мидория — злодей", value: "2472" },
- { label: "Иллюзионисты", value: "532" },
- { label: "Имейджин", value: "838" },
- { label: "Импотенция", value: "632" },
- { label: "Импринтинг", value: "635" },
- { label: "Импрореал", value: "2955" },
- { label: "Импрофест", value: "2947" },
- { label: "Имя вместо цвета", value: "2919" },
- { label: "Инвалидность", value: "197" },
- { label: "Индия", value: "1002" },
- { label: "Инквизиция", value: "1130" },
- { label: "Инопланетяне", value: "58" },
- { label: "Инсектоиды / Арахноиды", value: "953" },
- { label: "Инсектофилия / Арахнофилия", value: "664" },
- { label: "Инсценированная смерть персонажа", value: "440" },
- { label: "Интерактивная работа", value: "419" },
- { label: "Интервью (стилизация)", value: "2446" },
- { label: "Интернет", value: "1286" },
- { label: "Интерсекс-персонажи", value: "299" },
- { label: "Интрамаммарный секс", value: "840" },
- { label: "Инфантильность", value: "1300" },
- { label: "Инцест", value: "1651" },
- { label: "Ипохондрия", value: "2178" },
- { label: "Ирландия", value: "1035" },
- { label: "Иронический детектив", value: "2638" },
- { label: "Искра Стайлз Стилински", value: "1975" },
- { label: "Искупление", value: "877" },
- { label: "Искусственно вызванные чувства", value: "626" },
- { label: "Искусственные интеллекты", value: "150" },
- { label: "Искусственные существа", value: "2277" },
- { label: "Искусство", value: "2257" },
- { label: "Искусствоведы", value: "2873" },
- { label: "Искушение", value: "776" },
- { label: "Испания", value: "1020" },
- { label: "Исповеди", value: "1342" },
- { label: "Исправительные лагеря", value: "2439" },
- { label: "Истинные", value: "1855" },
- { label: "Историческая Хеталия", value: "1865" },
- { label: "Исторические эпохи", value: "1698" },
- { label: "Исторический Кантриболс", value: "2913" },
- { label: "Историческое допущение", value: "2681" },
- { label: "Исцеление", value: "802" },
- { label: "Италия", value: "1003" },
- { label: "Ихтиоморфы", value: "972" },
- { label: "Йога", value: "483" },
- { label: "Йоль", value: "2143" },
- { label: "Кабаре", value: "457" },
- { label: "Кабэ-дон", value: "2626" },
- { label: "Казахстан", value: "1260" },
- { label: "Казино", value: "620" },
- { label: "Казнь", value: "548" },
- { label: "Как ориджинал", value: "1032" },
- { label: "Каламбуры", value: "881" },
- { label: "Каминг-аут", value: "559" },
- { label: "Канада", value: "695" },
- { label: "Каникулы", value: "805" },
- { label: "Каннибализм", value: "1706" },
- { label: "Канонная смерть персонажа", value: "564" },
- { label: "Капитан Гидра", value: "1928" },
- { label: "Карантинные зоны", value: "1290" },
- { label: "Карантины", value: "2734" },
- { label: "Караоке", value: "886" },
- { label: "Карательная психиатрия", value: "730" },
- { label: "Карибский бассейн", value: "1172" },
- { label: "Карма", value: "647" },
- { label: "Карьеризм", value: "956" },
- { label: "Каскадеры", value: "2267" },
- { label: "Катарсис", value: "824" },
- { label: "Кафе / Кофейни / Чайные", value: "13" },
- { label: "Квай-Гад", value: "2894" },
- { label: "Квантовая физика", value: "2744" },
- { label: "Квисины", value: "2722" },
- { label: "Кемономими", value: "997" },
- { label: "Кемпинг", value: "182" },
- { label: "Кентавры", value: "64" },
- { label: "Кибербуллинг", value: "1858" },
- { label: "Киберпанк", value: "24" },
- { label: "Киберспорт", value: "745" },
- { label: "Кибертрон", value: "2775" },
- { label: "Киборги", value: "154" },
- { label: "Киевская Русь", value: "515" },
- { label: "Кинк на беременность", value: "2281" },
- { label: "Кинк на волосы", value: "2089" },
- { label: "Кинк на волосы на теле", value: "1337" },
- { label: "Кинк на девственность", value: "2282" },
- { label: "Кинк на инвалидность", value: "633" },
- { label: "Кинк на интеллект", value: "2798" },
- { label: "Кинк на клыки", value: "2325" },
- { label: "Кинк на колготки", value: "2644" },
- { label: "Кинк на крылья", value: "2035" },
- { label: "Кинк на латекс", value: "134" },
- { label: "Кинк на мольбы", value: "1543" },
- { label: "Кинк на наручники", value: "1065" },
- { label: "Кинк на нижнее белье", value: "145" },
- { label: "Кинк на очки", value: "1723" },
- { label: "Кинк на ошейники", value: "388" },
- { label: "Кинк на полноту", value: "552" },
- { label: "Кинк на похвалу", value: "1042" },
- { label: "Кинк на протезы", value: "2682" },
- { label: "Кинк на рога", value: "2320" },
- { label: "Кинк на руки", value: "915" },
- { label: "Кинк на сердцебиение", value: "941" },
- { label: "Кинк на силу", value: "1476" },
- { label: "Кинк на слезы", value: "1373" },
- { label: "Кинк на служение", value: "2980" },
- { label: "Кинк на страх", value: "2246" },
- { label: "Кинк на стыд", value: "747" },
- { label: "Кинк на унижение", value: "2291" },
- { label: "Кинк на униформу", value: "1350" },
- { label: "Кинк на уши", value: "2370" },
- { label: "Кинк на формальную одежду", value: "1064" },
- { label: "Кинк на чужую одежду", value: "2920" },
- { label: "Кинк на чулки", value: "810" },
- { label: "Кинк на шрамы", value: "2831" },
- { label: "Кинк на щекотку", value: "2396" },
- { label: "Кинк-бинго", value: "2290" },
- { label: "Кинки / Фетиши", value: "1659" },
- { label: "Кинотеатры", value: "981" },
- { label: "Киригакуре", value: "2475" },
- { label: "Китай", value: "757" },
- { label: "Кладбища", value: "501" },
- { label: "Кланы", value: "2879" },
- { label: "Классизм", value: "1927" },
- { label: "Клейма", value: "1548" },
- { label: "Клептомания", value: "1160" },
- { label: "Клетка Люцифера", value: "1884" },
- { label: "Клетки", value: "1069" },
- { label: "Клиническая смерть", value: "2068" },
- { label: "Клокпанк / Ветропанк", value: "1812" },
- { label: "Клоны", value: "358" },
- { label: "Клоуны", value: "1520" },
- { label: "Клубы по интересам", value: "1369" },
- { label: "Клюква", value: "1001" },
- { label: "Кляпы / Затыкание рта", value: "379" },
- { label: "Книги", value: "2746" },
- { label: "Книжные магазины", value: "444" },
- { label: "Кноттинг", value: "99" },
- { label: "Ковбои", value: "330" },
- { label: "Кода", value: "1943" },
- { label: "Кожаная одежда", value: "1517" },
- { label: "Колдовстворец", value: "2600" },
- { label: "Кома", value: "516" },
- { label: "Командная работа", value: "708" },
- { label: "Комики", value: "1315" },
- { label: "Комиксисты / Мангаки", value: "576" },
- { label: "Коммунальные квартиры", value: "1437" },
- { label: "Коммуны", value: "797" },
- { label: "Комнатные растения", value: "1792" },
- { label: "Комплекс Бога", value: "2087" },
- { label: "Комплекс превосходства", value: "2191" },
- { label: "Комплексы", value: "2529" },
- { label: "Конкурс от BUBBLE", value: "2937" },
- { label: "Конный спорт", value: "1378" },
- { label: "Конохагакуре", value: "2477" },
- { label: "Конспирология", value: "1911" },
- { label: "Контрабандисты", value: "2363" },
- { label: "Контроль / Подчинение", value: "932" },
- { label: "Контроль памяти", value: "2540" },
- { label: "Контроль сознания", value: "257" },
- { label: "Конфликт мировоззрений", value: "2678" },
- { label: "Концентрационные лагеря", value: "547" },
- { label: "Концерты / Выступления", value: "1236" },
- { label: "Конюшни", value: "514" },
- { label: "Копирование сознания", value: "1231" },
- { label: "Копирование способностей", value: "1825" },
- { label: "Копро-кинк", value: "763" },
- { label: "Корё", value: "1142" },
- { label: "Корейская война", value: "2187" },
- { label: "Коренные народы", value: "1505" },
- { label: "Королевства", value: "2794" },
- { label: "Корпорация BOBSOC", value: "2940" },
- { label: "Корректирующее изнасилование", value: "2856" },
- { label: "Коррупция", value: "2150" },
- { label: "Косвенные убийства", value: "2846" },
- { label: "Космоопера", value: "48" },
- { label: "Космос", value: "236" },
- { label: "Косплееры", value: "944" },
- { label: "Кочевники", value: "1793" },
- { label: "Кошмары", value: "1228" },
- { label: "Красная нить судьбы", value: "608" },
- { label: "Крепости / Башни", value: "2321" },
- { label: "Крестовые походы", value: "2070" },
- { label: "Крестражи", value: "2238" },
- { label: "Кризис гендера", value: "1406" },
- { label: "Кризис ориентации", value: "1405" },
- { label: "Криминалистическая экспертиза", value: "2361" },
- { label: "Криминальная пара", value: "1920" },
- { label: "Криокинез", value: "1804" },
- { label: "Криптиды", value: "60" },
- { label: "Криптоистория", value: "179" },
- { label: "Кровь / Травмы", value: "800" },
- { label: "Кроссдрессинг", value: "65" },
- { label: "Кроссовер", value: "10" },
- { label: "Кроули — Архангел Рафаэль", value: "2471" },
- { label: "Круизы", value: "2488" },
- { label: "Крушение «Титаника»", value: "2200" },
- { label: "Крылатые", value: "92" },
- { label: "Крэк", value: "1408" },
- { label: "Ксенофилия", value: "1711" },
- { label: "Ксенофобия", value: "589" },
- { label: "Куба", value: "773" },
- { label: "Кудэрэ", value: "1216" },
- { label: "Куклы", value: "1221" },
- { label: "Куколдинг", value: "524" },
- { label: "Культ Дракона", value: "2244" },
- { label: "Кумогакуре", value: "2474" },
- { label: "Куннилингус", value: "172" },
- { label: "Купальни", value: "964" },
- { label: "Курение", value: "202" },
- { label: "Курортный роман", value: "181" },
- { label: "Курьеры", value: "2735" },
- { label: "Лабиринты", value: "1981" },
- { label: "Лаборатории", value: "1115" },
- { label: "Лабораторные опыты", value: "146" },
- { label: "Лав-отели", value: "801" },
- { label: "Лавандовый брак", value: "1357" },
- { label: "Лакросс", value: "830" },
- { label: "Лапслок", value: "267" },
- { label: "Латентная гомосексуальность", value: "2339" },
- { label: "ЛГБТ-родители", value: "2723" },
- { label: "Лебединая верность", value: "537" },
- { label: "Левитация", value: "1281" },
- { label: "Легкая атлетика", value: "1797" },
- { label: "Лекарственная зависимость", value: "2632" },
- { label: "Леса", value: "703" },
- { label: "Летние ОтМетки", value: "2956" },
- { label: "Летние школы", value: "2803" },
- { label: "Лето девяносто девятого", value: "1990" },
- { label: "Лжебоги", value: "2869" },
- { label: "Лингвистический кинк", value: "2042" },
- { label: "Лирика", value: "2005" },
- { label: "Лихтенштейн", value: "1023" },
- { label: "Личность против системы", value: "1912" },
- { label: "Ложная беременность", value: "1428" },
- { label: "Ложные воспоминания", value: "376" },
- { label: "Ложные обвинения", value: "1204" },
- { label: "Локальный постапокалипсис", value: "2455" },
- { label: "Лолита (субкультура)", value: "1207" },
- { label: "Ломка", value: "1846" },
- { label: "Лошади", value: "1083" },
- { label: "Лугнасад", value: "2621" },
- { label: "Лудомания", value: "947" },
- { label: "Лучники", value: "1521" },
- { label: "Любить луну", value: "2901" },
- { label: "Любовная магия", value: "2317" },
- { label: "Любовный магнит", value: "1407" },
- { label: "Любовный многоугольник", value: "63" },
- { label: "Любовь с первого взгляда", value: "813" },
- { label: "Любовь/Ненависть", value: "1703" },
- { label: "Люди", value: "1538" },
- { label: "Людоеды", value: "1288" },
- { label: "Магазины", value: "1063" },
- { label: "Магическая связь", value: "2720" },
- { label: "Магические клятвы", value: "2245" },
- { label: "Магические лавки", value: "2629" },
- { label: "Магические учебные заведения", value: "1338" },
- { label: "Магический реализм", value: "9" },
- { label: "Магия", value: "1419" },
- { label: "Магия крови", value: "2857" },
- { label: "Маленькие города", value: "221" },
- { label: "Малфоигуд", value: "1890" },
- { label: "Мамми-кинк", value: "273" },
- { label: "Мандалорцы", value: "2870" },
- { label: "Манекены", value: "1509" },
- { label: "Манипуляции", value: "992" },
- { label: "Марафонный секс", value: "316" },
- { label: "Маргиналы", value: "394" },
- { label: "Марди Гра", value: "2407" },
- { label: "Маскарады / Балы", value: "443" },
- { label: "Массаж", value: "2218" },
- { label: "Мастурбация", value: "226" },
- { label: "Матриархат", value: "706" },
- { label: "Матчасть", value: "2328" },
- { label: "Махотокоро", value: "2943" },
- { label: "Маяки", value: "1356" },
- { label: "Мегаломания", value: "985" },
- { label: "Мегаполисы", value: "451" },
- { label: "Медицинский кинк", value: "748" },
- { label: "Медицинское использование наркотиков", value: "925" },
- { label: "Медовый месяц", value: "2235" },
- { label: "Медсестры / Медбратья", value: "2236" },
- { label: "Межбедренный секс", value: "931" },
- { label: "Междумирье", value: "2280" },
- { label: "Межэтнические отношения", value: "2121" },
- { label: "Мейлдом", value: "59" },
- { label: "Мексика", value: "768" },
- { label: "Меланхолия", value: "2108" },
- { label: "Мелодрама", value: "2881" },
- { label: "Менструация", value: "1570" },
- { label: "Ментальная тюрьма", value: "2294" },
- { label: "Месть", value: "907" },
- { label: "Металлисты", value: "1206" },
- { label: "Металлокинез", value: "1532" },
- { label: "Метафизические существа", value: "2097" },
- { label: "Метки", value: "1398" },
- { label: "Метросексуалы", value: "558" },
- { label: "Механофилия / Технофилия", value: "587" },
- { label: "Мечники", value: "2783" },
- { label: "Мечты", value: "993" },
- { label: "Миддлпанк", value: "2076" },
- { label: "Мизофилия", value: "1970" },
- { label: "Микро / Макро", value: "407" },
- { label: "Микрофикшен", value: "417" },
- { label: "Мимикрия", value: "2083" },
- { label: "Минет", value: "231" },
- { label: "Министерство Магии", value: "1917" },
- { label: "Минотавры", value: "2820" },
- { label: "Мир без гомофобии", value: "2660" },
- { label: "Мир Желаний (Однажды в сказке)", value: "2923" },
- { label: "Мир Института Войны", value: "2379" },
- { label: "Мироустройство", value: "989" },
- { label: "Мистерия", value: "2012" },
- { label: "Мистика", value: "1671" },
- { label: "Мистическая беременность", value: "1784" },
- { label: "Мистические защитники", value: "2162" },
- { label: "Мифы и мифология", value: "18" },
- { label: "Мнимая беременность", value: "1096" },
- { label: "Мнимая проза", value: "1098" },
- { label: "Мнимая свобода", value: "2708" },
- { label: "Многодетные семьи", value: "2785" },
- { label: "Множественное проникновение", value: "2059" },
- { label: "Множественные оргазмы", value: "317" },
- { label: "Множественные финалы", value: "312" },
- { label: "Могучие Рейнджеры: Дино Заряд", value: "2931" },
- { label: "Могучие Рейнджеры: Мегафорс", value: "2930" },
- { label: "Могучие Рейнджеры: Мистическая Сила", value: "2933" },
- { label: "Могучие Рейнджеры: Самураи", value: "2929" },
- { label: "Могучие Рейнджеры: Успеть на помощь", value: "2934" },
- { label: "Могучие Рейнджеры: Ярость Джунглей", value: "2932" },
- { label: "Модели", value: "399" },
- { label: "Модельеры", value: "598" },
- { label: "Модельный бизнес", value: "435" },
- { label: "Модификации тела", value: "890" },
- { label: "Молдова", value: "2967" },
- { label: "Молчание", value: "2465" },
- { label: "Монастыри", value: "352" },
- { label: "Монахи", value: "353" },
- { label: "Монолог", value: "2333" },
- { label: "Монстрофилия", value: "94" },
- { label: "Монстры", value: "529" },
- { label: "Моральные дилеммы", value: "959" },
- { label: "Морлед", value: "2255" },
- { label: "Моря / Океаны", value: "955" },
- { label: "Моряки", value: "406" },
- { label: "Мотоспорт", value: "1461" },
- { label: "Мужская беременность", value: "1660" },
- { label: "Мужская дружба", value: "2157" },
- { label: "Мужское грудное кормление", value: "297" },
- { label: "Музеи / Галереи", value: "795" },
- { label: "Музы", value: "2001" },
- { label: "Музыканты", value: "141" },
- { label: "Муковисцидоз", value: "2764" },
- { label: "Мультикроссовер", value: "2247" },
- { label: "Мумии", value: "579" },
- { label: "Мутанты", value: "740" },
- { label: "Мэри Сью (Марти Стью)", value: "1655" },
- { label: "Мятежи / Восстания", value: "584" },
- { label: "На грани жизни и смерти", value: "2545" },
- { label: "Наблюдатели", value: "1816" },
- { label: "Навязчивая опека", value: "954" },
- { label: "Навязчивые мысли", value: "2851" },
- { label: "Наги", value: "90" },
- { label: "Надежда", value: "2627" },
- { label: "Наемники", value: "512" },
- { label: "Наемные убийцы", value: "192" },
- { label: "Названные сиблинги", value: "2927" },
- { label: "Намеки на отношения", value: "1387" },
- { label: "Намеки на секс", value: "1382" },
- { label: "Напарники", value: "1291" },
- { label: "Наперегонки со временем", value: "2240" },
- { label: "НапиСанта", value: "2946" },
- { label: "Наполеоновские войны", value: "470" },
- { label: "Нарколепсия", value: "586" },
- { label: "Наркоторговля", value: "1116" },
- { label: "Нарушение этических норм", value: "968" },
- { label: "Нарциссизм", value: "546" },
- { label: "Насекомые", value: "2358" },
- { label: "Насилие", value: "1649" },
- { label: "Насилие над детьми", value: "726" },
- { label: "Наследие (Гарри Поттер)", value: "1935" },
- { label: "Наследство", value: "2172" },
- { label: "Наставничество", value: "935" },
- { label: "Настольные игры", value: "1513" },
- { label: "Настольные ролевые игры", value: "644" },
- { label: "Натуризм / Нудизм", value: "1810" },
- { label: "Наука", value: "2624" },
- { label: "Научная фантастика", value: "596" },
- { label: "Научно-исследовательские организации", value: "1503" },
- { label: "Научное фэнтези", value: "180" },
- { label: "Начало отношений", value: "1328" },
- { label: "Небинарные персонажи", value: "314" },
- { label: "Невезение", value: "2689" },
- { label: "Невзаимные предначертанные", value: "1484" },
- { label: "Невзаимные чувства", value: "105" },
- { label: "Невидимость", value: "359" },
- { label: "Невидимый мир", value: "2286" },
- { label: "Неграфичные описания", value: "2855" },
- { label: "Недоверие", value: "1842" },
- { label: "Недопонимания", value: "614" },
- { label: "Недостатки внешности", value: "923" },
- { label: "Нежелательная беременность", value: "715" },
- { label: "Нежелательные сверхспособности", value: "1335" },
- { label: "Нежелательные чувства", value: "2078" },
- { label: "Нежный секс", value: "280" },
- { label: "Незащищенный секс", value: "497" },
- { label: "Нездоровые механизмы преодоления", value: "1528" },
- { label: "Нездоровые отношения", value: "71" },
- { label: "Нездоровый образ жизни", value: "2148" },
- { label: "Нездоровый BDSM", value: "1062" },
- { label: "Неидеальный омегаверс", value: "2712" },
- { label: "Неизвестность", value: "2826" },
- { label: "Неизвестные родственники", value: "2752" },
- { label: "Неизлечимые заболевания", value: "1269" },
- { label: "Нейтрализация сверхспособностей", value: "2343" },
- { label: "Некромаги", value: "679" },
- { label: "Некрофилия", value: "1663" },
- { label: "Нелинейное повествование", value: "1699" },
- { label: "Неловкий секс", value: "2883" },
- { label: "Неловкость", value: "2459" },
- { label: "Нелюбящие родители", value: "2817" },
- { label: "Немертвые", value: "495" },
- { label: "Немота", value: "414" },
- { label: "Ненависть", value: "685" },
- { label: "Ненависть к себе", value: "1441" },
- { label: "Ненависть с первого взгляда", value: "814" },
- { label: "Ненадежный рассказчик", value: "322" },
- { label: "Ненасильственная смерть", value: "2531" },
- { label: "Необитаемые острова", value: "1196" },
- { label: "Необратимые превращения", value: "926" },
- { label: "Неозвученные чувства", value: "258" },
- { label: "Неприятие отношений", value: "2056" },
- { label: "Неравные отношения", value: "545" },
- { label: "Неравный брак", value: "409" },
- { label: "Неразрывная связь", value: "2569" },
- { label: "Нервный срыв", value: "1190" },
- { label: "Нерды", value: "481" },
- { label: "Нереалистичность", value: "2350" },
- { label: "Несексуальная близость", value: "2874" },
- { label: "Нестандартная поэзия", value: "1704" },
- { label: "Несчастливые отношения", value: "2080" },
- { label: "Несчастливый финал", value: "61" },
- { label: "Несчастные случаи", value: "499" },
- { label: "Нетаймори", value: "2323" },
- { label: "Неторопливое повествование", value: "1815" },
- { label: "Нетрадиционное использование Силы", value: "2520" },
- { label: "Неумышленное употребление наркотических веществ", value: "1192" },
- { label: "Неуставные отношения", value: "1396" },
- { label: "Нефилимы", value: "1086" },
- { label: "Неформальный брак", value: "1355" },
- { label: "Нецензурная лексика", value: "1653" },
- { label: "Нечеловеческая мораль", value: "2551" },
- { label: "Нечеловеческие виды", value: "995" },
- { label: "Нечистая сила", value: "1464" },
- { label: "Нидерланды", value: "1141" },
- { label: "Низкая самооценка", value: "2014" },
- { label: "Низкое фэнтези", value: "2007" },
- { label: "Нимфы", value: "1477" },
- { label: "Ниндзя", value: "471" },
- { label: "Новая жизнь", value: "2018" },
- { label: "Новая Зеландия", value: "1789" },
- { label: "Новеллизация", value: "262" },
- { label: "Новые отношения", value: "1827" },
- { label: "Новый год", value: "206" },
- { label: "Новый канон ЗВ", value: "1948" },
- { label: "Норны", value: "2206" },
- { label: "Ностальгия", value: "878" },
- { label: "Ночное видение", value: "2006" },
- { label: "Ночные клубы", value: "531" },
- { label: "Нуар", value: "137" },
- { label: "Няни", value: "570" },
- { label: "Обездвиживание", value: "116" },
- { label: "Обещания / Клятвы", value: "1823" },
- { label: "Обиды", value: "905" },
- { label: "Обман / Заблуждение", value: "650" },
- { label: "Обмен квами", value: "2572" },
- { label: "Обмен ролями", value: "1055" },
- { label: "Обмен телами", value: "49" },
- { label: "Обмороки", value: "2484" },
- { label: "Обнажение", value: "970" },
- { label: "Оборотни", value: "28" },
- { label: "Обоснованный ООС", value: "2549" },
- { label: "Образ тела", value: "2289" },
- { label: "Обратный омегаверс", value: "2435" },
- { label: "Обретенные семьи", value: "601" },
- { label: "Обреченные отношения", value: "653" },
- { label: "Обскуры", value: "2237" },
- { label: "Обсуждение кинков", value: "1072" },
- { label: "Обусловленная контекстом гомофобия", value: "2685" },
- { label: "Обусловленный контекстом расизм", value: "2686" },
- { label: "Обусловленный контекстом сексизм", value: "2687" },
- { label: "Общежития", value: "534" },
- { label: "Общественный транспорт", value: "615" },
- { label: "Объективация", value: "1837" },
- { label: "Объектофилия", value: "366" },
- { label: "Овипозиция", value: "269" },
- { label: "Огнестрельное оружие", value: "1189" },
- { label: "Ограбления", value: "2269" },
- { label: "Одержимость", value: "2248" },
- { label: "Одержимые", value: "496" },
- { label: "Один день", value: "2647" },
- { label: "Одиночество", value: "1015" },
- { label: "Одичавшие дети", value: "835" },
- { label: "Однолюбы", value: "2146" },
- { label: "Одноминутный канонический персонаж", value: "2184" },
- { label: "Однополый мир", value: "1462" },
- { label: "Ожидание", value: "2909" },
- { label: "ОЖП", value: "1657" },
- { label: "Окаменение", value: "2052" },
- { label: "Океания", value: "1058" },
- { label: "Оккультизм", value: "2374" },
- { label: "ОКР", value: "594" },
- { label: "Окулолинктус", value: "1470" },
- { label: "Олимпийские игры", value: "1127" },
- { label: "Олфактофилия", value: "1945" },
- { label: "Омегаверс", value: "1693" },
- { label: "Омегаверс: Альфа/Альфа", value: "2437" },
- { label: "Омегаверс: Альфа/Бета", value: "2741" },
- { label: "Омегаверс: Альфа/Бета/Омега", value: "2898" },
- { label: "Омегаверс: Альфа/Омега/Альфа", value: "2436" },
- { label: "Омегаверс: Бета/Бета", value: "2966" },
- { label: "Омегаверс: Больше трех полов", value: "2782" },
- { label: "Омегаверс: Омега/Альфа/Омега", value: "2544" },
- { label: "Омегаверс: Омега/Бета", value: "2965" },
- { label: "Омегаверс: Омега/Омега", value: "2564" },
- { label: "Омегаверс: Смена второго пола", value: "2776" },
- { label: "Омегаверс: f!Альфа/m!Омега", value: "2777" },
- { label: "ОМП", value: "1656" },
- { label: "Онейрокинез", value: "2067" },
- { label: "Онкологические заболевания", value: "540" },
- { label: "ООС", value: "1648" },
- { label: "Опасность", value: "2847" },
- { label: "Опера", value: "549" },
- { label: "Опричнина", value: "2252" },
- { label: "Оптимизм", value: "2420" },
- { label: "Оракулы / Провидцы", value: "2221" },
- { label: "Оральная фиксация", value: "2523" },
- { label: "Оргазм без стимуляции", value: "1000" },
- { label: "Организаторы свадеб", value: "858" },
- { label: "Орден Феникса", value: "1907" },
- { label: "Орки", value: "187" },
- { label: "Оружие массового поражения", value: "1193" },
- { label: "Освоение земель", value: "1824" },
- { label: "Оседлание", value: "1223" },
- { label: "Османская империя", value: "527" },
- { label: "Особняки / Резиденции", value: "500" },
- { label: "Осознанные сновидения", value: "530" },
- { label: "Остеокинез", value: "2845" },
- { label: "Острова", value: "799" },
- { label: "От антигероя к герою", value: "2173" },
- { label: "От антигероя к злодею", value: "2213" },
- { label: "От божественного существа к смертному", value: "2664" },
- { label: "От возлюбленных к врагам", value: "783" },
- { label: "От возлюбленных к друзьям", value: "782" },
- { label: "От врагов к возлюбленным", value: "346" },
- { label: "От врагов к друзьям", value: "347" },
- { label: "От врагов к друзьям к возлюбленным", value: "345" },
- { label: "От героя к антигерою", value: "2546" },
- { label: "От героя к злодею", value: "1027" },
- { label: "От героя к монстру", value: "2659" },
- { label: "От героя к обычному персонажу", value: "2584" },
- { label: "От друзей к возлюбленным", value: "344" },
- { label: "От друзей к врагам", value: "463" },
- { label: "От друзей к незнакомцам", value: "1870" },
- { label: "От злодея к антигерою", value: "2640" },
- { label: "От злодея к герою", value: "1026" },
- { label: "От напарников к друзьям к возлюбленным", value: "2460" },
- { label: "От нездоровых отношений к здоровым", value: "2301" },
- { label: "От незнакомцев к возлюбленным", value: "372" },
- { label: "От простонародья к аристократу", value: "2816" },
- { label: "От сексуальных партнеров к возлюбленным", value: "2069" },
- { label: "От смертного к божественному существу", value: "2665" },
- { label: "От супругов к возлюбленным", value: "2359" },
- { label: "Ответвление от канона", value: "2336" },
- { label: "Ответственность", value: "2468" },
- { label: "Отдаю на вдохновение", value: "2288" },
- { label: "Отечественная война 1812 года", value: "1162" },
- { label: "Отказ от чувств", value: "2227" },
- { label: "Отклонения от канона", value: "5" },
- { label: "Открытый финал", value: "185" },
- { label: "ОтМетки", value: "2945" },
- { label: "Отношения втайне", value: "285" },
- { label: "Отношения на расстоянии", value: "37" },
- { label: "Отношения на спор", value: "383" },
- { label: "Отношения наполовину", value: "1573" },
- { label: "Отпуск", value: "1828" },
- { label: "Отрицание", value: "1868" },
- { label: "Отрицание чувств", value: "648" },
- { label: "Отрицательный протагонист", value: "1442" },
- { label: "Отсутствие души", value: "1897" },
- { label: "Отшельники", value: "543" },
- { label: "Офисы", value: "74" },
- { label: "Официанты / Официантки", value: "2560" },
- { label: "Охота", value: "825" },
- { label: "Охота на разумных существ", value: "2784" },
- { label: "Охотники", value: "2036" },
- { label: "Охотники за головами", value: "2103" },
- { label: "Охотники на нечисть", value: "46" },
- { label: "Охранники", value: "1173" },
- { label: "Ошибки", value: "2554" },
- { label: "Ошибочная идентификация", value: "2490" },
- { label: "Паладины", value: "1194" },
- { label: "Пан-персонажи", value: "302" },
- { label: "Пандемия COVID-19", value: "2724" },
- { label: "Панические атаки", value: "751" },
- { label: "Паническое расстройство", value: "733" },
- { label: "Панки", value: "625" },
- { label: "Паразиты", value: "1877" },
- { label: "Паралич", value: "1941" },
- { label: "Параллельные миры", value: "378" },
- { label: "Паранойя", value: "1253" },
- { label: "Пари", value: "778" },
- { label: "Парки / Зоны отдыха", value: "1005" },
- { label: "Парки аттракционов / Ярмарки", value: "793" },
- { label: "Паркур", value: "553" },
- { label: "Пародия", value: "1676" },
- { label: "Партизаны", value: "850" },
- { label: "Парфюмеры", value: "1384" },
- { label: "Пасха", value: "562" },
- { label: "Патологическое бесстрашие", value: "1498" },
- { label: "Патологическое накопительство", value: "2691" },
- { label: "Патологоанатомы", value: "502" },
- { label: "Патриархат", value: "705" },
- { label: "Патриотические темы и мотивы", value: "2231" },
- { label: "Патронусы", value: "2390" },
- { label: "Патрули", value: "1819" },
- { label: "Пафос", value: "2589" },
- { label: "Пацифисты", value: "1939" },
- { label: "Пегасы", value: "1047" },
- { label: "Пеггинг", value: "159" },
- { label: "Пейзажная лирика", value: "2330" },
- { label: "Пекарни", value: "78" },
- { label: "Первая мировая", value: "487" },
- { label: "Первая чеченская война", value: "2428" },
- { label: "Первобытные времена", value: "465" },
- { label: "Первое апреля", value: "2315" },
- { label: "Первопроходцы", value: "351" },
- { label: "Первый контакт", value: "2093" },
- { label: "Первый поцелуй", value: "2790" },
- { label: "Первый раз", value: "1292" },
- { label: "Передача магических способностей", value: "2497" },
- { label: "Переезд", value: "658" },
- { label: "Перезапуск мира", value: "2710" },
- { label: "Перемирие", value: "1331" },
- { label: "Переписки и чаты (стилизация)", value: "38" },
- { label: "Перерыв в отношениях", value: "519" },
- { label: "Переселение душ", value: "1237" },
- { label: "Перестрелки", value: "2268" },
- { label: "Переходный возраст", value: "1297" },
- { label: "Период Эдо", value: "1140" },
- { label: "Персекуторный бред", value: "2136" },
- { label: "Персонажи-геи", value: "2141" },
- { label: "Персонажи-лесбиянки", value: "2142" },
- { label: "Персонификация", value: "994" },
- { label: "Персонификация смерти", value: "1046" },
- { label: "Перу", value: "2017" },
- { label: "Перфекционизм", value: "2730" },
- { label: "Пессимизм", value: "2709" },
- { label: "Пет-плей", value: "391" },
- { label: "Петербург: бикейм #Чимин Сергеевич", value: "1859" },
- { label: "Петтинг", value: "301" },
- { label: "Пещеры", value: "655" },
- { label: "Пижамные вечеринки", value: "1340" },
- { label: "Пикацизм", value: "1227" },
- { label: "Пикники", value: "1165" },
- { label: "Пионеры", value: "668" },
- { label: "Пираты", value: "72" },
- { label: "Пирокинез", value: "1180" },
- { label: "Пиромания", value: "899" },
- { label: "Пирсинг", value: "507" },
- { label: "Писатели", value: "196" },
- { label: "Письма", value: "2298" },
- { label: "Письма (стилизация)", value: "266" },
- { label: "Пиццерии / Дайнеры", value: "593" },
- { label: "Плавание", value: "1135" },
- { label: "Плантокинез", value: "2029" },
- { label: "Пластические операции", value: "1847" },
- { label: "Платонические отношения", value: "385" },
- { label: "Племена", value: "1336" },
- { label: "Плен", value: "290" },
- { label: "Плененные путешествием", value: "2615" },
- { label: "Плохая компания", value: "1502" },
- { label: "Плохие друзья", value: "2445" },
- { label: "Плохой хороший финал", value: "1265" },
- { label: "Плюшефилия", value: "520" },
- { label: "Пляжи", value: "766" },
- { label: "По разные стороны", value: "897" },
- { label: "Побег", value: "661" },
- { label: "Побег из дома", value: "2309" },
- { label: "Победа Волдеморта", value: "1887" },
- { label: "Победа Гриндевальда", value: "2398" },
- { label: "Повара", value: "2853" },
- { label: "Повелитель смерти", value: "1909" },
- { label: "Повествование в будущем времени", value: "2633" },
- { label: "Повествование в настоящем времени", value: "1826" },
- { label: "Повествование во втором лице", value: "166" },
- { label: "Повествование от нескольких лиц", value: "1157" },
- { label: "Повествование от первого лица", value: "1681" },
- { label: "Повседневность", value: "1677" },
- { label: "Повстанцы", value: "659" },
- { label: "Повторение судьбы", value: "1997" },
- { label: "Поглощение способностей", value: "2605" },
- { label: "Погони / Преследования", value: "1996" },
- { label: "Пограничный синдром", value: "710" },
- { label: "Погребение заживо", value: "1279" },
- { label: "Под одной крышей", value: "462" },
- { label: "Под старину (стилизация)", value: "2486" },
- { label: "Подарки", value: "1109" },
- { label: "Подвешивание", value: "914" },
- { label: "Подводный мир", value: "901" },
- { label: "Подземелья", value: "2314" },
- { label: "Подземный мир", value: "1453" },
- { label: "Подлость", value: "2625" },
- { label: "Подменыши", value: "2250" },
- { label: "Подпольные бои", value: "1389" },
- { label: "Подразумеваемая смерть персонажа", value: "2204" },
- { label: "Подростки", value: "218" },
- { label: "Подростковая беременность", value: "986" },
- { label: "Подростковая влюбленность", value: "581" },
- { label: "Подсознание", value: "2273" },
- { label: "Поедание разумных существ", value: "1795" },
- { label: "Пожарные", value: "2557" },
- { label: "Пожилые персонажи", value: "852" },
- { label: "Поза 69", value: "699" },
- { label: "Поиск работы", value: "2646" },
- { label: "Поиск родителей", value: "2033" },
- { label: "Поклонение телу", value: "712" },
- { label: "Покровительство", value: "2223" },
- { label: "Покушение на жизнь", value: "1057" },
- { label: "Покушение на свободу", value: "2655" },
- { label: "Полиамория", value: "1705" },
- { label: "Полиандрия", value: "761" },
- { label: "Полигиния", value: "760" },
- { label: "Политика", value: "1835" },
- { label: "Политики", value: "711" },
- { label: "Политические интриги", value: "183" },
- { label: "Полицейские", value: "14" },
- { label: "Половой диморфизм", value: "1780" },
- { label: "Полубоги", value: "437" },
- { label: "Полудемоны", value: "2872" },
- { label: "Полудраконы", value: "2859" },
- { label: "Полукровки", value: "368" },
- { label: "Польша", value: "777" },
- { label: "Полярные станции", value: "1493" },
- { label: "Помощь врагу", value: "1325" },
- { label: "Попаданцы: В реальный мир", value: "1499" },
- { label: "Попаданцы: В своем теле", value: "1412" },
- { label: "Попаданцы: В чужом теле", value: "1413" },
- { label: "Попаданцы: Из одного фандома в другой", value: "2699" },
- { label: "Попаданцы: Из фандома в ориджинал", value: "2193" },
- { label: "Попаданцы: По обмену", value: "2196" },
- { label: "Попаданчество", value: "1695" },
- { label: "Популярность", value: "2581" },
- { label: "Попытка изнасилования", value: "1440" },
- { label: "Порноактеры", value: "289" },
- { label: "Португалия", value: "1749" },
- { label: "Порты", value: "1028" },
- { label: "Поселки", value: "1298" },
- { label: "После таймскипа (Haikyuu!!)", value: "2906" },
- { label: "После таймскипа (Shingeki no Kyojin)", value: "2903" },
- { label: "Послевоенное время", value: "1080" },
- { label: "Последний раз", value: "2645" },
- { label: "Последний рубеж", value: "1178" },
- { label: "Последний шанс", value: "1209" },
- { label: "Последствия", value: "2491" },
- { label: "Последствия болезни", value: "2612" },
- { label: "Послеродовая депрессия", value: "988" },
- { label: "Посмертная любовь", value: "2670" },
- { label: "Посмертный персонаж", value: "2653" },
- { label: "Пост-Пацифист", value: "2408" },
- { label: "Пост-Рейхенбах", value: "1903" },
- { label: "Пост-третий сезон (Шерлок)", value: "1977" },
- { label: "Постапокалиптика", value: "1697" },
- { label: "ПостВБ", value: "2386" },
- { label: "Постканон", value: "6" },
- { label: "ПостРагнарек", value: "2537" },
- { label: "ПостХог", value: "1883" },
- { label: "ПостЭндгейм", value: "2179" },
- { label: "Потеря девственности", value: "1234" },
- { label: "Потеря конечностей", value: "1289" },
- { label: "Потеря магических способностей", value: "1430" },
- { label: "Потеря памяти", value: "36" },
- { label: "Потеря сверхспособностей", value: "1051" },
- { label: "Поттергад", value: "2417" },
- { label: "Похищение", value: "224" },
- { label: "Похороны", value: "786" },
- { label: "Почтовые работники", value: "1821" },
- { label: "Пошлый юмор", value: "1362" },
- { label: "Поэма", value: "1938" },
- { label: "Поэты", value: "357" },
- { label: "Пояс верности", value: "1779" },
- { label: "Правда или действие", value: "1982" },
- { label: "Практопия", value: "2249" },
- { label: "Пре-гет", value: "209" },
- { label: "Пре-Рош", value: "2047" },
- { label: "Пре-слэш", value: "207" },
- { label: "Пре-фемслэш", value: "208" },
- { label: "Предательство", value: "361" },
- { label: "Предвидение", value: "1876" },
- { label: "Предложение руки и сердца", value: "1081" },
- { label: "Предопределенность", value: "411" },
- { label: "Предрассудки", value: "2046" },
- { label: "Предсмертные сообщения", value: "2174" },
- { label: "Преканон", value: "7" },
- { label: "ПреКербер", value: "2726" },
- { label: "Прекрасная эпоха", value: "1809" },
- { label: "Прелюдия", value: "2395" },
- { label: "Пренебрежение гигиеной", value: "2921" },
- { label: "Пренебрежение жизнью", value: "2216" },
- { label: "Преодоление комплексов", value: "588" },
- { label: "Преподаватели", value: "403" },
- { label: "Преподаватель/Обучающийся", value: "2507" },
- { label: "Преступники", value: "1446" },
- { label: "Преступный мир", value: "12" },
- { label: "Прибрежные города", value: "984" },
- { label: "Приватный танец", value: "2786" },
- { label: "Привязанность", value: "2372" },
- { label: "Пригород", value: "452" },
- { label: "Приемные семьи", value: "844" },
- { label: "Признания в любви", value: "1049" },
- { label: "Призраки", value: "26" },
- { label: "Приключения", value: "21" },
- { label: "Приметы / Суеверия", value: "612" },
- { label: "Примирение", value: "660" },
- { label: "Принудительная феминизация", value: "656" },
- { label: "Принудительное лечение", value: "971" },
- { label: "Принудительные отношения", value: "2302" },
- { label: "Принудительный брак", value: "307" },
- { label: "Принудительный инцест", value: "2942" },
- { label: "Принуждение", value: "1323" },
- { label: "Принятие себя", value: "2754" },
- { label: "Прислуга", value: "804" },
- { label: "Прист-кинк", value: "342" },
- { label: "Приступы агрессии", value: "2788" },
- { label: "Притча", value: "1088" },
- { label: "Приюты для животных", value: "2345" },
- { label: "ПРЛ", value: "1092" },
- { label: "Проблемы доверия", value: "2208" },
- { label: "Проблемы с законом", value: "1007" },
- { label: "Проводники душ", value: "2348" },
- { label: "Программисты", value: "574" },
- { label: "Прогрессорство", value: "449" },
- { label: "Прогулки", value: "2462" },
- { label: "Продажа души", value: "887" },
- { label: "Прозопагнозия", value: "2013" },
- { label: "Производственный роман", value: "2119" },
- { label: "Проклятия", value: "875" },
- { label: "Пролапс", value: "2926" },
- { label: "Промискуитет", value: "1817" },
- { label: "Промышленные предприятия", value: "1456" },
- { label: "Пропавшие без вести", value: "2073" },
- { label: "Пропущенная сцена", value: "1702" },
- { label: "Пророчества", value: "834" },
- { label: "Просмотр порно", value: "2341" },
- { label: "Проституция", value: "178" },
- { label: "Протезы", value: "1581" },
- { label: "Противоположности", value: "948" },
- { label: "Противоречивые чувства", value: "2528" },
- { label: "Прошлое", value: "983" },
- { label: "Прощение", value: "1545" },
- { label: "Псевдо-инцест", value: "336" },
- { label: "Псевдо-мистика", value: "2159" },
- { label: "Псевдоисторический сеттинг", value: "1479" },
- { label: "Псионика", value: "2023" },
- { label: "Психиатрические больницы", value: "135" },
- { label: "Психические расстройства", value: "69" },
- { label: "Психоз", value: "1339" },
- { label: "Психологи / Психоаналитики", value: "611" },
- { label: "Психологическая война", value: "2595" },
- { label: "Психологические пытки", value: "2825" },
- { label: "Психологические травмы", value: "40" },
- { label: "Психологический мазохизм", value: "2212" },
- { label: "Психологический ужас", value: "1261" },
- { label: "Психологическое насилие", value: "836" },
- { label: "Психология", value: "1674" },
- { label: "Психопатия", value: "869" },
- { label: "Психосоматические расстройства", value: "1834" },
- { label: "Психотерапия", value: "958" },
- { label: "ПТСР", value: "425" },
- { label: "Публичное обнажение", value: "319" },
- { label: "Пурпурная проза", value: "599" },
- { label: "Пустоши", value: "1114" },
- { label: "Пустыни", value: "692" },
- { label: "Путешественники-исследователи", value: "888" },
- { label: "Путешествия", value: "894" },
- { label: "Пытки", value: "210" },
- { label: "Пьеса", value: "434" },
- { label: "Рабочие", value: "1771" },
- { label: "Рабство", value: "51" },
- { label: "Равнодушие", value: "2516" },
- { label: "Равные отношения", value: "2728" },
- { label: "Радикальная медицина", value: "731" },
- { label: "Радио", value: "974" },
- { label: "Разбойники", value: "473" },
- { label: "Развитие отношений", value: "1404" },
- { label: "Развод", value: "200" },
- { label: "Разговоры", value: "1401" },
- { label: "Раздвоение личности", value: "287" },
- { label: "Раздельное обучение", value: "1959" },
- { label: "Разлука / Прощания", value: "1104" },
- { label: "Разница в возрасте", value: "2" },
- { label: "Разница культур", value: "1079" },
- { label: "Разновозрастная дружба", value: "2402" },
- { label: "Разнополая дружба", value: "806" },
- { label: "Разоблачения", value: "2684" },
- { label: "Разочарования", value: "646" },
- { label: "Разрушение стереотипов", value: "2805" },
- { label: "Разрушение четвертой стены", value: "381" },
- { label: "Разрыв связи", value: "2582" },
- { label: "Разум роя", value: "1459" },
- { label: "Разумное оружие", value: "2675" },
- { label: "Разумные животные", value: "895" },
- { label: "Разумные растения", value: "1037" },
- { label: "Раптофилия", value: "729" },
- { label: "Расизм", value: "433" },
- { label: "Раскрытие личностей", value: "2120" },
- { label: "Раскрытие магии", value: "1878" },
- { label: "Расплата", value: "2464" },
- { label: "Рассказ в рассказе", value: "2077" },
- { label: "Расставание", value: "506" },
- { label: "Расстройства аутистического спектра", value: "541" },
- { label: "Расстройства цветового восприятия", value: "1330" },
- { label: "Расстройства шизофренического спектра", value: "912" },
- { label: "Растаманы", value: "857" },
- { label: "Расширенная Вселенная ЗВ", value: "1950" },
- { label: "Реабилитационные центры", value: "1467" },
- { label: "Реактивное расстройство привязанности", value: "2576" },
- { label: "Реакции (стилизация)", value: "1283" },
- { label: "Реализм", value: "1201" },
- { label: "Реалити-шоу", value: "2312" },
- { label: "Ревность", value: "544" },
- { label: "Революции", value: "585" },
- { label: "Регенерация", value: "1530" },
- { label: "Регресс", value: "450" },
- { label: "Регрессия возраста", value: "102" },
- { label: "Редкие заболевания", value: "1856" },
- { label: "Реинкарнация", value: "101" },
- { label: "Рейтинг за лексику", value: "276" },
- { label: "Рейтинг за насилие и/или жестокость", value: "277" },
- { label: "Рейтинг за секс", value: "278" },
- { label: "Религиозная нетерпимость", value: "2451" },
- { label: "Религиозные войны", value: "2911" },
- { label: "Религиозные темы и мотивы", value: "198" },
- { label: "Религиозный фанатизм", value: "2548" },
- { label: "Ренессанс", value: "239" },
- { label: "Репетиторы", value: "2413" },
- { label: "Репетиции", value: "2241" },
- { label: "Репродуктивное насилие", value: "2310" },
- { label: "Реставраторы", value: "2239" },
- { label: "Рестораны", value: "412" },
- { label: "Ретеллинг", value: "52" },
- { label: "Ретрофутуризм", value: "727" },
- { label: "Реформация", value: "2199" },
- { label: "Речь Посполитая", value: "1529" },
- { label: "Риветхеды", value: "2904" },
- { label: "Римминг", value: "170" },
- { label: "Риск", value: "2467" },
- { label: "Рискованная беременность", value: "998" },
- { label: "Ритуалы", value: "749" },
- { label: "Ритуальные услуги", value: "2362" },
- { label: "Роботы", value: "513" },
- { label: "Родео", value: "1314" },
- { label: "Родители-одиночки", value: "325" },
- { label: "Родительские чувства", value: "2308" },
- { label: "Родомагия", value: "1899" },
- { label: "Роды", value: "991" },
- { label: "Рождество", value: "211" },
- { label: "Розыгрыши", value: "1807" },
- { label: "Рокеры", value: "861" },
- { label: "Роковая женщина / Роковой мужчина", value: "982" },
- { label: "Роковое усилие", value: "2604" },
- { label: "Роллер-дерби", value: "1014" },
- { label: "Романтизация", value: "1898" },
- { label: "Романтика", value: "1664" },
- { label: "Романтическая дружба", value: "2307" },
- { label: "Ромком", value: "2768" },
- { label: "Российская империя", value: "475" },
- { label: "Россия", value: "701" },
- { label: "РПП", value: "286" },
- { label: "Румыния", value: "862" },
- { label: "Русалки", value: "32" },
- { label: "Русальная неделя", value: "1067" },
- { label: "Русреал", value: "53" },
- { label: "Руферы", value: "578" },
- { label: "Рыбалка", value: "855" },
- { label: "Рыцари", value: "426" },
- { label: "Рыцарские турниры", value: "2759" },
- { label: "С чистого листа", value: "987" },
- { label: "Савойя", value: "1036" },
- { label: "Садизм / Мазохизм", value: "461" },
- { label: "Садовники", value: "1348" },
- { label: "Сайз-кинк", value: "100" },
- { label: "Самобытные культуры", value: "663" },
- { label: "Самовнушение", value: "2169" },
- { label: "Самовставка", value: "1689" },
- { label: "Самозванцы", value: "1811" },
- { label: "Самоистязание", value: "1386" },
- { label: "Самоопределение / Самопознание", value: "1278" },
- { label: "Самопожертвование", value: "750" },
- { label: "Самосуд", value: "1402" },
- { label: "Самоуничижение", value: "2667" },
- { label: "Самураи", value: "472" },
- { label: "Санатории", value: "223" },
- { label: "Сандалпанк", value: "1986" },
- { label: "Сарказм", value: "2225" },
- { label: "Сатира", value: "1944" },
- { label: "Сатиры", value: "264" },
- { label: "Сахарный диабет", value: "2609" },
- { label: "Сборник драбблов", value: "39" },
- { label: "Сборник лимериков", value: "1989" },
- { label: "Сборник пирожков", value: "743" },
- { label: "Сборник стихотворений", value: "600" },
- { label: "Сборник японской поэзии", value: "1351" },
- { label: "Свадьба", value: "184" },
- { label: "Сверхразумы", value: "966" },
- { label: "Сверхскорость", value: "1902" },
- { label: "Сверхспособности", value: "597" },
- { label: "Светлые властелины", value: "2596" },
- { label: "Светские мероприятия", value: "973" },
- { label: "Свидание вслепую", value: "741" },
- { label: "Свидания", value: "1235" },
- { label: "Свидетели", value: "1242" },
- { label: "Свингерство", value: "203" },
- { label: "Свобода", value: "2166" },
- { label: "Свободные отношения", value: "255" },
- { label: "Сводничество", value: "568" },
- { label: "Сводные родственники", value: "1445" },
- { label: "Святые", value: "393" },
- { label: "Сгенерировано ИИ", value: "3014" },
- { label: "СДВГ", value: "539" },
- { label: "Севвитус", value: "1871" },
- { label: "Северная Корея", value: "2767" },
- { label: "Северус Снейп жив", value: "2406" },
- { label: "Сегрегация", value: "2158" },
- { label: "Секретари", value: "1170" },
- { label: "Секретные миссии", value: "1829" },
- { label: "Секс без обязательств", value: "387" },
- { label: "Секс в воде", value: "718" },
- { label: "Секс в нетрезвом виде", value: "1110" },
- { label: "Секс в одежде", value: "1013" },
- { label: "Секс в публичных местах", value: "123" },
- { label: "Секс в транспорте", value: "124" },
- { label: "Секс в церкви", value: "2968" },
- { label: "Секс во время беременности", value: "279" },
- { label: "Секс во время болезни", value: "1365" },
- { label: "Секс во время менструации", value: "153" },
- { label: "Секс на камеру", value: "1101" },
- { label: "Секс на природе", value: "1256" },
- { label: "Секс перед зеркалом", value: "1255" },
- { label: "Секс по расчету", value: "1212" },
- { label: "Секс по телефону", value: "133" },
- { label: "Секс при посторонних", value: "2514" },
- { label: "Секс с воображаемыми партнерами", value: "2276" },
- { label: "Секс с использованием магии", value: "1563" },
- { label: "Секс с использованием одурманивающих веществ", value: "2635" },
- { label: "Секс с использованием посторонних предметов", value: "1661" },
- { label: "Секс с использованием сверхспособностей", value: "2610" },
- { label: "Секс со смертельным исходом", value: "1171" },
- { label: "Секс-игрушки", value: "176" },
- { label: "Секс-индустрия", value: "447" },
- { label: "Секс-клубы / Секс-вечеринки", value: "936" },
- { label: "Секс-куклы", value: "1202" },
- { label: "Секс-магия", value: "1131" },
- { label: "Секс-машины", value: "1112" },
- { label: "Секс-шопы", value: "739" },
- { label: "Сексизм", value: "464" },
- { label: "Сексомния", value: "2024" },
- { label: "Секстинг", value: "2215" },
- { label: "Сексуальная неопытность", value: "1717" },
- { label: "Сексуальное насилие", value: "2495" },
- { label: "Сексуальное обучение", value: "967" },
- { label: "Сексуальное рабство", value: "1353" },
- { label: "Сексуальные фобии", value: "1537" },
- { label: "Селфхарм", value: "76" },
- { label: "Селфцест", value: "1708" },
- { label: "Семейная сага", value: "920" },
- { label: "Семейные тайны", value: "779" },
- { label: "Семейный бизнес", value: "2338" },
- { label: "Семьи", value: "220" },
- { label: "Сенсорная депривация", value: "282" },
- { label: "Сенсорная перегрузка", value: "2351" },
- { label: "Сентиментальность", value: "2567" },
- { label: "Серая мораль", value: "839" },
- { label: "Серая мышь", value: "1250" },
- { label: "Серая реальность", value: "2278" },
- { label: "Серийные насильники", value: "1942" },
- { label: "Серийные убийцы", value: "193" },
- { label: "Серфинг", value: "764" },
- { label: "Сиамские близнецы", value: "1252" },
- { label: "Сибари", value: "131" },
- { label: "Сиблинги", value: "617" },
- { label: "Сидение на лице", value: "713" },
- { label: "Силкпанк", value: "1813" },
- { label: "Симбиоз", value: "849" },
- { label: "Символизм", value: "538" },
- { label: "Симфорофилия", value: "492" },
- { label: "Синдром восьмиклассника", value: "2032" },
- { label: "Синдром выжившего", value: "1100" },
- { label: "Синдром Дауна", value: "2106" },
- { label: "Синдром Котара", value: "2765" },
- { label: "Синдром Питера Пэна", value: "687" },
- { label: "Синдром Туретта", value: "946" },
- { label: "Синестезия", value: "960" },
- { label: "Сирены", value: "1830" },
- { label: "Сириус Блэк жив", value: "2617" },
- { label: "Сироты", value: "689" },
- { label: "Ситком", value: "2553" },
- { label: "Сказка", value: "288" },
- { label: "Скайпанк", value: "976" },
- { label: "Скандинавия", value: "781" },
- { label: "Скандинавская мифология", value: "2304" },
- { label: "Сквиртинг", value: "950" },
- { label: "Сквозное видение", value: "1280" },
- { label: "Скейтбординг", value: "1395" },
- { label: "Скелеты", value: "1766" },
- { label: "Скинхэды", value: "1757" },
- { label: "Скрытая беременность", value: "2580" },
- { label: "Скрытность", value: "2577" },
- { label: "Скрытые способности", value: "2579" },
- { label: "Скрытый Этаж", value: "2763" },
- { label: "Скульпторы", value: "2976" },
- { label: "Слатшейминг", value: "2910" },
- { label: "Следующее поколение", value: "698" },
- { label: "Слежка", value: "2102" },
- { label: "Слепота", value: "413" },
- { label: "Слияние", value: "2324" },
- { label: "Словакия", value: "2938" },
- { label: "Словения", value: "1788" },
- { label: "Сложные отношения", value: "326" },
- { label: "Слом личности", value: "623" },
- { label: "Слоуберн", value: "19" },
- { label: "Служебные животные", value: "1506" },
- { label: "Служебные отношения", value: "1347" },
- { label: "Служебный роман", value: "75" },
- { label: "Слухи / Сплетни", value: "2809" },
- { label: "Случайные убийства", value: "2673" },
- { label: "Случайный брак", value: "304" },
- { label: "Случайный поцелуй", value: "2852" },
- { label: "Случайный секс", value: "1275" },
- { label: "Смена имени", value: "2094" },
- { label: "Смена мировоззрения", value: "2865" },
- { label: "Смена сущности", value: "1707" },
- { label: "Смертельные заболевания", value: "1132" },
- { label: "Смерть антагониста", value: "2650" },
- { label: "Смерть всех персонажей", value: "2611" },
- { label: "Смерть второстепенных персонажей", value: "1713" },
- { label: "Смерть животных", value: "2210" },
- { label: "Смерть основных персонажей", value: "1647" },
- { label: "СМИ", value: "2656" },
- { label: "Смирение", value: "2272" },
- { label: "Смотрины", value: "1495" },
- { label: "Смутное время", value: "2002" },
- { label: "Снайперы", value: "1762" },
- { label: "Сновидения", value: "490" },
- { label: "Сноубординг", value: "2180" },
- { label: "Соблазнение / Ухаживания", value: "616" },
- { label: "Собственничество", value: "908" },
- { label: "Советпанк", value: "397" },
- { label: "Советский Союз", value: "468" },
- { label: "Совместная кровать", value: "1229" },
- { label: "Совместное купание", value: "1301" },
- { label: "Современное искусство", value: "1087" },
- { label: "Современность", value: "80" },
- { label: "Согласование с каноном", value: "1388" },
- { label: "Сожаления", value: "550" },
- { label: "Создание общества", value: "2643" },
- { label: "Созидание", value: "2590" },
- { label: "Сокровища", value: "893" },
- { label: "Сокрытие убийства", value: "2311" },
- { label: "Солянка из Сансов", value: "2515" },
- { label: "Сомелье / Бармены", value: "865" },
- { label: "Сомнамбулизм", value: "1394" },
- { label: "Сомнения", value: "1544" },
- { label: "Сомнофилия", value: "95" },
- { label: "Сонный паралич", value: "1203" },
- { label: "Соперничество", value: "671" },
- { label: "Сорванная свадьба", value: "2044" },
- { label: "Сострадание", value: "885" },
- { label: "Состязания", value: "910" },
- { label: "Состязания с участием животных", value: "1154" },
- { label: "Сотриголова — отец Хитоши Шинсо", value: "2877" },
- { label: "Соулмейты", value: "1696" },
- { label: "Соулмейты: Действия", value: "2575" },
- { label: "Соулмейты: Изменение восприятия", value: "1400" },
- { label: "Соулмейты: Контакт через кожу", value: "2608" },
- { label: "Соулмейты: Ментальная связь", value: "2841" },
- { label: "Соулмейты: Общая боль", value: "2583" },
- { label: "Соулмейты: Общие эмоции", value: "2637" },
- { label: "Соулмейты: Опознавательные фразы", value: "1399" },
- { label: "Соулмейты: Предметы", value: "2563" },
- { label: "Соулмейты: Предпочтения", value: "2521" },
- { label: "Соулмейты: Разноцветные глаза", value: "2461" },
- { label: "Соулмейты: Ранения", value: "2134" },
- { label: "Соулмейты: Сны", value: "2414" },
- { label: "Соулмейты: Тактильный контакт", value: "2190" },
- { label: "Соулмейты: Татуировки", value: "2711" },
- { label: "Соулмейты: Физические проявления", value: "2864" },
- { label: "Социальная фантастика", value: "591" },
- { label: "Социальные темы и мотивы", value: "1017" },
- { label: "Социальные эксперименты", value: "2756" },
- { label: "Социальный паразитизм", value: "2444" },
- { label: "Социофобия", value: "826" },
- { label: "Спарринги", value: "1575" },
- { label: "Спасатели", value: "392" },
- { label: "Спасение жизни", value: "1299" },
- { label: "Спасение мира", value: "812" },
- { label: "Спектрофилия", value: "2634" },
- { label: "Спецагенты", value: "401" },
- { label: "Спиритизм", value: "1478" },
- { label: "Сплошинг", value: "424" },
- { label: "Спонтанный секс", value: "2918" },
- { label: "Спорт", value: "15" },
- { label: "Спортзалы", value: "1359" },
- { label: "Сражения", value: "2868" },
- { label: "Средневековье", value: "238" },
- { label: "Ссоры / Конфликты", value: "645" },
- { label: "Стаи", value: "2884" },
- { label: "Сталкеры / Диггеры (субкультура)", value: "1029" },
- { label: "Сталкинг", value: "605" },
- { label: "Становление героя", value: "680" },
- { label: "Стёб", value: "1690" },
- { label: "Стереотипы", value: "809" },
- { label: "Стимпанк", value: "25" },
- { label: "Стимуляция руками", value: "225" },
- { label: "Стихи", value: "1692" },
- { label: "Стихийные бедствия", value: "1352" },
- { label: "Стихотворные вставки", value: "2404" },
- { label: "СтихоТворцы", value: "3015" },
- { label: "Стокгольмский синдром / Лимский синдром", value: "1217" },
- { label: "Столетняя война", value: "2243" },
- { label: "Сторонний рассказчик", value: "1383" },
- { label: "Стоунпанк", value: "1987" },
- { label: "Страдания", value: "2009" },
- { label: "Странногеддон", value: "1882" },
- { label: "Страны Балтии", value: "1031" },
- { label: "Страпоны", value: "380" },
- { label: "Страсть", value: "1955" },
- { label: "Страх перед родителями", value: "2332" },
- { label: "Стрельба из лука", value: "1791" },
- { label: "Стримеры / Ютуберы", value: "1473" },
- { label: "Стрип-клубы", value: "79" },
- { label: "Стрит-арт", value: "1012" },
- { label: "Строители", value: "1774" },
- { label: "Студенты", value: "274" },
- { label: "Студенты по обмену", value: "859" },
- { label: "Студенческие городки", value: "753" },
- { label: "Субкультуры", value: "1061" },
- { label: "Субординация", value: "1099" },
- { label: "Суд", value: "827" },
- { label: "Суккубы / Инкубы", value: "334" },
- { label: "Сумасшествие", value: "1239" },
- { label: "Сунагакуре", value: "2476" },
- { label: "Супергерои", value: "67" },
- { label: "Суперзлодеи", value: "1205" },
- { label: "Супермаркеты", value: "843" },
- { label: "Суррогатная беременность", value: "1427" },
- { label: "Сухой закон", value: "2100" },
- { label: "Сухой оргазм", value: "2818" },
- { label: "Сфера ИТ", value: "2534" },
- { label: "Сфинксы", value: "1349" },
- { label: "Сценарий (стилизация)", value: "323" },
- { label: "Счастливый финал", value: "3" },
- { label: "США", value: "640" },
- { label: "Съемочная площадка", value: "410" },
- { label: "Сын Тьмы", value: "2175" },
- { label: "Сэнгоку Джидай", value: "2380" },
- { label: "Сэнгоку Дзидай", value: "2834" },
- { label: "Сэцубун", value: "2969" },
- { label: "Сюрреализм / Фантасмагория", value: "872" },
- { label: "Т/И / Л/И", value: "167" },
- { label: "Таджикистан", value: "2974" },
- { label: "Таиланд", value: "1034" },
- { label: "Тайна происхождения", value: "662" },
- { label: "Тайная личность", value: "194" },
- { label: "Тайная сущность", value: "1512" },
- { label: "Тайны / Секреты", value: "906" },
- { label: "Тайные друзья (игра)", value: "2908" },
- { label: "Тайные организации", value: "572" },
- { label: "Тайные поклонники", value: "1374" },
- { label: "Тайный НапиСанта", value: "2972" },
- { label: "Таксисты", value: "2679" },
- { label: "Тактильный голод", value: "2197" },
- { label: "Тактильный контакт", value: "2875" },
- { label: "Танабата", value: "2340" },
- { label: "Танцы", value: "108" },
- { label: "Танцы на пилоне", value: "1370" },
- { label: "Таро", value: "642" },
- { label: "Тату-салоны", value: "324" },
- { label: "Татуировки", value: "327" },
- { label: "Твинцест", value: "1652" },
- { label: "Творческий кризис", value: "2107" },
- { label: "Театры", value: "195" },
- { label: "Телекинез", value: "951" },
- { label: "Телепатия", value: "127" },
- { label: "Телепортация", value: "1794" },
- { label: "Телесные жидкости", value: "1220" },
- { label: "Телесные наказания", value: "132" },
- { label: "Телесный хоррор", value: "212" },
- { label: "Телохранители", value: "400" },
- { label: "Темная сторона (Гарри Поттер)", value: "1937" },
- { label: "Темная сторона Силы", value: "1946" },
- { label: "Темная Эра (Bungou Stray Dogs)", value: "2494" },
- { label: "Темное прошлое", value: "2229" },
- { label: "Темное фэнтези", value: "1963" },
- { label: "Темные властелины", value: "1224" },
- { label: "Темные эльфы", value: "2597" },
- { label: "Темный романтизм", value: "2128" },
- { label: "Темы ментального здоровья", value: "2344" },
- { label: "Темы этики и морали", value: "1106" },
- { label: "Теннис", value: "1066" },
- { label: "Тентакли", value: "129" },
- { label: "Теория инверсии", value: "1980" },
- { label: "Теория Одурманивания", value: "2493" },
- { label: "Термокинез", value: "2793" },
- { label: "Террористы", value: "556" },
- { label: "Теслапанк", value: "1988" },
- { label: "Техники", value: "1272" },
- { label: "Техногенные катастрофы", value: "526" },
- { label: "Технокинез", value: "1271" },
- { label: "Технологии", value: "1232" },
- { label: "Технотриллер", value: "649" },
- { label: "Течка / Гон", value: "283" },
- { label: "Тим Дрейк — Джокер-младший", value: "2454" },
- { label: "Тим Дрейк — Кэтлэд", value: "2453" },
- { label: "Тихий секс", value: "1185" },
- { label: "Товарищи по несчастью", value: "2666" },
- { label: "Токсичные родственники", value: "2008" },
- { label: "Том Реддл — не Темный Лорд", value: "2394" },
- { label: "Томбои", value: "565" },
- { label: "Томгерлз", value: "848" },
- { label: "Торговля органами", value: "1358" },
- { label: "Торговцы", value: "2098" },
- { label: "Торговые центры", value: "1416" },
- { label: "Тоталитаризм", value: "1169" },
- { label: "Травники / Травницы", value: "1211" },
- { label: "Трагедия", value: "919" },
- { label: "Трагикомедия", value: "1454" },
- { label: "Традиции", value: "1463" },
- { label: "Трансгендерные персонажи", value: "175" },
- { label: "Трансплантация", value: "2364" },
- { label: "Трансфобия", value: "420" },
- { label: "Тревожное расстройство личности", value: "1914" },
- { label: "Тревожность", value: "1318" },
- { label: "Трейлеры", value: "785" },
- { label: "Тренировки / Обучение", value: "876" },
- { label: "Третий лишний", value: "1176" },
- { label: "Третья мировая", value: "624" },
- { label: "Три корейских государства", value: "2322" },
- { label: "Трикстеры", value: "1507" },
- { label: "Триллер", value: "169" },
- { label: "Трилогия Юникрона", value: "2378" },
- { label: "Трипофобия", value: "2342" },
- { label: "Трисам", value: "758" },
- { label: "Трихотилломания", value: "2185" },
- { label: "Тролли", value: "190" },
- { label: "Трудные отношения с родителями", value: "1490" },
- { label: "Трудный характер", value: "2123" },
- { label: "Трудоголизм", value: "1848" },
- { label: "Трущобы", value: "2822" },
- { label: "Туалетный юмор", value: "1247" },
- { label: "Туберкулез", value: "2163" },
- { label: "Турция", value: "794" },
- { label: "Тщеславие", value: "2578" },
- { label: "Тюрьмы / Темницы", value: "117" },
- { label: "Тяжелое детство", value: "2614" },
- { label: "Убийства", value: "621" },
- { label: "Убийственная пара", value: "1918" },
- { label: "Убийца поневоле", value: "2671" },
- { label: "Уважение", value: "2688" },
- { label: "Ужасы", value: "1679" },
- { label: "Узбекистан", value: "1293" },
- { label: "Уизлигады", value: "1862" },
- { label: "Украина", value: "716" },
- { label: "Укрытия", value: "199" },
- { label: "Уличные артисты", value: "2550" },
- { label: "Уличные гонки", value: "880" },
- { label: "Умбракинез", value: "2355" },
- { label: "Универсалы", value: "657" },
- { label: "Унижения", value: "1319" },
- { label: "Упоминания аддикций", value: "2848" },
- { label: "Упоминания алкоголя", value: "2415" },
- { label: "Упоминания беременности", value: "2057" },
- { label: "Упоминания войны", value: "2707" },
- { label: "Упоминания жестокости", value: "2447" },
- { label: "Упоминания зоофилии", value: "2620" },
- { label: "Упоминания измены", value: "2876" },
- { label: "Упоминания изнасилования", value: "521" },
- { label: "Упоминания инвалидности", value: "2705" },
- { label: "Упоминания инцеста", value: "2285" },
- { label: "Упоминания каннибализма", value: "2427" },
- { label: "Упоминания курения", value: "2450" },
- { label: "Упоминания мужской беременности", value: "2226" },
- { label: "Упоминания наркотиков", value: "144" },
- { label: "Упоминания насилия", value: "2207" },
- { label: "Упоминания нездоровых отношений", value: "2892" },
- { label: "Упоминания проституции", value: "2618" },
- { label: "Упоминания пыток", value: "2410" },
- { label: "Упоминания расизма", value: "2737" },
- { label: "Упоминания религии", value: "1048" },
- { label: "Упоминания самоубийства", value: "77" },
- { label: "Упоминания секса", value: "2747" },
- { label: "Упоминания селфхарма", value: "2105" },
- { label: "Упоминания смертей", value: "2081" },
- { label: "Упоминания смертей животных", value: "2211" },
- { label: "Упоминания телесного хоррора", value: "2466" },
- { label: "Упоминания терроризма", value: "774" },
- { label: "Упоминания убийств", value: "1501" },
- { label: "Управление оргазмом", value: "118" },
- { label: "Управление стихиями", value: "2091" },
- { label: "Уретральное проникновение", value: "1469" },
- { label: "Уро-кинк", value: "762" },
- { label: "Условное бессмертие", value: "2117" },
- { label: "Уся / Сянься", value: "2714" },
- { label: "Утопия", value: "350" },
- { label: "Утраченная тройка", value: "2535" },
- { label: "Утренний секс", value: "2882" },
- { label: "Уход за персонажами с инвалидностью", value: "2133" },
- { label: "Ухудшение отношений", value: "1219" },
- { label: "Учебные заведения", value: "1694" },
- { label: "Ученые", value: "402" },
- { label: "Уют", value: "2738" },
- { label: "Фавориты", value: "2135" },
- { label: "Фамильяры", value: "1045" },
- { label: "Фан-Бинго", value: "2957" },
- { label: "Фан-Фанты", value: "2953" },
- { label: "Фандомная аналитика", value: "742" },
- { label: "Фандомная Битва", value: "253" },
- { label: "Фансервис", value: "2483" },
- { label: "Фантастика", value: "1670" },
- { label: "Фастберн", value: "2016" },
- { label: "Фастфуд / Закусочные", value: "1025" },
- { label: "Феи", value: "191" },
- { label: "Фельчинг", value: "2368" },
- { label: "Фемдом", value: "54" },
- { label: "Феминистские темы и мотивы", value: "523" },
- { label: "Феминитивы", value: "390" },
- { label: "Фениксы", value: "1215" },
- { label: "Феодализм", value: "1504" },
- { label: "Фермы / Ранчо", value: "329" },
- { label: "Фестивали", value: "1006" },
- { label: "Фехтование", value: "1775" },
- { label: "Фиггинг", value: "1439" },
- { label: "Фигурное катание", value: "460" },
- { label: "Физиотерапия", value: "2222" },
- { label: "Физическая сверхсила", value: "2880" },
- { label: "Фикрайтеры / Фикридеры", value: "1284" },
- { label: "Фиксированная раскладка", value: "1344" },
- { label: "Фиктивные отношения", value: "308" },
- { label: "Фиктивный брак", value: "34" },
- { label: "Философия", value: "1675" },
- { label: "Финляндия", value: "1133" },
- { label: "Фистинг", value: "151" },
- { label: "Флафф", value: "1667" },
- { label: "Флирт", value: "349" },
- { label: "Флот", value: "846" },
- { label: "Фобии", value: "977" },
- { label: "Фольклор и предания", value: "1273" },
- { label: "Форнифилия", value: "580" },
- { label: "Фотографы", value: "348" },
- { label: "Фотокинез", value: "1805" },
- { label: "Франция", value: "691" },
- { label: "Фред Уизли жив", value: "2941" },
- { label: "Фроттаж", value: "96" },
- { label: "Фуд-плей", value: "509" },
- { label: "Фуд-фетиш", value: "2168" },
- { label: "Фурри", value: "996" },
- { label: "Фут-фетиш", value: "432" },
- { label: "Футбол", value: "458" },
- { label: "Фэйри", value: "2028" },
- { label: "Фэнтези", value: "1669" },
- { label: "Хакеры", value: "340" },
- { label: "Ханами", value: "1155" },
- { label: "Ханахаки", value: "45" },
- { label: "Ханжество", value: "882" },
- { label: "Характерная для канона жестокость", value: "896" },
- { label: "Харассмент", value: "477" },
- { label: "Хиерофилия", value: "2366" },
- { label: "Химеры", value: "816" },
- { label: "Химическое оружие", value: "1186" },
- { label: "Химэдэрэ / Оджидэрэ", value: "1363" },
- { label: "Хип-хоп (субкультура)", value: "1822" },
- { label: "Хиппи", value: "784" },
- { label: "Хиромантия", value: "2749" },
- { label: "Хирургическая коррекция пола", value: "1249" },
- { label: "Хирургические операции", value: "1845" },
- { label: "Хобби", value: "1161" },
- { label: "Хогсмид", value: "2388" },
- { label: "Хоккей", value: "828" },
- { label: "Холодная война", value: "2140" },
- { label: "Холодное оружие", value: "1187" },
- { label: "Хорватия", value: "1433" },
- { label: "Хороший плохой финал", value: "1266" },
- { label: "Хронические заболевания", value: "1267" },
- { label: "Хронокинез", value: "1447" },
- { label: "Хронофантастика", value: "56" },
- { label: "Хтонические существа", value: "504" },
- { label: "Художники", value: "140" },
- { label: "Хуманизация", value: "177" },
- { label: "Хэллоуин", value: "205" },
- { label: "Хюльдры", value: "1397" },
- { label: "Цветочные магазины", value: "164" },
- { label: "Целители", value: "1107" },
- { label: "Церкви", value: "533" },
- { label: "Цикличность", value: "1979" },
- { label: "Цирки", value: "259" },
- { label: "Цукими", value: "1798" },
- { label: "Цундэрэ", value: "1137" },
- { label: "Цыгане", value: "1091" },
- { label: "Чайлдфри", value: "592" },
- { label: "Чайные церемонии", value: "2416" },
- { label: "Частичный ООС", value: "1409" },
- { label: "Частные детективы", value: "427" },
- { label: "Черная археология", value: "2503" },
- { label: "Черная мораль", value: "2438" },
- { label: "Чернобыльская катастрофа", value: "775" },
- { label: "Черный юмор", value: "66" },
- { label: "Чехия", value: "1021" },
- { label: "Чиновники", value: "1991" },
- { label: "Чирлидинг", value: "1431" },
- { label: "Чистокровные AU (Гарри Поттер)", value: "1905" },
- { label: "Чосон", value: "571" },
- { label: "Чувство вины", value: "902" },
- { label: "Чумные доктора", value: "1125" },
- { label: "Чхусок", value: "2973" },
- { label: "Шаманы", value: "484" },
- { label: "Шантаж", value: "569" },
- { label: "Шармбатон", value: "2733" },
- { label: "Швейцария", value: "1022" },
- { label: "Шейпшифтеры", value: "29" },
- { label: "Шелки", value: "2431" },
- { label: "Шифры", value: "2232" },
- { label: "Школьная иерархия", value: "2787" },
- { label: "Школьники", value: "2566" },
- { label: "Школьные годы Тома Реддла", value: "1913" },
- { label: "Школьные ОтМетки", value: "3017" },
- { label: "Школьные поездки", value: "2481" },
- { label: "Школьный роман", value: "2440" },
- { label: "Шопинг", value: "864" },
- { label: "Шоу-бизнес", value: "17" },
- { label: "Шпионы", value: "148" },
- { label: "Шрамирование", value: "891" },
- { label: "Шрамы", value: "328" },
- { label: "Эвтаназия", value: "1102" },
- { label: "Эгоизм", value: "2071" },
- { label: "Эдвардианская эпоха", value: "2975" },
- { label: "Эзотерические темы и мотивы", value: "2801" },
- { label: "Эйблизм", value: "453" },
- { label: "Эйдетическая память", value: "975" },
- { label: "Эйфория", value: "2458" },
- { label: "Экзамены", value: "2591" },
- { label: "Экзистенциальный кризис", value: "1200" },
- { label: "Экзорцизм", value: "494" },
- { label: "Экологи / Биологи", value: "631" },
- { label: "Экологический кризис", value: "485" },
- { label: "Экономический кризис", value: "1547" },
- { label: "Эксаудиризм", value: "2151" },
- { label: "Эксгибиционизм", value: "489" },
- { label: "Эксперимент", value: "1686" },
- { label: "Экстрасенсы", value: "371" },
- { label: "Экшн", value: "1673" },
- { label: "Электрокинез", value: "1857" },
- { label: "Электростимуляция", value: "807" },
- { label: "Элементы ангста", value: "2696" },
- { label: "Элементы гета", value: "1714" },
- { label: "Элементы дарка", value: "2703" },
- { label: "Элементы детектива", value: "2698" },
- { label: "Элементы драмы", value: "2697" },
- { label: "Элементы других видов отношений", value: "454" },
- { label: "Элементы мистики", value: "1324" },
- { label: "Элементы психологии", value: "2824" },
- { label: "Элементы романтики", value: "2742" },
- { label: "Элементы слэша", value: "1715" },
- { label: "Элементы ужасов", value: "2721" },
- { label: "Элементы фемслэша", value: "1716" },
- { label: "Элементы флаффа", value: "2731" },
- { label: "Элементы юмора / Элементы стёба", value: "2011" },
- { label: "Эльфы", value: "44" },
- { label: "Эметофилия", value: "1434" },
- { label: "Эмо", value: "641" },
- { label: "Эмоциональная одержимость", value: "1270" },
- { label: "Эмпатия", value: "1177" },
- { label: "Энергетический вампиризм", value: "818" },
- { label: "Эпидемии", value: "619" },
- { label: "Эпизод 23.5", value: "2469" },
- { label: "Эпилепсия", value: "1511" },
- { label: "Эпилог? Какой эпилог?", value: "2651" },
- { label: "Эпоха Бакумацу", value: "1472" },
- { label: "Эпоха Мэйдзи", value: "1435" },
- { label: "Эпоха Тайсё", value: "2015" },
- { label: "Эрик Киллмонгер жив", value: "2897" },
- { label: "Эрогуро", value: "1731" },
- { label: "Эротическая дрессировка", value: "2026" },
- { label: "Эротическая лактация", value: "284" },
- { label: "Эротическая мумификация", value: "415" },
- { label: "Эротическая сверхстимуляция", value: "1245" },
- { label: "Эротические наказания", value: "125" },
- { label: "Эротические ролевые игры", value: "111" },
- { label: "Эротические сны", value: "128" },
- { label: "Эротические фантазии", value: "561" },
- { label: "Эротический массаж", value: "1518" },
- { label: "Эротический перенос", value: "744" },
- { label: "Эротомания", value: "2922" },
- { label: "Эскапизм", value: "1552" },
- { label: "Эскорты", value: "922" },
- { label: "Эстетика", value: "2021" },
- { label: "ЭТЕРНА", value: "2948" },
- { label: "Этнические анклавы", value: "2732" },
- { label: "Этническое фэнтези", value: "667" },
- { label: "Эффект бабочки", value: "1572" },
- { label: "Ювелиры", value: "2964" },
- { label: "Южная Америка", value: "832" },
- { label: "Южная готика", value: "1077" },
- { label: "Южная Корея", value: "674" },
- { label: "Юмор", value: "1666" },
- { label: "Юристы", value: "333" },
- { label: "Я никогда не... (игра)", value: "1436" },
- { label: "Явное согласие", value: "1569" },
- { label: "Ядерная война", value: "889" },
- { label: "Язык жестов", value: "2962" },
- { label: "Язык животных", value: "1327" },
- { label: "Язык растений", value: "2622" },
- { label: "Язык цветов", value: "272" },
- { label: "Ямадад", value: "2916" },
- { label: "Янгирэ", value: "1257" },
- { label: "Яндэрэ", value: "1136" },
- { label: "Яогуаи", value: "2347" },
- { label: "Япония", value: "665" },
- { label: "Японские фестивали", value: "2555" },
- { label: "Ящеролюди", value: "682" },
- { label: "Abuse/Comfort", value: "2599" },
- { label: "Aged down", value: "229" },
- { label: "Aged up", value: "4" },
- { label: "Artfic", value: "68" },
- { label: "AU", value: "1683" },
- { label: "AU: Альтернативные способности", value: "2086" },
- { label: "AU: Без апокалипсиса", value: "2051" },
- { label: "AU: Без войны", value: "2305" },
- { label: "AU: Без магии", value: "1052" },
- { label: "AU: Без мистики", value: "2489" },
- { label: "AU: Без сверхспособностей", value: "1053" },
- { label: "AU: Без супергероев", value: "1152" },
- { label: "AU: Все гражданские", value: "2797" },
- { label: "AU: Все друзья", value: "2552" },
- { label: "AU: Все люди", value: "1151" },
- { label: "AU: Все хорошо", value: "2124" },
- { label: "AU: Другая страна", value: "2165" },
- { label: "AU: Другая эпоха", value: "2452" },
- { label: "AU: Другое детство", value: "2360" },
- { label: "AU: Другое знакомство", value: "2217" },
- { label: "AU: Другое семейное положение", value: "2902" },
- { label: "AU: Не родственники", value: "2167" },
- { label: "AU: Профессиональные герои (BNHA)", value: "2924" },
- { label: "AU: Родственники", value: "2164" },
- { label: "AU: Школа", value: "2532" },
- { label: "AU: Age swap", value: "917" },
- { label: "AU: Kitty Gang", value: "2928" },
- { label: "AU: Race swap", value: "933" },
- { label: "AU: Reverse", value: "1156" },
- { label: "AU: Role swap", value: "1054" },
- { label: "Authors Time", value: "2959" },
- { label: "BDSM", value: "1646" },
- { label: "BDSM-вселенная", value: "1078" },
- { label: "BDSM: Домспейс", value: "1444" },
- { label: "BDSM: Дроп", value: "1411" },
- { label: "BDSM: Сабспейс", value: "1410" },
- { label: "BDSM: Aftercare", value: "1523" },
- { label: "BEAST (Bungou Stray Dogs)", value: "2457" },
- { label: "Blackwatch", value: "2116" },
- { label: "Body inflation", value: "389" },
- { label: "Character study", value: "363" },
- { label: "Cockwarming", value: "318" },
- { label: "Dark academia", value: "2430" },
- { label: "DDLG / DDLB / MDLG / MDLB", value: "1033" },
- { label: "Dirty talk", value: "139" },
- { label: "Doggy style", value: "1361" },
- { label: "Dollification", value: "2780" },
- { label: "Dramione Authors Tournament", value: "2950" },
- { label: "EIQ", value: "271" },
- { label: "ER", value: "1687" },
- { label: "Final Haikyuu Quest", value: "2652" },
- { label: "Fix-it", value: "1" },
- { label: "Frenemies", value: "666" },
- { label: "Gangbang", value: "315" },
- { label: "Glory hole", value: "2188" },
- { label: "Golden Age Overwatch", value: "2112" },
- { label: "GOLockdown", value: "2391" },
- { label: "Gun play", value: "252" },
- { label: "Hurt/Comfort", value: "1682" },
- { label: "Hydra!AU", value: "1931" },
- { label: "Ironqrow week", value: "2209" },
- { label: "Kimetsu Gakuen", value: "2574" },
- { label: "Knife play", value: "152" },
- { label: "KPOP-AUFEST", value: "1851" },
- { label: "LARP", value: "1510" },
- { label: "LOVE ОтМетки", value: "2981" },
- { label: "Maleval week", value: "2382" },
- { label: "Marvel ГФИ", value: "2896" },
- { label: "Mate or die", value: "375" },
- { label: "Mirror!verse (Звездный путь)", value: "2899" },
- { label: "Moresome", value: "759" },
- { label: "N раз", value: "263" },
- { label: "Omnic Crisis Era", value: "2111" },
- { label: "ORIGINAL'S 2021", value: "2939" },
- { label: "Parentlock", value: "2053" },
- { label: "Patronus of Dramione", value: "2958" },
- { label: "Post-Fall of Overwatch", value: "2114" },
- { label: "Post-Recall", value: "2115" },
- { label: "PWP", value: "1680" },
- { label: "Rape/Revenge", value: "2195" },
- { label: "Reverse Falls", value: "1879" },
- { label: "RofR ДраМиВояж", value: "2954" },
- { label: "RST", value: "815" },
- { label: "RTFM", value: "2327" },
- { label: "Service top / Power bottom", value: "563" },
- { label: "Shingeki no Kyojin High School AU", value: "2037" },
- { label: "Shingeki! Kyojin Chuugakkou", value: "2038" },
- { label: "Sickfic", value: "422" },
- { label: "Songfic", value: "1684" },
- { label: "Spider-son & Iron-dad", value: "1885" },
- { label: "Sugar daddy", value: "106" },
- { label: "Sugar mommy", value: "160" },
- { label: "Superfamily (Мстители)", value: "2623" },
- { label: "Superior Iron Man", value: "2676" },
- { label: "Talon (Overwatch)", value: "2110" },
- { label: "The Big Four / The Super Six", value: "1954" },
- { label: "Trench AU", value: "2387" },
- { label: "TYL", value: "1933" },
- { label: "Underage", value: "1658" },
- { label: "URT", value: "2761" },
- { label: "UST", value: "1709" },
- { label: "Versefic", value: "2729" },
- { label: "Videofic", value: "2480" },
- { label: "Womance", value: "265" },
- { label: "X век", value: "240" },
- { label: "XI век", value: "241" },
- { label: "XII век", value: "242" },
- { label: "XIII век", value: "243" },
- { label: "XIV век", value: "244" },
- { label: "XIX век", value: "249" },
- { label: "XV век", value: "245" },
- { label: "XVI век", value: "246" },
- { label: "XVII век", value: "247" },
- { label: "XVIII век", value: "248" },
- { label: "XX век", value: "1004" },
- ],
- type: FilterTypes.Picker,
- },
- } satisfies Filters;
-}
-
-export default new ficbook();
-
-interface Data {
- data?: DataEntity[] | null;
- more: boolean;
-}
-interface DataEntity {
- id: string;
- slug: string;
- author_id: number;
- user_slug: string;
- author_username: string;
- real_author_id: string | null;
- direction: number;
- part_cnt: number;
- title: string;
- description: string;
- enable_marks: boolean;
- marks_plus: number;
- is_premium: boolean;
- status: number;
- last_updated: string;
- readedDate?: string | null;
- reward_cnt: number;
- cover?: string | null;
-}
+import { Plugin } from "@typings/plugin";
+import { FilterTypes, Filters } from "@libs/filterInputs";
+import { fetchApi, fetchFile } from "@libs/fetch";
+import { NovelStatus } from "@libs/novelStatus";
+import { load as parseHTML } from "cheerio";
+import { defaultCover } from "@libs/defaultCover";
+
+class ficbook implements Plugin.PluginBase {
+ id = "ficbook";
+ name = "ficbook";
+ site = "https://ficbook.net";
+ version = "1.0.0";
+ icon = "src/ru/ficbook/icon.png";
+
+ async popularNovels(
+ pageNo: number,
+ { showLatestNovels, filters }: Plugin.PopularNovelsOptions,
+ ): Promise {
+ let url = this.site;
+
+ if (filters?.directions?.value) {
+ url += "/popular-fanfics/" + filters.directions.value;
+ } else if (filters?.tags?.value) {
+ url += "/tags/" + filters.tags.value + "?p=" + pageNo;
+ } else {
+ url += "/" + (filters?.sort?.value || "fanfiction") + "?p=" + pageNo;
+ }
+
+ const result = await fetchApi(url).then((res) => res.text());
+ const loadedCheerio = parseHTML(result);
+ const novels: Plugin.NovelItem[] = [];
+
+ loadedCheerio("article.fanfic-inline").each((index, element) => {
+ const name = loadedCheerio(element).find("h3 > a").text().trim();
+ let cover = loadedCheerio(element).find("picture > img").attr("src");
+ const url = loadedCheerio(element).find("h3 > a").attr("href");
+
+ cover = cover
+ ? cover.replace(/covers\/m_|covers\/d_/g, "covers/")
+ : defaultCover;
+ if (!name || !url) return;
+
+ novels.push({ name, cover, url: this.site + url.replace(/\?.*/g, "") });
+ });
+
+ return novels;
+ }
+
+ async parseNovelAndChapters(novelUrl: string): Promise {
+ const result = await fetchApi(novelUrl).then((res) => res.text());
+ const loadedCheerio = parseHTML(result);
+
+ const novel: Plugin.SourceNovel = {
+ url: novelUrl,
+ };
+
+ novel.name = (
+ loadedCheerio('h1[itemprop="headline"]').text() ||
+ loadedCheerio('h1[itemprop="name"]').text()
+ ).trim();
+
+ novel.cover = loadedCheerio('meta[property="og:image"]').attr("content");
+ novel.summary = loadedCheerio('div[itemprop="description"]').text().trim();
+ novel.author = loadedCheerio('a[itemprop="author"]').text();
+
+ novel.status =
+ loadedCheerio(
+ "div.fanfic-main-info > section:nth-child(3) > div:nth-child(3) > span:nth-child(2)",
+ ).text() === "В процессе"
+ ? NovelStatus.Ongoing
+ : NovelStatus.Completed;
+
+ const tags = loadedCheerio('div[class="tags"] > a')
+ .map((index, element) => loadedCheerio(element).text())
+ .get();
+
+ if (tags.length) {
+ novel.genres = tags.join(",");
+ }
+
+ if (!novel.cover || novel.cover?.includes("/design/")) {
+ novel.cover = defaultCover;
+ } else {
+ novel.cover = novel.cover.replace(/covers\/m_|covers\/d_/g, "covers/");
+ }
+
+ const chapters: Plugin.ChapterItem[] = [];
+
+ if (loadedCheerio("#content").length == 1) {
+ const name = loadedCheerio(".title-area > h2").text();
+ const releaseTime = loadedCheerio(".part-date > span").attr("title");
+
+ if (name) chapters.push({ name, url: novelUrl, releaseTime });
+ } else {
+ loadedCheerio("li.part").each((chapterIndex, element) => {
+ const name = loadedCheerio(element).find("h3").text();
+ const url = loadedCheerio(element).find("a:nth-child(1)").attr("href");
+ if (!name || !url) return;
+
+ const releaseTime = loadedCheerio(element).find("div > span").attr("title");
+ chapters.push({
+ name, url: this.site + url, releaseTime, chapterNumber: chapterIndex + 1,
+ });
+ });
+
+ }
+
+ novel.chapters = chapters;
+ return novel;
+ }
+
+ async parseChapter(chapterUrl: string): Promise {
+ const result = await fetchApi(chapterUrl).then((res) => res.text());
+ const loadedCheerio = parseHTML(result);
+ let chapterText = "";
+
+ loadedCheerio("#content")
+ .html()
+ ?.split("\n")
+ ?.forEach((line) => {
+ if (line.trim()) {
+ //blank line skip
+ if (line.includes("")) {
+ //new paragraph
+ chapterText += line;
+ } else {
+ //plaintext
+ chapterText += "" + line + "
";
+ }
+ }
+ });
+
+ return chapterText;
+ }
+
+ async searchNovels(
+ searchTerm: string,
+ pageNo: number | undefined = 1,
+ ): Promise {
+ const formData = new FormData();
+ formData.append("term", searchTerm);
+ formData.append("page", pageNo.toString());
+
+ const result = await fetchApi(this.site + "/search/fanfic", {
+ method: "POST",
+ body: formData,
+ });
+ const json = (await result.json()) as { data: Data };
+ const novels: Plugin.NovelItem[] = [];
+
+ json.data?.data?.forEach((novel) => {
+ const name = novel.title.trim();
+ const url = this.site + "/readfic/" + novel.slug;
+ const cover = novel.cover
+ ? "https://images.ficbook.net/fanfic-covers/" + novel.cover
+ : defaultCover;
+
+ novels.push({ name, cover, url });
+ });
+
+ return novels;
+ }
+ fetchImage = fetchFile;
+
+ filters = {
+ sort: {
+ label: "Сортировка:",
+ value: "fanfiction",
+ options: [
+ { label: "Горячие работы", value: "fanfiction" },
+ { label: "Популярные ", value: "popular-fanfics" },
+ ],
+ type: FilterTypes.Picker,
+ },
+ directions: {
+ label: "Направление:",
+ value: "",
+ options: [
+ { label: "Все", value: "" },
+ { label: "Джен", value: "gen" },
+ { label: "Гет", value: "het" },
+ { label: "Слэш", value: "slash-fics-3712917" },
+ { label: "Фемслэш", value: "femslash-fanfics-9374932" },
+ { label: "Статьи", value: "article" },
+ { label: "Смешанный", value: "mixed" },
+ { label: "Другой", value: "other" },
+ ],
+ type: FilterTypes.Picker,
+ },
+ tags: {
+ label: "Тэги:",
+ value: "",
+ options: [
+ { label: "Все", value: "" },
+ { label: "#1fic1week", value: "884" },
+ { label: "#7daystowrite", value: "2961" },
+ { label: "#Бинго_ТФ", value: "1458" },
+ { label: "#миниатюры3days", value: "2118" },
+ { label: "#Не_Тайный_Санта", value: "2760" },
+ { label: "#Писательские фанты-блиц", value: "2613" },
+ { label: "#cosmowrite", value: "2284" },
+ { label: "#femKHRweek", value: "2658" },
+ { label: "#FourShips", value: "2588" },
+ { label: "#Goretober", value: "1861" },
+ { label: "#InternationalVampireDay / #WorldDraculaDay", value: "2048" },
+ { label: "#KattWeek", value: "2717" },
+ { label: "#Kinktober", value: "1867" },
+ { label: "#LotorWeek", value: "2657" },
+ { label: "#MerMay", value: "1122" },
+ { label: "#NaNoWriMo", value: "1852" },
+ { label: "#nsfweruriweek", value: "2944" },
+ { label: "#RCMiaChallenge", value: "2700" },
+ { label: "#SheithMonth", value: "2432" },
+ { label: "#SixDrabbles", value: "2293" },
+ { label: "#Writober", value: "1831" },
+ { label: "1900-е годы", value: "369" },
+ { label: "1910-е годы", value: "213" },
+ { label: "1920-е годы", value: "81" },
+ { label: "1930-е годы", value: "82" },
+ { label: "1940-е годы", value: "83" },
+ { label: "1950-е годы", value: "84" },
+ { label: "1960-е годы", value: "85" },
+ { label: "1970-е годы", value: "86" },
+ { label: "1980-е годы", value: "87" },
+ { label: "1990-е годы", value: "88" },
+ { label: "2000-е годы", value: "590" },
+ { label: "2010-е годы", value: "2562" },
+ { label: "2014 год", value: "2977" },
+ { label: "2P", value: "1910" },
+ { label: "9 мая", value: "1019" },
+ { label: "Аборт / Выкидыш", value: "306" },
+ { label: "Аватары", value: "2401" },
+ { label: "Авиатранспорт", value: "962" },
+ { label: "Авиация", value: "455" },
+ { label: "Аврорат", value: "1906" },
+ { label: "Австралия", value: "767" },
+ { label: "Австрия", value: "1024" },
+ { label: "Автомастерские", value: "788" },
+ { label: "Авторская пунктуация", value: "2886" },
+ { label: "Авторские неологизмы", value: "1123" },
+ { label: "Автоспорт", value: "856" },
+ { label: "Автостоп", value: "1429" },
+ { label: "Аддикции", value: "1230" },
+ { label: "Адреналиновая зависимость", value: "1480" },
+ { label: "Азартные игры", value: "1009" },
+ { label: "Азкабан", value: "1922" },
+ { label: "Аквакинез", value: "1380" },
+ { label: "Аквапарки", value: "789" },
+ { label: "Акростих", value: "911" },
+ { label: "Актеры", value: "408" },
+ { label: "Акустикофилия", value: "903" },
+ { label: "Алекситимия", value: "2020" },
+ { label: "Алкоголь", value: "201" },
+ { label: "Алкогольные игры", value: "1534" },
+ { label: "Аллергии", value: "746" },
+ { label: "Алхимия", value: "1174" },
+ { label: "Альбинизм", value: "1213" },
+ { label: "Альпинизм", value: "1448" },
+ { label: "Альтернативная мировая история", value: "442" },
+ { label: "Альтернативное размножение", value: "2751" },
+ { label: "Альтернативные судьбы", value: "2839" },
+ { label: "Амазонки", value: "1424" },
+ { label: "Амегакуре", value: "2571" },
+ { label: "Американский футбол", value: "808" },
+ { label: "Ампутация", value: "704" },
+ { label: "Амфибии", value: "2792" },
+ { label: "Анальгезия", value: "1254" },
+ { label: "Анальный оргазм", value: "999" },
+ { label: "Анальный секс", value: "215" },
+ { label: "Анархия", value: "1175" },
+ { label: "Анахронизмы", value: "780" },
+ { label: "Ангелы", value: "91" },
+ { label: "Ангелы-хранители", value: "1044" },
+ { label: "Ангст", value: "1665" },
+ { label: "Андрогинная внешность", value: "2602" },
+ { label: "Андроиды", value: "155" },
+ { label: "Анимагия", value: "2519" },
+ { label: "Анимализм", value: "1443" },
+ { label: "Аномальные зоны", value: "822" },
+ { label: "Анонимный секс", value: "112" },
+ { label: "Анрождение", value: "1246" },
+ { label: "Антарктида", value: "2205" },
+ { label: "Анти-Сью (Анти-Стью)", value: "1150" },
+ { label: "Антигерои", value: "418" },
+ { label: "Антизлодеи", value: "1833" },
+ { label: "Антикварные магазины", value: "1496" },
+ { label: "Антисоциальное расстройство личности", value: "734" },
+ { label: "Антиутопия", value: "1700" },
+ { label: "Античность", value: "237" },
+ { label: "Апатия", value: "1850" },
+ { label: "Аптеки", value: "1240" },
+ { label: "Аргентина", value: "1146" },
+ { label: "Арены", value: "940" },
+ { label: "Аристократия", value: "16" },
+ { label: "Арктика", value: "2426" },
+ { label: "Армия", value: "22" },
+ { label: "Аромантичные персонажи", value: "339" },
+ { label: "Артефакты", value: "924" },
+ { label: "Археологи", value: "405" },
+ { label: "Архивы", value: "2594" },
+ { label: "Архитекторы", value: "1011" },
+ { label: "Асексофобия", value: "1120" },
+ { label: "Асексуальные персонажи", value: "168" },
+ { label: "Аскетизм", value: "606" },
+ { label: "Асоциальность", value: "2019" },
+ { label: "Ассистенты", value: "2641" },
+ { label: "Астма", value: "1121" },
+ { label: "Астральное проецирование", value: "2530" },
+ { label: "Астральные миры", value: "1379" },
+ { label: "Астрология", value: "476" },
+ { label: "Астронавты", value: "2220" },
+ { label: "Астрономия", value: "1372" },
+ { label: "Асфиксия", value: "104" },
+ { label: "Атеисты", value: "669" },
+ { label: "Атлантида", value: "1144" },
+ { label: "Атмокинез", value: "1964" },
+ { label: "Атмосферная зарисовка", value: "2802" },
+ { label: "Атомные электростанции", value: "2192" },
+ { label: "Аудиокинез", value: "2849" },
+ { label: "Аукционы", value: "607" },
+ { label: "Аутоассасинофилия", value: "2025" },
+ { label: "Аутоканнибализм", value: "2593" },
+ { label: "Аутофелляция / Аутокуннилингус", value: "610" },
+ { label: "Африка", value: "791" },
+ { label: "Афродизиаки", value: "103" },
+ { label: "Аффект", value: "938" },
+ { label: "Аэрокинез", value: "2850" },
+ { label: "Байкеры", value: "522" },
+ { label: "Байронические герои", value: "2900" },
+ { label: "Балет", value: "404" },
+ { label: "Баллада", value: "2318" },
+ { label: "Банки / Биржи", value: "937" },
+ { label: "Банши", value: "250" },
+ { label: "Барти Крауч-младший — не Пожиратель Смерти", value: "2795" },
+ { label: "Бары", value: "142" },
+ { label: "Баскетбол", value: "829" },
+ { label: "Баски", value: "1763" },
+ { label: "Бастарды", value: "603" },
+ { label: "Батохаки", value: "2830" },
+ { label: "Бедность", value: "979" },
+ { label: "Без Волдеморта", value: "2160" },
+ { label: "Без диалогов (стилизация)", value: "2885" },
+ { label: "Без золотого трио", value: "2648" },
+ { label: "Без Избранного (Гарри Поттер)", value: "2762" },
+ { label: "Без канонических персонажей", value: "2694" },
+ { label: "Без Таноса", value: "2381" },
+ { label: "БезГражданки", value: "2418" },
+ { label: "Бездомные", value: "916" },
+ { label: "Безответственность", value: "2152" },
+ { label: "Безумные ученые", value: "2559" },
+ { label: "Безэмоциональность", value: "1488" },
+ { label: "Бейсбол", value: "1489" },
+ { label: "Беларусь", value: "1030" },
+ { label: "Белый день", value: "683" },
+ { label: "Белый стих", value: "1998" },
+ { label: "Бельгия", value: "1039" },
+ { label: "Беременность", value: "1712" },
+ { label: "Бермудский треугольник", value: "1158" },
+ { label: "Берсерки", value: "566" },
+ { label: "Бесконтактный секс", value: "2214" },
+ { label: "Бесплодие", value: "719" },
+ { label: "Беспокойство", value: "2888" },
+ { label: "Беспризорники", value: "604" },
+ { label: "Беспричудный Изуку", value: "2422" },
+ { label: "Бессмертие", value: "219" },
+ { label: "Бессмертный конкурс 2023", value: "3016" },
+ { label: "Бестелесность", value: "2607" },
+ { label: "Би-персонажи", value: "300" },
+ { label: "Библейские темы и мотивы", value: "1468" },
+ { label: "Библиотекари", value: "2631" },
+ { label: "Библиотеки", value: "310" },
+ { label: "Бизнесмены / Бизнесвумен", value: "573" },
+ { label: "Биологическое оружие", value: "1188" },
+ { label: "Биопанк", value: "281" },
+ { label: "Биороботы", value: "2256" },
+ { label: "Биполярное расстройство", value: "690" },
+ { label: "Битва за Хогвартс", value: "2774" },
+ { label: "Битва Историй", value: "2960" },
+ { label: "Благородные разбойники", value: "952" },
+ { label: "Благотворительность", value: "613" },
+ { label: "Бладплей", value: "109" },
+ { label: "Ближний Восток", value: "1041" },
+ { label: "Близкие враги", value: "721" },
+ { label: "Близнецы", value: "295" },
+ { label: "Блиц-свидания", value: "2511" },
+ { label: "Блогеры", value: "1471" },
+ { label: "Блокадный Ленинград", value: "1111" },
+ { label: "Блэкигуд", value: "2905" },
+ { label: "Богачи", value: "1549" },
+ { label: "Боги / Божественные сущности", value: "149" },
+ { label: "Боди-арт", value: "2260" },
+ { label: "Бодипозитив", value: "1153" },
+ { label: "Боевая пара", value: "1919" },
+ { label: "Боевые искусства", value: "918" },
+ { label: "Бои без правил", value: "1390" },
+ { label: "Бокс", value: "765" },
+ { label: "Болгария", value: "1786" },
+ { label: "Болезнь Альцгеймера", value: "2533" },
+ { label: "Боль", value: "1803" },
+ { label: "Больницы", value: "20" },
+ { label: "Большая Игра профессора Дамблдора", value: "2890" },
+ { label: "Бордели", value: "120" },
+ { label: "Борьба за власть", value: "2300" },
+ { label: "Борьба за отношения", value: "1251" },
+ { label: "Борьба за справедливость", value: "2335" },
+ { label: "Боязнь боли", value: "2441" },
+ { label: "Боязнь воды", value: "1084" },
+ { label: "Боязнь врачей", value: "2063" },
+ { label: "Боязнь высоты", value: "1085" },
+ { label: "Боязнь грозы", value: "1124" },
+ { label: "Боязнь громких звуков", value: "1090" },
+ { label: "Боязнь грязи", value: "1277" },
+ { label: "Боязнь замкнутых пространств", value: "821" },
+ { label: "Боязнь зеркал", value: "2739" },
+ { label: "Боязнь клоунов", value: "2970" },
+ { label: "Боязнь крови", value: "1312" },
+ { label: "Боязнь людей", value: "1082" },
+ { label: "Боязнь мужчин", value: "1264" },
+ { label: "Боязнь насекомых / Боязнь пауков", value: "1119" },
+ { label: "Боязнь неудачи", value: "2713" },
+ { label: "Боязнь огня", value: "1258" },
+ { label: "Боязнь одиночества", value: "1491" },
+ { label: "Боязнь открытых пространств", value: "965" },
+ { label: "Боязнь привязанности", value: "1343" },
+ { label: "Боязнь призраков", value: "2770" },
+ { label: "Боязнь прикосновений", value: "823" },
+ { label: "Боязнь сексуальных домогательств", value: "2319" },
+ { label: "Боязнь смерти", value: "1515" },
+ { label: "Боязнь сна", value: "2262" },
+ { label: "Боязнь темноты", value: "1494" },
+ { label: "Боязнь тишины", value: "2233" },
+ { label: "Бразилия", value: "833" },
+ { label: "Брак по договоренности", value: "35" },
+ { label: "Брак по расчету", value: "303" },
+ { label: "БРД", value: "2907" },
+ { label: "Бродячие артисты", value: "2661" },
+ { label: "Бродячие певцы", value: "1497" },
+ { label: "Броманс", value: "171" },
+ { label: "Будущее", value: "227" },
+ { label: "Буллёзный эпидермолиз", value: "2725" },
+ { label: "Буллинг", value: "436" },
+ { label: "Бухгалтеры", value: "2509" },
+ { label: "Буч и фэм", value: "486" },
+ { label: "Бывшие", value: "311" },
+ { label: "Бывшие враги", value: "2812" },
+ { label: "Бывшие серийные убийцы", value: "2498" },
+ { label: "Бытовое фэнтези", value: "2702" },
+ { label: "В одном теле", value: "1425" },
+ { label: "В поисках отношений", value: "1576" },
+ { label: "В. А. О. Н.", value: "2377" },
+ { label: "Вагинальный секс", value: "395" },
+ { label: "Ваканда", value: "2668" },
+ { label: "Валькирии", value: "557" },
+ { label: "Вампиры", value: "27" },
+ { label: "Василиски", value: "863" },
+ { label: "Вдовство", value: "2030" },
+ { label: "Вебкам-модели", value: "2299" },
+ { label: "Вегетарианцы / Веганы", value: "577" },
+ { label: "Ведьмы / Колдуны", value: "33" },
+ { label: "Великая депрессия", value: "2224" },
+ { label: "Великая французская революция", value: "2000" },
+ { label: "Великобритания", value: "673" },
+ { label: "Великое Княжество Литовское", value: "2587" },
+ { label: "Великолепный мерзавец", value: "1244" },
+ { label: "Велоспорт", value: "2978" },
+ { label: "Венгрия", value: "1432" },
+ { label: "Вендиго", value: "251" },
+ { label: "Верность", value: "459" },
+ { label: "Вертикальный инцест", value: "337" },
+ { label: "Вестерн", value: "2329" },
+ { label: "Ветераны", value: "555" },
+ { label: "Ветеринары", value: "629" },
+ { label: "Вечеринки", value: "854" },
+ { label: "Вечная молодость", value: "2405" },
+ { label: "Вещие сны", value: "1993" },
+ { label: "Взаимопонимание", value: "2887" },
+ { label: "Взросление", value: "909" },
+ { label: "Вигиланты", value: "1514" },
+ { label: "Видеоигры", value: "2508" },
+ { label: "Визажисты / Гримеры", value: "1801" },
+ { label: "Викинги", value: "676" },
+ { label: "Виктимблейминг", value: "331" },
+ { label: "Викторианская эпоха", value: "469" },
+ { label: "Виртуальная реальность", value: "803" },
+ { label: "Виртуальный секс", value: "268" },
+ { label: "Витилиго", value: "1167" },
+ { label: "Вице-королевство Новая Испания", value: "2603" },
+ { label: "ВИЧ / СПИД", value: "542" },
+ { label: "Влюбленность", value: "1303" },
+ { label: "Вне закона", value: "1089" },
+ { label: "Внутренний сексизм", value: "2155" },
+ { label: "Внутренняя гомофобия", value: "2154" },
+ { label: "Внутренняя трансфобия", value: "2716" },
+ { label: "Водители / Шоферы", value: "879" },
+ { label: "Военные", value: "313" },
+ { label: "Военные городки", value: "2095" },
+ { label: "Военные преступления", value: "2356" },
+ { label: "Возвращение", value: "1522" },
+ { label: "Возвращение Артура", value: "2570" },
+ { label: "Воздержание", value: "921" },
+ { label: "Воздушная атлетика", value: "2811" },
+ { label: "Война", value: "232" },
+ { label: "Война в Афганистане", value: "1050" },
+ { label: "Война во Вьетнаме", value: "1332" },
+ { label: "Война за независимость США", value: "2065" },
+ { label: "Война миров", value: "1222" },
+ { label: "Волдигуд", value: "1874" },
+ { label: "Волейбол", value: "1095" },
+ { label: "Волк в овечьей шкуре", value: "2228" },
+ { label: "Волонтеры", value: "900" },
+ { label: "Волшебники / Волшебницы", value: "93" },
+ { label: "Воображаемые друзья", value: "738" },
+ { label: "Ворарефилия", value: "157" },
+ { label: "Воры", value: "320" },
+ { label: "Воскрешение", value: "256" },
+ { label: "Воспоминания", value: "1118" },
+ { label: "Воссоединение", value: "498" },
+ { label: "Восстание машин", value: "817" },
+ { label: "Восточное побережье", value: "770" },
+ { label: "Восьмое марта", value: "493" },
+ { label: "Вражда", value: "681" },
+ { label: "Вражда семей", value: "2867" },
+ { label: "Врачи", value: "374" },
+ { label: "Времена Мародеров", value: "1872" },
+ { label: "Времена Основателей", value: "1891" },
+ { label: "Временная смерть персонажа", value: "439" },
+ { label: "Временное бессмертие", value: "2755" },
+ { label: "Временное воскрешение персонажей", value: "2649" },
+ { label: "Временные петли", value: "147" },
+ { label: "Временные превращения", value: "927" },
+ { label: "Врожденные заболевания", value: "1781" },
+ { label: "Всадники Апокалипсиса", value: "1326" },
+ { label: "Все живы / Никто не умер", value: "535" },
+ { label: "Все за Одного — отец Изуку", value: "2421" },
+ { label: "Всезнающий рассказчик", value: "1368" },
+ { label: "Вселение в тело", value: "1181" },
+ { label: "Вторая мировая", value: "488" },
+ { label: "Вторжение пришельцев", value: "755" },
+ { label: "Вторичный стыд", value: "1393" },
+ { label: "Второй шанс", value: "1799" },
+ { label: "Второстепенные оригинальные персонажи", value: "1536" },
+ { label: "Вуайеризм", value: "174" },
+ { label: "Вуду", value: "678" },
+ { label: "Выбор", value: "2808" },
+ { label: "Выгорание", value: "2914" },
+ { label: "Выживание", value: "216" },
+ { label: "Вымирающий вид", value: "2373" },
+ { label: "Вымышленная анатомия", value: "1317" },
+ { label: "Вымышленная география", value: "1294" },
+ { label: "Вымышленная религия", value: "2062" },
+ { label: "Вымышленная физика", value: "2132" },
+ { label: "Вымышленные виды спорта", value: "1777" },
+ { label: "Вымышленные заболевания", value: "1295" },
+ { label: "Вымышленные науки", value: "1333" },
+ { label: "Вымышленные праздники", value: "1769" },
+ { label: "Вымышленные профессии", value: "1391" },
+ { label: "Вымышленные существа", value: "1685" },
+ { label: "Вымышленные языки", value: "536" },
+ { label: "Выпускные", value: "717" },
+ { label: "Высшее общество", value: "1093" },
+ { label: "Высшие учебные заведения", value: "97" },
+ { label: "Выученная беспомощность", value: "2772" },
+ { label: "Выхаживание", value: "511" },
+ { label: "Выход из нездоровых отношений", value: "2891" },
+ { label: "Гадалки / Ясновидящие", value: "2662" },
+ { label: "Гадкий утенок", value: "1225" },
+ { label: "Газлайтинг", value: "1418" },
+ { label: "Галлюцинации / Иллюзии", value: "365" },
+ { label: "Гаремник", value: "50" },
+ { label: "Гаремы", value: "115" },
+ { label: "Гарпии", value: "1482" },
+ { label: "Гарри Поттер и Драко Малфой — друзья", value: "1923" },
+ { label: "Гастроли", value: "2487" },
+ { label: "Гедонизм", value: "736" },
+ { label: "Гей-клубы", value: "2482" },
+ { label: "Геймеры", value: "356" },
+ { label: "Геймлит", value: "23" },
+ { label: "Гейши / Кисэн", value: "332" },
+ { label: "Гемофилия", value: "1341" },
+ { label: "Гендерная дисфория", value: "431" },
+ { label: "Гендерная интрига", value: "55" },
+ { label: "Гендерное неравенство", value: "2568" },
+ { label: "Гендерный нонконформизм", value: "1417" },
+ { label: "Гендерсвап", value: "1691" },
+ { label: "Генетика / Эволюция", value: "2131" },
+ { label: "Гении", value: "445" },
+ { label: "Генитальные пытки", value: "2104" },
+ { label: "Геноцид", value: "720" },
+ { label: "Геокинез", value: "2889" },
+ { label: "Геологи / Географы", value: "934" },
+ { label: "Германия", value: "688" },
+ { label: "Германия — не Священная Римская Империя", value: "2470" },
+ { label: "Герой поневоле", value: "2145" },
+ { label: "Геронтофилия", value: "162" },
+ { label: "Гетерохромия", value: "1210" },
+ { label: "Гетто", value: "1783" },
+ { label: "Гибристофилия", value: "1843" },
+ { label: "Гиганты", value: "735" },
+ { label: "Гидра трэш-пати", value: "2804" },
+ { label: "Гики", value: "482" },
+ { label: "Гильдии", value: "957" },
+ { label: "Гимнастика", value: "1974" },
+ { label: "Гиперакузия", value: "2866" },
+ { label: "Гиперсексуальность", value: "945" },
+ { label: "Гипноз", value: "700" },
+ { label: "Гладиаторы", value: "677" },
+ { label: "Глобальные катастрофы", value: "525" },
+ { label: "Глухота", value: "595" },
+ { label: "Гнев", value: "2806" },
+ { label: "Гнездование", value: "1452" },
+ { label: "Гномы", value: "138" },
+ { label: "Гоблины", value: "188" },
+ { label: "Големы", value: "1208" },
+ { label: "Голод", value: "868" },
+ { label: "Голодные Фэндомные Игры", value: "2895" },
+ { label: "Гомофобия", value: "428" },
+ { label: "Гомункулы", value: "1366" },
+ { label: "Горе / Утрата", value: "1113" },
+ { label: "Горизонтальный инцест", value: "338" },
+ { label: "Городские легенды", value: "1832" },
+ { label: "Горы", value: "702" },
+ { label: "Горячие источники", value: "2813" },
+ { label: "Гостевой брак", value: "1354" },
+ { label: "Гостиницы", value: "384" },
+ { label: "Готический роман", value: "963" },
+ { label: "Готы", value: "575" },
+ { label: "Гравиокинез", value: "1985" },
+ { label: "Гражданская война", value: "370" },
+ { label: "Гражданская война в России", value: "1282" },
+ { label: "Гражданская война в США", value: "1018" },
+ { label: "Графичные описания", value: "2854" },
+ { label: "Грейнджергад", value: "1892" },
+ { label: "Грейромантичные персонажи", value: "707" },
+ { label: "Гремлины", value: "189" },
+ { label: "Греция", value: "1040" },
+ { label: "Грифоны", value: "335" },
+ { label: "Громкий секс", value: "1184" },
+ { label: "Грубый секс", value: "121" },
+ { label: "Грудное кормление", value: "296" },
+ { label: "Групи", value: "2925" },
+ { label: "Групповое изнасилование", value: "2203" },
+ { label: "Групповой секс", value: "1654" },
+ { label: "Грязный реализм", value: "634" },
+ { label: "Гувернантки", value: "1179" },
+ { label: "Гули", value: "367" },
+ { label: "Гэвин Рид — андроид", value: "2692" },
+ { label: "Даб-кон", value: "57" },
+ { label: "Даби — не Тойя Тодороки", value: "2821" },
+ { label: "Даби — Тойя Тодороки", value: "2423" },
+ { label: "Дадзава", value: "2915" },
+ { label: "Дадмайт", value: "2917" },
+ { label: "Дайверы", value: "939" },
+ { label: "Дайвинг", value: "2823" },
+ { label: "Дама в беде", value: "1259" },
+ { label: "Дамбигад", value: "1863" },
+ { label: "Дамбигуд", value: "1873" },
+ { label: "Дампиры", value: "2860" },
+ { label: "Дандэрэ", value: "1364" },
+ { label: "Дарк", value: "1678" },
+ { label: "Даркнет", value: "1287" },
+ { label: "Дачи", value: "930" },
+ { label: "Двойники", value: "305" },
+ { label: "Двойное проникновение", value: "107" },
+ { label: "Двойной кноттинг", value: "2619" },
+ { label: "Двойные агенты", value: "441" },
+ { label: "Дворцовые интриги", value: "2075" },
+ { label: "Девиантное поведение", value: "1814" },
+ { label: "Девичники / Мальчишники", value: "1191" },
+ { label: "Девочки из Эквестрии", value: "2912" },
+ { label: "Дежавю", value: "2049" },
+ { label: "Декаданс", value: "2353" },
+ { label: "Деконструкция", value: "1322" },
+ { label: "Деми-персонажи", value: "723" },
+ { label: "Демиурги", value: "819" },
+ { label: "Демонология", value: "2485" },
+ { label: "Демоны", value: "73" },
+ { label: "Демоны-хранители", value: "2045" },
+ { label: "Дендрофилия", value: "491" },
+ { label: "День благодарения", value: "754" },
+ { label: "День знаний", value: "1075" },
+ { label: "День матери", value: "2979" },
+ { label: "День мертвых", value: "1074" },
+ { label: "День независимости США", value: "1008" },
+ { label: "День рождения", value: "298" },
+ { label: "День святого Валентина", value: "204" },
+ { label: "День святого Патрика", value: "1129" },
+ { label: "День смерти", value: "2251" },
+ { label: "День учителя", value: "1076" },
+ { label: "Деперсонализация", value: "1197" },
+ { label: "Депрессия", value: "354" },
+ { label: "Депривация сна", value: "551" },
+ { label: "Дереализация", value: "1198" },
+ { label: "Деревни", value: "364" },
+ { label: "Дерматозойный бред", value: "2779" },
+ { label: "Деспоты / Тираны", value: "1345" },
+ { label: "Детектив", value: "1672" },
+ { label: "Дети", value: "217" },
+ { label: "Детоненавистничество", value: "1836" },
+ { label: "Детская влюбленность", value: "186" },
+ { label: "Детские дома", value: "355" },
+ { label: "Детские лагеря", value: "222" },
+ { label: "Детские сады", value: "567" },
+ { label: "Дефекты зрения", value: "2639" },
+ { label: "Дефекты речи", value: "737" },
+ { label: "Джинны / Пери", value: "456" },
+ { label: "Джон Ватсон — преступник", value: "1932" },
+ { label: "Джуманджи — не игровой мир", value: "2799" },
+ { label: "Диабет", value: "820" },
+ { label: "Диалоги (стилизация)", value: "1139" },
+ { label: "Дизайнеры", value: "1875" },
+ { label: "Дизельпанк", value: "294" },
+ { label: "Дикие животные", value: "622" },
+ { label: "Дикий Запад", value: "293" },
+ { label: "Дилетанты", value: "2443" },
+ { label: "Динозавры", value: "670" },
+ { label: "Дипломатия", value: "1790" },
+ { label: "Дисбаланс власти", value: "732" },
+ { label: "Дискриминация", value: "2230" },
+ { label: "Дискриминация по внешности", value: "1414" },
+ { label: "Дискриминация по возрасту", value: "2843" },
+ { label: "Дислексия", value: "860" },
+ { label: "Дисморфофобия", value: "1108" },
+ { label: "Диссоциативное расстройство идентичности", value: "2127" },
+ { label: "Дистанционное обучение", value: "2592" },
+ { label: "Дисфункциональные семьи", value: "602" },
+ { label: "Дневники (стилизация)", value: "214" },
+ { label: "Добрый Сальери", value: "2522" },
+ { label: "Доверие", value: "1117" },
+ { label: "Договоры / Сделки", value: "2137" },
+ { label: "Документы / Отчеты (стилизация)", value: "752" },
+ { label: "Долголетие", value: "2130" },
+ { label: "Домашнее насилие", value: "42" },
+ { label: "Домашние животные", value: "517" },
+ { label: "Домашний арест", value: "2526" },
+ { label: "Домашний ремонт", value: "867" },
+ { label: "Домовые", value: "1423" },
+ { label: "Допросы", value: "2654" },
+ { label: "Дорожное приключение", value: "47" },
+ { label: "Драббл", value: "2935" },
+ { label: "Драки", value: "1367" },
+ { label: "Драконы", value: "43" },
+ { label: "Драма", value: "1668" },
+ { label: "Драуги", value: "2264" },
+ { label: "Древний Восток", value: "1940" },
+ { label: "Древний Египет", value: "474" },
+ { label: "Древний Китай", value: "1438" },
+ { label: "Древняя Русь", value: "466" },
+ { label: "Дремлющее зло", value: "2719" },
+ { label: "Дремлющие способности", value: "2084" },
+ { label: "Другая магическая школа", value: "1864" },
+ { label: "Другие планеты", value: "1415" },
+ { label: "Другой избранный", value: "2054" },
+ { label: "Другой факультет", value: "1866" },
+ { label: "Дружба", value: "1701" },
+ { label: "Дружба втайне", value: "2303" },
+ { label: "Дружба по расчету", value: "2331" },
+ { label: "Друзья детства", value: "343" },
+ { label: "Друзья по переписке", value: "1466" },
+ { label: "Друзья поневоле", value: "627" },
+ { label: "Друзья с привилегиями", value: "113" },
+ { label: "Друиды", value: "1199" },
+ { label: "Дрэг (субкультура)", value: "1248" },
+ { label: "Дурмстранг", value: "2389" },
+ { label: "Дурслигуд", value: "2058" },
+ { label: "Духи природы", value: "503" },
+ { label: "Духовенство", value: "478" },
+ { label: "Духовная связь", value: "2090" },
+ { label: "Духокинез", value: "2500" },
+ { label: "Дуэли", value: "446" },
+ { label: "Дьяволы", value: "2369" },
+ { label: "Дэдди-кинк", value: "165" },
+ { label: "Еда / Кулинария", value: "1195" },
+ { label: "Единороги", value: "373" },
+ { label: "Ёкаи", value: "416" },
+ { label: "Естественные враги", value: "728" },
+ { label: "Жамевю", value: "2050" },
+ { label: "Жаргон", value: "1016" },
+ { label: "Ждун Фест", value: "2936" },
+ { label: "Железнодорожники", value: "2680" },
+ { label: "Железные дороги", value: "811" },
+ { label: "Женская дружба", value: "2156" },
+ { label: "Жертвы обстоятельств", value: "1475" },
+ { label: "Жестокое обращение с животными", value: "722" },
+ { label: "Жестокость", value: "1710" },
+ { label: "Живой сосуд", value: "2072" },
+ { label: "Животные-компаньоны", value: "2371" },
+ { label: "Живые машины", value: "961" },
+ { label: "ЖиП", value: "143" },
+ { label: "Журналисты", value: "438" },
+ { label: "Заболевания", value: "1268" },
+ { label: "Заболевания крови", value: "2254" },
+ { label: "Заболевания сердца", value: "1767" },
+ { label: "Забота / Поддержка", value: "1302" },
+ { label: "Заброшенные города", value: "1276" },
+ { label: "Заброшенные здания", value: "1483" },
+ { label: "Забытый герой", value: "2337" },
+ { label: "Завещание", value: "1262" },
+ { label: "Зависимое расстройство личности", value: "2349" },
+ { label: "Зависть", value: "990" },
+ { label: "Завоевание", value: "978" },
+ { label: "Загробный мир", value: "275" },
+ { label: "Закавказье", value: "2819" },
+ { label: "Заклятые друзья", value: "1316" },
+ { label: "Закрытые города", value: "1481" },
+ { label: "Закрытые учебные заведения", value: "98" },
+ { label: "Закрытый детектив", value: "2616" },
+ { label: "Заложники", value: "845" },
+ { label: "Замки", value: "654" },
+ { label: "Замкнутое пространство", value: "2306" },
+ { label: "Замкнутый мир", value: "874" },
+ { label: "Занавесочная история", value: "1688" },
+ { label: "Запахи", value: "1385" },
+ { label: "Заповедники", value: "618" },
+ { label: "Запредельно одаренный персонаж", value: "1241" },
+ { label: "Запрет на магию", value: "2663" },
+ { label: "Запретные отношения", value: "362" },
+ { label: "Засосы / Укусы", value: "913" },
+ { label: "Застенчивость", value: "2807" },
+ { label: "Затворники", value: "1059" },
+ { label: "Затерянные миры", value: "2448" },
+ { label: "Защита любимого", value: "2492" },
+ { label: "Защитники природы", value: "628" },
+ { label: "Защищенный секс", value: "636" },
+ { label: "Звездные слезы", value: "2971" },
+ { label: "Здоровые механизмы преодоления", value: "2147" },
+ { label: "Здоровые отношения", value: "1853" },
+ { label: "Зеркала", value: "724" },
+ { label: "Зимняя Фандомная Битва", value: "254" },
+ { label: "Злобные бывшие", value: "518" },
+ { label: "Зловещая находка", value: "2275" },
+ { label: "Знаки зодиака", value: "643" },
+ { label: "Знаменитости", value: "1360" },
+ { label: "Золотая клетка", value: "480" },
+ { label: "Золотая молодежь", value: "796" },
+ { label: "Золотая Орда", value: "1143" },
+ { label: "Золушка", value: "1226" },
+ { label: "Зомби", value: "31" },
+ { label: "Зоопарки", value: "792" },
+ { label: "Зоофилия", value: "1662" },
+ { label: "Зоофобии", value: "2715" },
+ { label: "ЗППП", value: "630" },
+ { label: "ЗПР", value: "2259" },
+ { label: "Зрелые персонажи", value: "851" },
+ { label: "Иван Купала", value: "1068" },
+ { label: "Игровое расстройство", value: "949" },
+ { label: "Игрушки", value: "1346" },
+ { label: "Игры на выживание", value: "554" },
+ { label: "Игры на раздевание", value: "1535" },
+ { label: "Игры с сосками", value: "423" },
+ { label: "Игры с температурой", value: "230" },
+ { label: "Идеализация", value: "1540" },
+ { label: "Иерархический строй", value: "652" },
+ { label: "Избранные", value: "847" },
+ { label: "Избыточный физиологизм", value: "2334" },
+ { label: "Изгнанники", value: "871" },
+ { label: "Измена", value: "62" },
+ { label: "Измененное состояние сознания", value: "2242" },
+ { label: "Изменились за лето", value: "1908" },
+ { label: "Изнасилование", value: "1650" },
+ { label: "Изоляция", value: "1296" },
+ { label: "Израиль", value: "1094" },
+ { label: "Изуку Мидория — злодей", value: "2472" },
+ { label: "Иллюзионисты", value: "532" },
+ { label: "Имейджин", value: "838" },
+ { label: "Импотенция", value: "632" },
+ { label: "Импринтинг", value: "635" },
+ { label: "Импрореал", value: "2955" },
+ { label: "Импрофест", value: "2947" },
+ { label: "Имя вместо цвета", value: "2919" },
+ { label: "Инвалидность", value: "197" },
+ { label: "Индия", value: "1002" },
+ { label: "Инквизиция", value: "1130" },
+ { label: "Инопланетяне", value: "58" },
+ { label: "Инсектоиды / Арахноиды", value: "953" },
+ { label: "Инсектофилия / Арахнофилия", value: "664" },
+ { label: "Инсценированная смерть персонажа", value: "440" },
+ { label: "Интерактивная работа", value: "419" },
+ { label: "Интервью (стилизация)", value: "2446" },
+ { label: "Интернет", value: "1286" },
+ { label: "Интерсекс-персонажи", value: "299" },
+ { label: "Интрамаммарный секс", value: "840" },
+ { label: "Инфантильность", value: "1300" },
+ { label: "Инцест", value: "1651" },
+ { label: "Ипохондрия", value: "2178" },
+ { label: "Ирландия", value: "1035" },
+ { label: "Иронический детектив", value: "2638" },
+ { label: "Искра Стайлз Стилински", value: "1975" },
+ { label: "Искупление", value: "877" },
+ { label: "Искусственно вызванные чувства", value: "626" },
+ { label: "Искусственные интеллекты", value: "150" },
+ { label: "Искусственные существа", value: "2277" },
+ { label: "Искусство", value: "2257" },
+ { label: "Искусствоведы", value: "2873" },
+ { label: "Искушение", value: "776" },
+ { label: "Испания", value: "1020" },
+ { label: "Исповеди", value: "1342" },
+ { label: "Исправительные лагеря", value: "2439" },
+ { label: "Истинные", value: "1855" },
+ { label: "Историческая Хеталия", value: "1865" },
+ { label: "Исторические эпохи", value: "1698" },
+ { label: "Исторический Кантриболс", value: "2913" },
+ { label: "Историческое допущение", value: "2681" },
+ { label: "Исцеление", value: "802" },
+ { label: "Италия", value: "1003" },
+ { label: "Ихтиоморфы", value: "972" },
+ { label: "Йога", value: "483" },
+ { label: "Йоль", value: "2143" },
+ { label: "Кабаре", value: "457" },
+ { label: "Кабэ-дон", value: "2626" },
+ { label: "Казахстан", value: "1260" },
+ { label: "Казино", value: "620" },
+ { label: "Казнь", value: "548" },
+ { label: "Как ориджинал", value: "1032" },
+ { label: "Каламбуры", value: "881" },
+ { label: "Каминг-аут", value: "559" },
+ { label: "Канада", value: "695" },
+ { label: "Каникулы", value: "805" },
+ { label: "Каннибализм", value: "1706" },
+ { label: "Канонная смерть персонажа", value: "564" },
+ { label: "Капитан Гидра", value: "1928" },
+ { label: "Карантинные зоны", value: "1290" },
+ { label: "Карантины", value: "2734" },
+ { label: "Караоке", value: "886" },
+ { label: "Карательная психиатрия", value: "730" },
+ { label: "Карибский бассейн", value: "1172" },
+ { label: "Карма", value: "647" },
+ { label: "Карьеризм", value: "956" },
+ { label: "Каскадеры", value: "2267" },
+ { label: "Катарсис", value: "824" },
+ { label: "Кафе / Кофейни / Чайные", value: "13" },
+ { label: "Квай-Гад", value: "2894" },
+ { label: "Квантовая физика", value: "2744" },
+ { label: "Квисины", value: "2722" },
+ { label: "Кемономими", value: "997" },
+ { label: "Кемпинг", value: "182" },
+ { label: "Кентавры", value: "64" },
+ { label: "Кибербуллинг", value: "1858" },
+ { label: "Киберпанк", value: "24" },
+ { label: "Киберспорт", value: "745" },
+ { label: "Кибертрон", value: "2775" },
+ { label: "Киборги", value: "154" },
+ { label: "Киевская Русь", value: "515" },
+ { label: "Кинк на беременность", value: "2281" },
+ { label: "Кинк на волосы", value: "2089" },
+ { label: "Кинк на волосы на теле", value: "1337" },
+ { label: "Кинк на девственность", value: "2282" },
+ { label: "Кинк на инвалидность", value: "633" },
+ { label: "Кинк на интеллект", value: "2798" },
+ { label: "Кинк на клыки", value: "2325" },
+ { label: "Кинк на колготки", value: "2644" },
+ { label: "Кинк на крылья", value: "2035" },
+ { label: "Кинк на латекс", value: "134" },
+ { label: "Кинк на мольбы", value: "1543" },
+ { label: "Кинк на наручники", value: "1065" },
+ { label: "Кинк на нижнее белье", value: "145" },
+ { label: "Кинк на очки", value: "1723" },
+ { label: "Кинк на ошейники", value: "388" },
+ { label: "Кинк на полноту", value: "552" },
+ { label: "Кинк на похвалу", value: "1042" },
+ { label: "Кинк на протезы", value: "2682" },
+ { label: "Кинк на рога", value: "2320" },
+ { label: "Кинк на руки", value: "915" },
+ { label: "Кинк на сердцебиение", value: "941" },
+ { label: "Кинк на силу", value: "1476" },
+ { label: "Кинк на слезы", value: "1373" },
+ { label: "Кинк на служение", value: "2980" },
+ { label: "Кинк на страх", value: "2246" },
+ { label: "Кинк на стыд", value: "747" },
+ { label: "Кинк на унижение", value: "2291" },
+ { label: "Кинк на униформу", value: "1350" },
+ { label: "Кинк на уши", value: "2370" },
+ { label: "Кинк на формальную одежду", value: "1064" },
+ { label: "Кинк на чужую одежду", value: "2920" },
+ { label: "Кинк на чулки", value: "810" },
+ { label: "Кинк на шрамы", value: "2831" },
+ { label: "Кинк на щекотку", value: "2396" },
+ { label: "Кинк-бинго", value: "2290" },
+ { label: "Кинки / Фетиши", value: "1659" },
+ { label: "Кинотеатры", value: "981" },
+ { label: "Киригакуре", value: "2475" },
+ { label: "Китай", value: "757" },
+ { label: "Кладбища", value: "501" },
+ { label: "Кланы", value: "2879" },
+ { label: "Классизм", value: "1927" },
+ { label: "Клейма", value: "1548" },
+ { label: "Клептомания", value: "1160" },
+ { label: "Клетка Люцифера", value: "1884" },
+ { label: "Клетки", value: "1069" },
+ { label: "Клиническая смерть", value: "2068" },
+ { label: "Клокпанк / Ветропанк", value: "1812" },
+ { label: "Клоны", value: "358" },
+ { label: "Клоуны", value: "1520" },
+ { label: "Клубы по интересам", value: "1369" },
+ { label: "Клюква", value: "1001" },
+ { label: "Кляпы / Затыкание рта", value: "379" },
+ { label: "Книги", value: "2746" },
+ { label: "Книжные магазины", value: "444" },
+ { label: "Кноттинг", value: "99" },
+ { label: "Ковбои", value: "330" },
+ { label: "Кода", value: "1943" },
+ { label: "Кожаная одежда", value: "1517" },
+ { label: "Колдовстворец", value: "2600" },
+ { label: "Кома", value: "516" },
+ { label: "Командная работа", value: "708" },
+ { label: "Комики", value: "1315" },
+ { label: "Комиксисты / Мангаки", value: "576" },
+ { label: "Коммунальные квартиры", value: "1437" },
+ { label: "Коммуны", value: "797" },
+ { label: "Комнатные растения", value: "1792" },
+ { label: "Комплекс Бога", value: "2087" },
+ { label: "Комплекс превосходства", value: "2191" },
+ { label: "Комплексы", value: "2529" },
+ { label: "Конкурс от BUBBLE", value: "2937" },
+ { label: "Конный спорт", value: "1378" },
+ { label: "Конохагакуре", value: "2477" },
+ { label: "Конспирология", value: "1911" },
+ { label: "Контрабандисты", value: "2363" },
+ { label: "Контроль / Подчинение", value: "932" },
+ { label: "Контроль памяти", value: "2540" },
+ { label: "Контроль сознания", value: "257" },
+ { label: "Конфликт мировоззрений", value: "2678" },
+ { label: "Концентрационные лагеря", value: "547" },
+ { label: "Концерты / Выступления", value: "1236" },
+ { label: "Конюшни", value: "514" },
+ { label: "Копирование сознания", value: "1231" },
+ { label: "Копирование способностей", value: "1825" },
+ { label: "Копро-кинк", value: "763" },
+ { label: "Корё", value: "1142" },
+ { label: "Корейская война", value: "2187" },
+ { label: "Коренные народы", value: "1505" },
+ { label: "Королевства", value: "2794" },
+ { label: "Корпорация BOBSOC", value: "2940" },
+ { label: "Корректирующее изнасилование", value: "2856" },
+ { label: "Коррупция", value: "2150" },
+ { label: "Косвенные убийства", value: "2846" },
+ { label: "Космоопера", value: "48" },
+ { label: "Космос", value: "236" },
+ { label: "Косплееры", value: "944" },
+ { label: "Кочевники", value: "1793" },
+ { label: "Кошмары", value: "1228" },
+ { label: "Красная нить судьбы", value: "608" },
+ { label: "Крепости / Башни", value: "2321" },
+ { label: "Крестовые походы", value: "2070" },
+ { label: "Крестражи", value: "2238" },
+ { label: "Кризис гендера", value: "1406" },
+ { label: "Кризис ориентации", value: "1405" },
+ { label: "Криминалистическая экспертиза", value: "2361" },
+ { label: "Криминальная пара", value: "1920" },
+ { label: "Криокинез", value: "1804" },
+ { label: "Криптиды", value: "60" },
+ { label: "Криптоистория", value: "179" },
+ { label: "Кровь / Травмы", value: "800" },
+ { label: "Кроссдрессинг", value: "65" },
+ { label: "Кроссовер", value: "10" },
+ { label: "Кроули — Архангел Рафаэль", value: "2471" },
+ { label: "Круизы", value: "2488" },
+ { label: "Крушение «Титаника»", value: "2200" },
+ { label: "Крылатые", value: "92" },
+ { label: "Крэк", value: "1408" },
+ { label: "Ксенофилия", value: "1711" },
+ { label: "Ксенофобия", value: "589" },
+ { label: "Куба", value: "773" },
+ { label: "Кудэрэ", value: "1216" },
+ { label: "Куклы", value: "1221" },
+ { label: "Куколдинг", value: "524" },
+ { label: "Культ Дракона", value: "2244" },
+ { label: "Кумогакуре", value: "2474" },
+ { label: "Куннилингус", value: "172" },
+ { label: "Купальни", value: "964" },
+ { label: "Курение", value: "202" },
+ { label: "Курортный роман", value: "181" },
+ { label: "Курьеры", value: "2735" },
+ { label: "Лабиринты", value: "1981" },
+ { label: "Лаборатории", value: "1115" },
+ { label: "Лабораторные опыты", value: "146" },
+ { label: "Лав-отели", value: "801" },
+ { label: "Лавандовый брак", value: "1357" },
+ { label: "Лакросс", value: "830" },
+ { label: "Лапслок", value: "267" },
+ { label: "Латентная гомосексуальность", value: "2339" },
+ { label: "ЛГБТ-родители", value: "2723" },
+ { label: "Лебединая верность", value: "537" },
+ { label: "Левитация", value: "1281" },
+ { label: "Легкая атлетика", value: "1797" },
+ { label: "Лекарственная зависимость", value: "2632" },
+ { label: "Леса", value: "703" },
+ { label: "Летние ОтМетки", value: "2956" },
+ { label: "Летние школы", value: "2803" },
+ { label: "Лето девяносто девятого", value: "1990" },
+ { label: "Лжебоги", value: "2869" },
+ { label: "Лингвистический кинк", value: "2042" },
+ { label: "Лирика", value: "2005" },
+ { label: "Лихтенштейн", value: "1023" },
+ { label: "Личность против системы", value: "1912" },
+ { label: "Ложная беременность", value: "1428" },
+ { label: "Ложные воспоминания", value: "376" },
+ { label: "Ложные обвинения", value: "1204" },
+ { label: "Локальный постапокалипсис", value: "2455" },
+ { label: "Лолита (субкультура)", value: "1207" },
+ { label: "Ломка", value: "1846" },
+ { label: "Лошади", value: "1083" },
+ { label: "Лугнасад", value: "2621" },
+ { label: "Лудомания", value: "947" },
+ { label: "Лучники", value: "1521" },
+ { label: "Любить луну", value: "2901" },
+ { label: "Любовная магия", value: "2317" },
+ { label: "Любовный магнит", value: "1407" },
+ { label: "Любовный многоугольник", value: "63" },
+ { label: "Любовь с первого взгляда", value: "813" },
+ { label: "Любовь/Ненависть", value: "1703" },
+ { label: "Люди", value: "1538" },
+ { label: "Людоеды", value: "1288" },
+ { label: "Магазины", value: "1063" },
+ { label: "Магическая связь", value: "2720" },
+ { label: "Магические клятвы", value: "2245" },
+ { label: "Магические лавки", value: "2629" },
+ { label: "Магические учебные заведения", value: "1338" },
+ { label: "Магический реализм", value: "9" },
+ { label: "Магия", value: "1419" },
+ { label: "Магия крови", value: "2857" },
+ { label: "Маленькие города", value: "221" },
+ { label: "Малфоигуд", value: "1890" },
+ { label: "Мамми-кинк", value: "273" },
+ { label: "Мандалорцы", value: "2870" },
+ { label: "Манекены", value: "1509" },
+ { label: "Манипуляции", value: "992" },
+ { label: "Марафонный секс", value: "316" },
+ { label: "Маргиналы", value: "394" },
+ { label: "Марди Гра", value: "2407" },
+ { label: "Маскарады / Балы", value: "443" },
+ { label: "Массаж", value: "2218" },
+ { label: "Мастурбация", value: "226" },
+ { label: "Матриархат", value: "706" },
+ { label: "Матчасть", value: "2328" },
+ { label: "Махотокоро", value: "2943" },
+ { label: "Маяки", value: "1356" },
+ { label: "Мегаломания", value: "985" },
+ { label: "Мегаполисы", value: "451" },
+ { label: "Медицинский кинк", value: "748" },
+ { label: "Медицинское использование наркотиков", value: "925" },
+ { label: "Медовый месяц", value: "2235" },
+ { label: "Медсестры / Медбратья", value: "2236" },
+ { label: "Межбедренный секс", value: "931" },
+ { label: "Междумирье", value: "2280" },
+ { label: "Межэтнические отношения", value: "2121" },
+ { label: "Мейлдом", value: "59" },
+ { label: "Мексика", value: "768" },
+ { label: "Меланхолия", value: "2108" },
+ { label: "Мелодрама", value: "2881" },
+ { label: "Менструация", value: "1570" },
+ { label: "Ментальная тюрьма", value: "2294" },
+ { label: "Месть", value: "907" },
+ { label: "Металлисты", value: "1206" },
+ { label: "Металлокинез", value: "1532" },
+ { label: "Метафизические существа", value: "2097" },
+ { label: "Метки", value: "1398" },
+ { label: "Метросексуалы", value: "558" },
+ { label: "Механофилия / Технофилия", value: "587" },
+ { label: "Мечники", value: "2783" },
+ { label: "Мечты", value: "993" },
+ { label: "Миддлпанк", value: "2076" },
+ { label: "Мизофилия", value: "1970" },
+ { label: "Микро / Макро", value: "407" },
+ { label: "Микрофикшен", value: "417" },
+ { label: "Мимикрия", value: "2083" },
+ { label: "Минет", value: "231" },
+ { label: "Министерство Магии", value: "1917" },
+ { label: "Минотавры", value: "2820" },
+ { label: "Мир без гомофобии", value: "2660" },
+ { label: "Мир Желаний (Однажды в сказке)", value: "2923" },
+ { label: "Мир Института Войны", value: "2379" },
+ { label: "Мироустройство", value: "989" },
+ { label: "Мистерия", value: "2012" },
+ { label: "Мистика", value: "1671" },
+ { label: "Мистическая беременность", value: "1784" },
+ { label: "Мистические защитники", value: "2162" },
+ { label: "Мифы и мифология", value: "18" },
+ { label: "Мнимая беременность", value: "1096" },
+ { label: "Мнимая проза", value: "1098" },
+ { label: "Мнимая свобода", value: "2708" },
+ { label: "Многодетные семьи", value: "2785" },
+ { label: "Множественное проникновение", value: "2059" },
+ { label: "Множественные оргазмы", value: "317" },
+ { label: "Множественные финалы", value: "312" },
+ { label: "Могучие Рейнджеры: Дино Заряд", value: "2931" },
+ { label: "Могучие Рейнджеры: Мегафорс", value: "2930" },
+ { label: "Могучие Рейнджеры: Мистическая Сила", value: "2933" },
+ { label: "Могучие Рейнджеры: Самураи", value: "2929" },
+ { label: "Могучие Рейнджеры: Успеть на помощь", value: "2934" },
+ { label: "Могучие Рейнджеры: Ярость Джунглей", value: "2932" },
+ { label: "Модели", value: "399" },
+ { label: "Модельеры", value: "598" },
+ { label: "Модельный бизнес", value: "435" },
+ { label: "Модификации тела", value: "890" },
+ { label: "Молдова", value: "2967" },
+ { label: "Молчание", value: "2465" },
+ { label: "Монастыри", value: "352" },
+ { label: "Монахи", value: "353" },
+ { label: "Монолог", value: "2333" },
+ { label: "Монстрофилия", value: "94" },
+ { label: "Монстры", value: "529" },
+ { label: "Моральные дилеммы", value: "959" },
+ { label: "Морлед", value: "2255" },
+ { label: "Моря / Океаны", value: "955" },
+ { label: "Моряки", value: "406" },
+ { label: "Мотоспорт", value: "1461" },
+ { label: "Мужская беременность", value: "1660" },
+ { label: "Мужская дружба", value: "2157" },
+ { label: "Мужское грудное кормление", value: "297" },
+ { label: "Музеи / Галереи", value: "795" },
+ { label: "Музы", value: "2001" },
+ { label: "Музыканты", value: "141" },
+ { label: "Муковисцидоз", value: "2764" },
+ { label: "Мультикроссовер", value: "2247" },
+ { label: "Мумии", value: "579" },
+ { label: "Мутанты", value: "740" },
+ { label: "Мэри Сью (Марти Стью)", value: "1655" },
+ { label: "Мятежи / Восстания", value: "584" },
+ { label: "На грани жизни и смерти", value: "2545" },
+ { label: "Наблюдатели", value: "1816" },
+ { label: "Навязчивая опека", value: "954" },
+ { label: "Навязчивые мысли", value: "2851" },
+ { label: "Наги", value: "90" },
+ { label: "Надежда", value: "2627" },
+ { label: "Наемники", value: "512" },
+ { label: "Наемные убийцы", value: "192" },
+ { label: "Названные сиблинги", value: "2927" },
+ { label: "Намеки на отношения", value: "1387" },
+ { label: "Намеки на секс", value: "1382" },
+ { label: "Напарники", value: "1291" },
+ { label: "Наперегонки со временем", value: "2240" },
+ { label: "НапиСанта", value: "2946" },
+ { label: "Наполеоновские войны", value: "470" },
+ { label: "Нарколепсия", value: "586" },
+ { label: "Наркоторговля", value: "1116" },
+ { label: "Нарушение этических норм", value: "968" },
+ { label: "Нарциссизм", value: "546" },
+ { label: "Насекомые", value: "2358" },
+ { label: "Насилие", value: "1649" },
+ { label: "Насилие над детьми", value: "726" },
+ { label: "Наследие (Гарри Поттер)", value: "1935" },
+ { label: "Наследство", value: "2172" },
+ { label: "Наставничество", value: "935" },
+ { label: "Настольные игры", value: "1513" },
+ { label: "Настольные ролевые игры", value: "644" },
+ { label: "Натуризм / Нудизм", value: "1810" },
+ { label: "Наука", value: "2624" },
+ { label: "Научная фантастика", value: "596" },
+ { label: "Научно-исследовательские организации", value: "1503" },
+ { label: "Научное фэнтези", value: "180" },
+ { label: "Начало отношений", value: "1328" },
+ { label: "Небинарные персонажи", value: "314" },
+ { label: "Невезение", value: "2689" },
+ { label: "Невзаимные предначертанные", value: "1484" },
+ { label: "Невзаимные чувства", value: "105" },
+ { label: "Невидимость", value: "359" },
+ { label: "Невидимый мир", value: "2286" },
+ { label: "Неграфичные описания", value: "2855" },
+ { label: "Недоверие", value: "1842" },
+ { label: "Недопонимания", value: "614" },
+ { label: "Недостатки внешности", value: "923" },
+ { label: "Нежелательная беременность", value: "715" },
+ { label: "Нежелательные сверхспособности", value: "1335" },
+ { label: "Нежелательные чувства", value: "2078" },
+ { label: "Нежный секс", value: "280" },
+ { label: "Незащищенный секс", value: "497" },
+ { label: "Нездоровые механизмы преодоления", value: "1528" },
+ { label: "Нездоровые отношения", value: "71" },
+ { label: "Нездоровый образ жизни", value: "2148" },
+ { label: "Нездоровый BDSM", value: "1062" },
+ { label: "Неидеальный омегаверс", value: "2712" },
+ { label: "Неизвестность", value: "2826" },
+ { label: "Неизвестные родственники", value: "2752" },
+ { label: "Неизлечимые заболевания", value: "1269" },
+ { label: "Нейтрализация сверхспособностей", value: "2343" },
+ { label: "Некромаги", value: "679" },
+ { label: "Некрофилия", value: "1663" },
+ { label: "Нелинейное повествование", value: "1699" },
+ { label: "Неловкий секс", value: "2883" },
+ { label: "Неловкость", value: "2459" },
+ { label: "Нелюбящие родители", value: "2817" },
+ { label: "Немертвые", value: "495" },
+ { label: "Немота", value: "414" },
+ { label: "Ненависть", value: "685" },
+ { label: "Ненависть к себе", value: "1441" },
+ { label: "Ненависть с первого взгляда", value: "814" },
+ { label: "Ненадежный рассказчик", value: "322" },
+ { label: "Ненасильственная смерть", value: "2531" },
+ { label: "Необитаемые острова", value: "1196" },
+ { label: "Необратимые превращения", value: "926" },
+ { label: "Неозвученные чувства", value: "258" },
+ { label: "Неприятие отношений", value: "2056" },
+ { label: "Неравные отношения", value: "545" },
+ { label: "Неравный брак", value: "409" },
+ { label: "Неразрывная связь", value: "2569" },
+ { label: "Нервный срыв", value: "1190" },
+ { label: "Нерды", value: "481" },
+ { label: "Нереалистичность", value: "2350" },
+ { label: "Несексуальная близость", value: "2874" },
+ { label: "Нестандартная поэзия", value: "1704" },
+ { label: "Несчастливые отношения", value: "2080" },
+ { label: "Несчастливый финал", value: "61" },
+ { label: "Несчастные случаи", value: "499" },
+ { label: "Нетаймори", value: "2323" },
+ { label: "Неторопливое повествование", value: "1815" },
+ { label: "Нетрадиционное использование Силы", value: "2520" },
+ { label: "Неумышленное употребление наркотических веществ", value: "1192" },
+ { label: "Неуставные отношения", value: "1396" },
+ { label: "Нефилимы", value: "1086" },
+ { label: "Неформальный брак", value: "1355" },
+ { label: "Нецензурная лексика", value: "1653" },
+ { label: "Нечеловеческая мораль", value: "2551" },
+ { label: "Нечеловеческие виды", value: "995" },
+ { label: "Нечистая сила", value: "1464" },
+ { label: "Нидерланды", value: "1141" },
+ { label: "Низкая самооценка", value: "2014" },
+ { label: "Низкое фэнтези", value: "2007" },
+ { label: "Нимфы", value: "1477" },
+ { label: "Ниндзя", value: "471" },
+ { label: "Новая жизнь", value: "2018" },
+ { label: "Новая Зеландия", value: "1789" },
+ { label: "Новеллизация", value: "262" },
+ { label: "Новые отношения", value: "1827" },
+ { label: "Новый год", value: "206" },
+ { label: "Новый канон ЗВ", value: "1948" },
+ { label: "Норны", value: "2206" },
+ { label: "Ностальгия", value: "878" },
+ { label: "Ночное видение", value: "2006" },
+ { label: "Ночные клубы", value: "531" },
+ { label: "Нуар", value: "137" },
+ { label: "Няни", value: "570" },
+ { label: "Обездвиживание", value: "116" },
+ { label: "Обещания / Клятвы", value: "1823" },
+ { label: "Обиды", value: "905" },
+ { label: "Обман / Заблуждение", value: "650" },
+ { label: "Обмен квами", value: "2572" },
+ { label: "Обмен ролями", value: "1055" },
+ { label: "Обмен телами", value: "49" },
+ { label: "Обмороки", value: "2484" },
+ { label: "Обнажение", value: "970" },
+ { label: "Оборотни", value: "28" },
+ { label: "Обоснованный ООС", value: "2549" },
+ { label: "Образ тела", value: "2289" },
+ { label: "Обратный омегаверс", value: "2435" },
+ { label: "Обретенные семьи", value: "601" },
+ { label: "Обреченные отношения", value: "653" },
+ { label: "Обскуры", value: "2237" },
+ { label: "Обсуждение кинков", value: "1072" },
+ { label: "Обусловленная контекстом гомофобия", value: "2685" },
+ { label: "Обусловленный контекстом расизм", value: "2686" },
+ { label: "Обусловленный контекстом сексизм", value: "2687" },
+ { label: "Общежития", value: "534" },
+ { label: "Общественный транспорт", value: "615" },
+ { label: "Объективация", value: "1837" },
+ { label: "Объектофилия", value: "366" },
+ { label: "Овипозиция", value: "269" },
+ { label: "Огнестрельное оружие", value: "1189" },
+ { label: "Ограбления", value: "2269" },
+ { label: "Одержимость", value: "2248" },
+ { label: "Одержимые", value: "496" },
+ { label: "Один день", value: "2647" },
+ { label: "Одиночество", value: "1015" },
+ { label: "Одичавшие дети", value: "835" },
+ { label: "Однолюбы", value: "2146" },
+ { label: "Одноминутный канонический персонаж", value: "2184" },
+ { label: "Однополый мир", value: "1462" },
+ { label: "Ожидание", value: "2909" },
+ { label: "ОЖП", value: "1657" },
+ { label: "Окаменение", value: "2052" },
+ { label: "Океания", value: "1058" },
+ { label: "Оккультизм", value: "2374" },
+ { label: "ОКР", value: "594" },
+ { label: "Окулолинктус", value: "1470" },
+ { label: "Олимпийские игры", value: "1127" },
+ { label: "Олфактофилия", value: "1945" },
+ { label: "Омегаверс", value: "1693" },
+ { label: "Омегаверс: Альфа/Альфа", value: "2437" },
+ { label: "Омегаверс: Альфа/Бета", value: "2741" },
+ { label: "Омегаверс: Альфа/Бета/Омега", value: "2898" },
+ { label: "Омегаверс: Альфа/Омега/Альфа", value: "2436" },
+ { label: "Омегаверс: Бета/Бета", value: "2966" },
+ { label: "Омегаверс: Больше трех полов", value: "2782" },
+ { label: "Омегаверс: Омега/Альфа/Омега", value: "2544" },
+ { label: "Омегаверс: Омега/Бета", value: "2965" },
+ { label: "Омегаверс: Омега/Омега", value: "2564" },
+ { label: "Омегаверс: Смена второго пола", value: "2776" },
+ { label: "Омегаверс: f!Альфа/m!Омега", value: "2777" },
+ { label: "ОМП", value: "1656" },
+ { label: "Онейрокинез", value: "2067" },
+ { label: "Онкологические заболевания", value: "540" },
+ { label: "ООС", value: "1648" },
+ { label: "Опасность", value: "2847" },
+ { label: "Опера", value: "549" },
+ { label: "Опричнина", value: "2252" },
+ { label: "Оптимизм", value: "2420" },
+ { label: "Оракулы / Провидцы", value: "2221" },
+ { label: "Оральная фиксация", value: "2523" },
+ { label: "Оргазм без стимуляции", value: "1000" },
+ { label: "Организаторы свадеб", value: "858" },
+ { label: "Орден Феникса", value: "1907" },
+ { label: "Орки", value: "187" },
+ { label: "Оружие массового поражения", value: "1193" },
+ { label: "Освоение земель", value: "1824" },
+ { label: "Оседлание", value: "1223" },
+ { label: "Османская империя", value: "527" },
+ { label: "Особняки / Резиденции", value: "500" },
+ { label: "Осознанные сновидения", value: "530" },
+ { label: "Остеокинез", value: "2845" },
+ { label: "Острова", value: "799" },
+ { label: "От антигероя к герою", value: "2173" },
+ { label: "От антигероя к злодею", value: "2213" },
+ { label: "От божественного существа к смертному", value: "2664" },
+ { label: "От возлюбленных к врагам", value: "783" },
+ { label: "От возлюбленных к друзьям", value: "782" },
+ { label: "От врагов к возлюбленным", value: "346" },
+ { label: "От врагов к друзьям", value: "347" },
+ { label: "От врагов к друзьям к возлюбленным", value: "345" },
+ { label: "От героя к антигерою", value: "2546" },
+ { label: "От героя к злодею", value: "1027" },
+ { label: "От героя к монстру", value: "2659" },
+ { label: "От героя к обычному персонажу", value: "2584" },
+ { label: "От друзей к возлюбленным", value: "344" },
+ { label: "От друзей к врагам", value: "463" },
+ { label: "От друзей к незнакомцам", value: "1870" },
+ { label: "От злодея к антигерою", value: "2640" },
+ { label: "От злодея к герою", value: "1026" },
+ { label: "От напарников к друзьям к возлюбленным", value: "2460" },
+ { label: "От нездоровых отношений к здоровым", value: "2301" },
+ { label: "От незнакомцев к возлюбленным", value: "372" },
+ { label: "От простонародья к аристократу", value: "2816" },
+ { label: "От сексуальных партнеров к возлюбленным", value: "2069" },
+ { label: "От смертного к божественному существу", value: "2665" },
+ { label: "От супругов к возлюбленным", value: "2359" },
+ { label: "Ответвление от канона", value: "2336" },
+ { label: "Ответственность", value: "2468" },
+ { label: "Отдаю на вдохновение", value: "2288" },
+ { label: "Отечественная война 1812 года", value: "1162" },
+ { label: "Отказ от чувств", value: "2227" },
+ { label: "Отклонения от канона", value: "5" },
+ { label: "Открытый финал", value: "185" },
+ { label: "ОтМетки", value: "2945" },
+ { label: "Отношения втайне", value: "285" },
+ { label: "Отношения на расстоянии", value: "37" },
+ { label: "Отношения на спор", value: "383" },
+ { label: "Отношения наполовину", value: "1573" },
+ { label: "Отпуск", value: "1828" },
+ { label: "Отрицание", value: "1868" },
+ { label: "Отрицание чувств", value: "648" },
+ { label: "Отрицательный протагонист", value: "1442" },
+ { label: "Отсутствие души", value: "1897" },
+ { label: "Отшельники", value: "543" },
+ { label: "Офисы", value: "74" },
+ { label: "Официанты / Официантки", value: "2560" },
+ { label: "Охота", value: "825" },
+ { label: "Охота на разумных существ", value: "2784" },
+ { label: "Охотники", value: "2036" },
+ { label: "Охотники за головами", value: "2103" },
+ { label: "Охотники на нечисть", value: "46" },
+ { label: "Охранники", value: "1173" },
+ { label: "Ошибки", value: "2554" },
+ { label: "Ошибочная идентификация", value: "2490" },
+ { label: "Паладины", value: "1194" },
+ { label: "Пан-персонажи", value: "302" },
+ { label: "Пандемия COVID-19", value: "2724" },
+ { label: "Панические атаки", value: "751" },
+ { label: "Паническое расстройство", value: "733" },
+ { label: "Панки", value: "625" },
+ { label: "Паразиты", value: "1877" },
+ { label: "Паралич", value: "1941" },
+ { label: "Параллельные миры", value: "378" },
+ { label: "Паранойя", value: "1253" },
+ { label: "Пари", value: "778" },
+ { label: "Парки / Зоны отдыха", value: "1005" },
+ { label: "Парки аттракционов / Ярмарки", value: "793" },
+ { label: "Паркур", value: "553" },
+ { label: "Пародия", value: "1676" },
+ { label: "Партизаны", value: "850" },
+ { label: "Парфюмеры", value: "1384" },
+ { label: "Пасха", value: "562" },
+ { label: "Патологическое бесстрашие", value: "1498" },
+ { label: "Патологическое накопительство", value: "2691" },
+ { label: "Патологоанатомы", value: "502" },
+ { label: "Патриархат", value: "705" },
+ { label: "Патриотические темы и мотивы", value: "2231" },
+ { label: "Патронусы", value: "2390" },
+ { label: "Патрули", value: "1819" },
+ { label: "Пафос", value: "2589" },
+ { label: "Пацифисты", value: "1939" },
+ { label: "Пегасы", value: "1047" },
+ { label: "Пеггинг", value: "159" },
+ { label: "Пейзажная лирика", value: "2330" },
+ { label: "Пекарни", value: "78" },
+ { label: "Первая мировая", value: "487" },
+ { label: "Первая чеченская война", value: "2428" },
+ { label: "Первобытные времена", value: "465" },
+ { label: "Первое апреля", value: "2315" },
+ { label: "Первопроходцы", value: "351" },
+ { label: "Первый контакт", value: "2093" },
+ { label: "Первый поцелуй", value: "2790" },
+ { label: "Первый раз", value: "1292" },
+ { label: "Передача магических способностей", value: "2497" },
+ { label: "Переезд", value: "658" },
+ { label: "Перезапуск мира", value: "2710" },
+ { label: "Перемирие", value: "1331" },
+ { label: "Переписки и чаты (стилизация)", value: "38" },
+ { label: "Перерыв в отношениях", value: "519" },
+ { label: "Переселение душ", value: "1237" },
+ { label: "Перестрелки", value: "2268" },
+ { label: "Переходный возраст", value: "1297" },
+ { label: "Период Эдо", value: "1140" },
+ { label: "Персекуторный бред", value: "2136" },
+ { label: "Персонажи-геи", value: "2141" },
+ { label: "Персонажи-лесбиянки", value: "2142" },
+ { label: "Персонификация", value: "994" },
+ { label: "Персонификация смерти", value: "1046" },
+ { label: "Перу", value: "2017" },
+ { label: "Перфекционизм", value: "2730" },
+ { label: "Пессимизм", value: "2709" },
+ { label: "Пет-плей", value: "391" },
+ { label: "Петербург: бикейм #Чимин Сергеевич", value: "1859" },
+ { label: "Петтинг", value: "301" },
+ { label: "Пещеры", value: "655" },
+ { label: "Пижамные вечеринки", value: "1340" },
+ { label: "Пикацизм", value: "1227" },
+ { label: "Пикники", value: "1165" },
+ { label: "Пионеры", value: "668" },
+ { label: "Пираты", value: "72" },
+ { label: "Пирокинез", value: "1180" },
+ { label: "Пиромания", value: "899" },
+ { label: "Пирсинг", value: "507" },
+ { label: "Писатели", value: "196" },
+ { label: "Письма", value: "2298" },
+ { label: "Письма (стилизация)", value: "266" },
+ { label: "Пиццерии / Дайнеры", value: "593" },
+ { label: "Плавание", value: "1135" },
+ { label: "Плантокинез", value: "2029" },
+ { label: "Пластические операции", value: "1847" },
+ { label: "Платонические отношения", value: "385" },
+ { label: "Племена", value: "1336" },
+ { label: "Плен", value: "290" },
+ { label: "Плененные путешествием", value: "2615" },
+ { label: "Плохая компания", value: "1502" },
+ { label: "Плохие друзья", value: "2445" },
+ { label: "Плохой хороший финал", value: "1265" },
+ { label: "Плюшефилия", value: "520" },
+ { label: "Пляжи", value: "766" },
+ { label: "По разные стороны", value: "897" },
+ { label: "Побег", value: "661" },
+ { label: "Побег из дома", value: "2309" },
+ { label: "Победа Волдеморта", value: "1887" },
+ { label: "Победа Гриндевальда", value: "2398" },
+ { label: "Повара", value: "2853" },
+ { label: "Повелитель смерти", value: "1909" },
+ { label: "Повествование в будущем времени", value: "2633" },
+ { label: "Повествование в настоящем времени", value: "1826" },
+ { label: "Повествование во втором лице", value: "166" },
+ { label: "Повествование от нескольких лиц", value: "1157" },
+ { label: "Повествование от первого лица", value: "1681" },
+ { label: "Повседневность", value: "1677" },
+ { label: "Повстанцы", value: "659" },
+ { label: "Повторение судьбы", value: "1997" },
+ { label: "Поглощение способностей", value: "2605" },
+ { label: "Погони / Преследования", value: "1996" },
+ { label: "Пограничный синдром", value: "710" },
+ { label: "Погребение заживо", value: "1279" },
+ { label: "Под одной крышей", value: "462" },
+ { label: "Под старину (стилизация)", value: "2486" },
+ { label: "Подарки", value: "1109" },
+ { label: "Подвешивание", value: "914" },
+ { label: "Подводный мир", value: "901" },
+ { label: "Подземелья", value: "2314" },
+ { label: "Подземный мир", value: "1453" },
+ { label: "Подлость", value: "2625" },
+ { label: "Подменыши", value: "2250" },
+ { label: "Подпольные бои", value: "1389" },
+ { label: "Подразумеваемая смерть персонажа", value: "2204" },
+ { label: "Подростки", value: "218" },
+ { label: "Подростковая беременность", value: "986" },
+ { label: "Подростковая влюбленность", value: "581" },
+ { label: "Подсознание", value: "2273" },
+ { label: "Поедание разумных существ", value: "1795" },
+ { label: "Пожарные", value: "2557" },
+ { label: "Пожилые персонажи", value: "852" },
+ { label: "Поза 69", value: "699" },
+ { label: "Поиск работы", value: "2646" },
+ { label: "Поиск родителей", value: "2033" },
+ { label: "Поклонение телу", value: "712" },
+ { label: "Покровительство", value: "2223" },
+ { label: "Покушение на жизнь", value: "1057" },
+ { label: "Покушение на свободу", value: "2655" },
+ { label: "Полиамория", value: "1705" },
+ { label: "Полиандрия", value: "761" },
+ { label: "Полигиния", value: "760" },
+ { label: "Политика", value: "1835" },
+ { label: "Политики", value: "711" },
+ { label: "Политические интриги", value: "183" },
+ { label: "Полицейские", value: "14" },
+ { label: "Половой диморфизм", value: "1780" },
+ { label: "Полубоги", value: "437" },
+ { label: "Полудемоны", value: "2872" },
+ { label: "Полудраконы", value: "2859" },
+ { label: "Полукровки", value: "368" },
+ { label: "Польша", value: "777" },
+ { label: "Полярные станции", value: "1493" },
+ { label: "Помощь врагу", value: "1325" },
+ { label: "Попаданцы: В реальный мир", value: "1499" },
+ { label: "Попаданцы: В своем теле", value: "1412" },
+ { label: "Попаданцы: В чужом теле", value: "1413" },
+ { label: "Попаданцы: Из одного фандома в другой", value: "2699" },
+ { label: "Попаданцы: Из фандома в ориджинал", value: "2193" },
+ { label: "Попаданцы: По обмену", value: "2196" },
+ { label: "Попаданчество", value: "1695" },
+ { label: "Популярность", value: "2581" },
+ { label: "Попытка изнасилования", value: "1440" },
+ { label: "Порноактеры", value: "289" },
+ { label: "Португалия", value: "1749" },
+ { label: "Порты", value: "1028" },
+ { label: "Поселки", value: "1298" },
+ { label: "После таймскипа (Haikyuu!!)", value: "2906" },
+ { label: "После таймскипа (Shingeki no Kyojin)", value: "2903" },
+ { label: "Послевоенное время", value: "1080" },
+ { label: "Последний раз", value: "2645" },
+ { label: "Последний рубеж", value: "1178" },
+ { label: "Последний шанс", value: "1209" },
+ { label: "Последствия", value: "2491" },
+ { label: "Последствия болезни", value: "2612" },
+ { label: "Послеродовая депрессия", value: "988" },
+ { label: "Посмертная любовь", value: "2670" },
+ { label: "Посмертный персонаж", value: "2653" },
+ { label: "Пост-Пацифист", value: "2408" },
+ { label: "Пост-Рейхенбах", value: "1903" },
+ { label: "Пост-третий сезон (Шерлок)", value: "1977" },
+ { label: "Постапокалиптика", value: "1697" },
+ { label: "ПостВБ", value: "2386" },
+ { label: "Постканон", value: "6" },
+ { label: "ПостРагнарек", value: "2537" },
+ { label: "ПостХог", value: "1883" },
+ { label: "ПостЭндгейм", value: "2179" },
+ { label: "Потеря девственности", value: "1234" },
+ { label: "Потеря конечностей", value: "1289" },
+ { label: "Потеря магических способностей", value: "1430" },
+ { label: "Потеря памяти", value: "36" },
+ { label: "Потеря сверхспособностей", value: "1051" },
+ { label: "Поттергад", value: "2417" },
+ { label: "Похищение", value: "224" },
+ { label: "Похороны", value: "786" },
+ { label: "Почтовые работники", value: "1821" },
+ { label: "Пошлый юмор", value: "1362" },
+ { label: "Поэма", value: "1938" },
+ { label: "Поэты", value: "357" },
+ { label: "Пояс верности", value: "1779" },
+ { label: "Правда или действие", value: "1982" },
+ { label: "Практопия", value: "2249" },
+ { label: "Пре-гет", value: "209" },
+ { label: "Пре-Рош", value: "2047" },
+ { label: "Пре-слэш", value: "207" },
+ { label: "Пре-фемслэш", value: "208" },
+ { label: "Предательство", value: "361" },
+ { label: "Предвидение", value: "1876" },
+ { label: "Предложение руки и сердца", value: "1081" },
+ { label: "Предопределенность", value: "411" },
+ { label: "Предрассудки", value: "2046" },
+ { label: "Предсмертные сообщения", value: "2174" },
+ { label: "Преканон", value: "7" },
+ { label: "ПреКербер", value: "2726" },
+ { label: "Прекрасная эпоха", value: "1809" },
+ { label: "Прелюдия", value: "2395" },
+ { label: "Пренебрежение гигиеной", value: "2921" },
+ { label: "Пренебрежение жизнью", value: "2216" },
+ { label: "Преодоление комплексов", value: "588" },
+ { label: "Преподаватели", value: "403" },
+ { label: "Преподаватель/Обучающийся", value: "2507" },
+ { label: "Преступники", value: "1446" },
+ { label: "Преступный мир", value: "12" },
+ { label: "Прибрежные города", value: "984" },
+ { label: "Приватный танец", value: "2786" },
+ { label: "Привязанность", value: "2372" },
+ { label: "Пригород", value: "452" },
+ { label: "Приемные семьи", value: "844" },
+ { label: "Признания в любви", value: "1049" },
+ { label: "Призраки", value: "26" },
+ { label: "Приключения", value: "21" },
+ { label: "Приметы / Суеверия", value: "612" },
+ { label: "Примирение", value: "660" },
+ { label: "Принудительная феминизация", value: "656" },
+ { label: "Принудительное лечение", value: "971" },
+ { label: "Принудительные отношения", value: "2302" },
+ { label: "Принудительный брак", value: "307" },
+ { label: "Принудительный инцест", value: "2942" },
+ { label: "Принуждение", value: "1323" },
+ { label: "Принятие себя", value: "2754" },
+ { label: "Прислуга", value: "804" },
+ { label: "Прист-кинк", value: "342" },
+ { label: "Приступы агрессии", value: "2788" },
+ { label: "Притча", value: "1088" },
+ { label: "Приюты для животных", value: "2345" },
+ { label: "ПРЛ", value: "1092" },
+ { label: "Проблемы доверия", value: "2208" },
+ { label: "Проблемы с законом", value: "1007" },
+ { label: "Проводники душ", value: "2348" },
+ { label: "Программисты", value: "574" },
+ { label: "Прогрессорство", value: "449" },
+ { label: "Прогулки", value: "2462" },
+ { label: "Продажа души", value: "887" },
+ { label: "Прозопагнозия", value: "2013" },
+ { label: "Производственный роман", value: "2119" },
+ { label: "Проклятия", value: "875" },
+ { label: "Пролапс", value: "2926" },
+ { label: "Промискуитет", value: "1817" },
+ { label: "Промышленные предприятия", value: "1456" },
+ { label: "Пропавшие без вести", value: "2073" },
+ { label: "Пропущенная сцена", value: "1702" },
+ { label: "Пророчества", value: "834" },
+ { label: "Просмотр порно", value: "2341" },
+ { label: "Проституция", value: "178" },
+ { label: "Протезы", value: "1581" },
+ { label: "Противоположности", value: "948" },
+ { label: "Противоречивые чувства", value: "2528" },
+ { label: "Прошлое", value: "983" },
+ { label: "Прощение", value: "1545" },
+ { label: "Псевдо-инцест", value: "336" },
+ { label: "Псевдо-мистика", value: "2159" },
+ { label: "Псевдоисторический сеттинг", value: "1479" },
+ { label: "Псионика", value: "2023" },
+ { label: "Психиатрические больницы", value: "135" },
+ { label: "Психические расстройства", value: "69" },
+ { label: "Психоз", value: "1339" },
+ { label: "Психологи / Психоаналитики", value: "611" },
+ { label: "Психологическая война", value: "2595" },
+ { label: "Психологические пытки", value: "2825" },
+ { label: "Психологические травмы", value: "40" },
+ { label: "Психологический мазохизм", value: "2212" },
+ { label: "Психологический ужас", value: "1261" },
+ { label: "Психологическое насилие", value: "836" },
+ { label: "Психология", value: "1674" },
+ { label: "Психопатия", value: "869" },
+ { label: "Психосоматические расстройства", value: "1834" },
+ { label: "Психотерапия", value: "958" },
+ { label: "ПТСР", value: "425" },
+ { label: "Публичное обнажение", value: "319" },
+ { label: "Пурпурная проза", value: "599" },
+ { label: "Пустоши", value: "1114" },
+ { label: "Пустыни", value: "692" },
+ { label: "Путешественники-исследователи", value: "888" },
+ { label: "Путешествия", value: "894" },
+ { label: "Пытки", value: "210" },
+ { label: "Пьеса", value: "434" },
+ { label: "Рабочие", value: "1771" },
+ { label: "Рабство", value: "51" },
+ { label: "Равнодушие", value: "2516" },
+ { label: "Равные отношения", value: "2728" },
+ { label: "Радикальная медицина", value: "731" },
+ { label: "Радио", value: "974" },
+ { label: "Разбойники", value: "473" },
+ { label: "Развитие отношений", value: "1404" },
+ { label: "Развод", value: "200" },
+ { label: "Разговоры", value: "1401" },
+ { label: "Раздвоение личности", value: "287" },
+ { label: "Раздельное обучение", value: "1959" },
+ { label: "Разлука / Прощания", value: "1104" },
+ { label: "Разница в возрасте", value: "2" },
+ { label: "Разница культур", value: "1079" },
+ { label: "Разновозрастная дружба", value: "2402" },
+ { label: "Разнополая дружба", value: "806" },
+ { label: "Разоблачения", value: "2684" },
+ { label: "Разочарования", value: "646" },
+ { label: "Разрушение стереотипов", value: "2805" },
+ { label: "Разрушение четвертой стены", value: "381" },
+ { label: "Разрыв связи", value: "2582" },
+ { label: "Разум роя", value: "1459" },
+ { label: "Разумное оружие", value: "2675" },
+ { label: "Разумные животные", value: "895" },
+ { label: "Разумные растения", value: "1037" },
+ { label: "Раптофилия", value: "729" },
+ { label: "Расизм", value: "433" },
+ { label: "Раскрытие личностей", value: "2120" },
+ { label: "Раскрытие магии", value: "1878" },
+ { label: "Расплата", value: "2464" },
+ { label: "Рассказ в рассказе", value: "2077" },
+ { label: "Расставание", value: "506" },
+ { label: "Расстройства аутистического спектра", value: "541" },
+ { label: "Расстройства цветового восприятия", value: "1330" },
+ { label: "Расстройства шизофренического спектра", value: "912" },
+ { label: "Растаманы", value: "857" },
+ { label: "Расширенная Вселенная ЗВ", value: "1950" },
+ { label: "Реабилитационные центры", value: "1467" },
+ { label: "Реактивное расстройство привязанности", value: "2576" },
+ { label: "Реакции (стилизация)", value: "1283" },
+ { label: "Реализм", value: "1201" },
+ { label: "Реалити-шоу", value: "2312" },
+ { label: "Ревность", value: "544" },
+ { label: "Революции", value: "585" },
+ { label: "Регенерация", value: "1530" },
+ { label: "Регресс", value: "450" },
+ { label: "Регрессия возраста", value: "102" },
+ { label: "Редкие заболевания", value: "1856" },
+ { label: "Реинкарнация", value: "101" },
+ { label: "Рейтинг за лексику", value: "276" },
+ { label: "Рейтинг за насилие и/или жестокость", value: "277" },
+ { label: "Рейтинг за секс", value: "278" },
+ { label: "Религиозная нетерпимость", value: "2451" },
+ { label: "Религиозные войны", value: "2911" },
+ { label: "Религиозные темы и мотивы", value: "198" },
+ { label: "Религиозный фанатизм", value: "2548" },
+ { label: "Ренессанс", value: "239" },
+ { label: "Репетиторы", value: "2413" },
+ { label: "Репетиции", value: "2241" },
+ { label: "Репродуктивное насилие", value: "2310" },
+ { label: "Реставраторы", value: "2239" },
+ { label: "Рестораны", value: "412" },
+ { label: "Ретеллинг", value: "52" },
+ { label: "Ретрофутуризм", value: "727" },
+ { label: "Реформация", value: "2199" },
+ { label: "Речь Посполитая", value: "1529" },
+ { label: "Риветхеды", value: "2904" },
+ { label: "Римминг", value: "170" },
+ { label: "Риск", value: "2467" },
+ { label: "Рискованная беременность", value: "998" },
+ { label: "Ритуалы", value: "749" },
+ { label: "Ритуальные услуги", value: "2362" },
+ { label: "Роботы", value: "513" },
+ { label: "Родео", value: "1314" },
+ { label: "Родители-одиночки", value: "325" },
+ { label: "Родительские чувства", value: "2308" },
+ { label: "Родомагия", value: "1899" },
+ { label: "Роды", value: "991" },
+ { label: "Рождество", value: "211" },
+ { label: "Розыгрыши", value: "1807" },
+ { label: "Рокеры", value: "861" },
+ { label: "Роковая женщина / Роковой мужчина", value: "982" },
+ { label: "Роковое усилие", value: "2604" },
+ { label: "Роллер-дерби", value: "1014" },
+ { label: "Романтизация", value: "1898" },
+ { label: "Романтика", value: "1664" },
+ { label: "Романтическая дружба", value: "2307" },
+ { label: "Ромком", value: "2768" },
+ { label: "Российская империя", value: "475" },
+ { label: "Россия", value: "701" },
+ { label: "РПП", value: "286" },
+ { label: "Румыния", value: "862" },
+ { label: "Русалки", value: "32" },
+ { label: "Русальная неделя", value: "1067" },
+ { label: "Русреал", value: "53" },
+ { label: "Руферы", value: "578" },
+ { label: "Рыбалка", value: "855" },
+ { label: "Рыцари", value: "426" },
+ { label: "Рыцарские турниры", value: "2759" },
+ { label: "С чистого листа", value: "987" },
+ { label: "Савойя", value: "1036" },
+ { label: "Садизм / Мазохизм", value: "461" },
+ { label: "Садовники", value: "1348" },
+ { label: "Сайз-кинк", value: "100" },
+ { label: "Самобытные культуры", value: "663" },
+ { label: "Самовнушение", value: "2169" },
+ { label: "Самовставка", value: "1689" },
+ { label: "Самозванцы", value: "1811" },
+ { label: "Самоистязание", value: "1386" },
+ { label: "Самоопределение / Самопознание", value: "1278" },
+ { label: "Самопожертвование", value: "750" },
+ { label: "Самосуд", value: "1402" },
+ { label: "Самоуничижение", value: "2667" },
+ { label: "Самураи", value: "472" },
+ { label: "Санатории", value: "223" },
+ { label: "Сандалпанк", value: "1986" },
+ { label: "Сарказм", value: "2225" },
+ { label: "Сатира", value: "1944" },
+ { label: "Сатиры", value: "264" },
+ { label: "Сахарный диабет", value: "2609" },
+ { label: "Сборник драбблов", value: "39" },
+ { label: "Сборник лимериков", value: "1989" },
+ { label: "Сборник пирожков", value: "743" },
+ { label: "Сборник стихотворений", value: "600" },
+ { label: "Сборник японской поэзии", value: "1351" },
+ { label: "Свадьба", value: "184" },
+ { label: "Сверхразумы", value: "966" },
+ { label: "Сверхскорость", value: "1902" },
+ { label: "Сверхспособности", value: "597" },
+ { label: "Светлые властелины", value: "2596" },
+ { label: "Светские мероприятия", value: "973" },
+ { label: "Свидание вслепую", value: "741" },
+ { label: "Свидания", value: "1235" },
+ { label: "Свидетели", value: "1242" },
+ { label: "Свингерство", value: "203" },
+ { label: "Свобода", value: "2166" },
+ { label: "Свободные отношения", value: "255" },
+ { label: "Сводничество", value: "568" },
+ { label: "Сводные родственники", value: "1445" },
+ { label: "Святые", value: "393" },
+ { label: "Сгенерировано ИИ", value: "3014" },
+ { label: "СДВГ", value: "539" },
+ { label: "Севвитус", value: "1871" },
+ { label: "Северная Корея", value: "2767" },
+ { label: "Северус Снейп жив", value: "2406" },
+ { label: "Сегрегация", value: "2158" },
+ { label: "Секретари", value: "1170" },
+ { label: "Секретные миссии", value: "1829" },
+ { label: "Секс без обязательств", value: "387" },
+ { label: "Секс в воде", value: "718" },
+ { label: "Секс в нетрезвом виде", value: "1110" },
+ { label: "Секс в одежде", value: "1013" },
+ { label: "Секс в публичных местах", value: "123" },
+ { label: "Секс в транспорте", value: "124" },
+ { label: "Секс в церкви", value: "2968" },
+ { label: "Секс во время беременности", value: "279" },
+ { label: "Секс во время болезни", value: "1365" },
+ { label: "Секс во время менструации", value: "153" },
+ { label: "Секс на камеру", value: "1101" },
+ { label: "Секс на природе", value: "1256" },
+ { label: "Секс перед зеркалом", value: "1255" },
+ { label: "Секс по расчету", value: "1212" },
+ { label: "Секс по телефону", value: "133" },
+ { label: "Секс при посторонних", value: "2514" },
+ { label: "Секс с воображаемыми партнерами", value: "2276" },
+ { label: "Секс с использованием магии", value: "1563" },
+ { label: "Секс с использованием одурманивающих веществ", value: "2635" },
+ { label: "Секс с использованием посторонних предметов", value: "1661" },
+ { label: "Секс с использованием сверхспособностей", value: "2610" },
+ { label: "Секс со смертельным исходом", value: "1171" },
+ { label: "Секс-игрушки", value: "176" },
+ { label: "Секс-индустрия", value: "447" },
+ { label: "Секс-клубы / Секс-вечеринки", value: "936" },
+ { label: "Секс-куклы", value: "1202" },
+ { label: "Секс-магия", value: "1131" },
+ { label: "Секс-машины", value: "1112" },
+ { label: "Секс-шопы", value: "739" },
+ { label: "Сексизм", value: "464" },
+ { label: "Сексомния", value: "2024" },
+ { label: "Секстинг", value: "2215" },
+ { label: "Сексуальная неопытность", value: "1717" },
+ { label: "Сексуальное насилие", value: "2495" },
+ { label: "Сексуальное обучение", value: "967" },
+ { label: "Сексуальное рабство", value: "1353" },
+ { label: "Сексуальные фобии", value: "1537" },
+ { label: "Селфхарм", value: "76" },
+ { label: "Селфцест", value: "1708" },
+ { label: "Семейная сага", value: "920" },
+ { label: "Семейные тайны", value: "779" },
+ { label: "Семейный бизнес", value: "2338" },
+ { label: "Семьи", value: "220" },
+ { label: "Сенсорная депривация", value: "282" },
+ { label: "Сенсорная перегрузка", value: "2351" },
+ { label: "Сентиментальность", value: "2567" },
+ { label: "Серая мораль", value: "839" },
+ { label: "Серая мышь", value: "1250" },
+ { label: "Серая реальность", value: "2278" },
+ { label: "Серийные насильники", value: "1942" },
+ { label: "Серийные убийцы", value: "193" },
+ { label: "Серфинг", value: "764" },
+ { label: "Сиамские близнецы", value: "1252" },
+ { label: "Сибари", value: "131" },
+ { label: "Сиблинги", value: "617" },
+ { label: "Сидение на лице", value: "713" },
+ { label: "Силкпанк", value: "1813" },
+ { label: "Симбиоз", value: "849" },
+ { label: "Символизм", value: "538" },
+ { label: "Симфорофилия", value: "492" },
+ { label: "Синдром восьмиклассника", value: "2032" },
+ { label: "Синдром выжившего", value: "1100" },
+ { label: "Синдром Дауна", value: "2106" },
+ { label: "Синдром Котара", value: "2765" },
+ { label: "Синдром Питера Пэна", value: "687" },
+ { label: "Синдром Туретта", value: "946" },
+ { label: "Синестезия", value: "960" },
+ { label: "Сирены", value: "1830" },
+ { label: "Сириус Блэк жив", value: "2617" },
+ { label: "Сироты", value: "689" },
+ { label: "Ситком", value: "2553" },
+ { label: "Сказка", value: "288" },
+ { label: "Скайпанк", value: "976" },
+ { label: "Скандинавия", value: "781" },
+ { label: "Скандинавская мифология", value: "2304" },
+ { label: "Сквиртинг", value: "950" },
+ { label: "Сквозное видение", value: "1280" },
+ { label: "Скейтбординг", value: "1395" },
+ { label: "Скелеты", value: "1766" },
+ { label: "Скинхэды", value: "1757" },
+ { label: "Скрытая беременность", value: "2580" },
+ { label: "Скрытность", value: "2577" },
+ { label: "Скрытые способности", value: "2579" },
+ { label: "Скрытый Этаж", value: "2763" },
+ { label: "Скульпторы", value: "2976" },
+ { label: "Слатшейминг", value: "2910" },
+ { label: "Следующее поколение", value: "698" },
+ { label: "Слежка", value: "2102" },
+ { label: "Слепота", value: "413" },
+ { label: "Слияние", value: "2324" },
+ { label: "Словакия", value: "2938" },
+ { label: "Словения", value: "1788" },
+ { label: "Сложные отношения", value: "326" },
+ { label: "Слом личности", value: "623" },
+ { label: "Слоуберн", value: "19" },
+ { label: "Служебные животные", value: "1506" },
+ { label: "Служебные отношения", value: "1347" },
+ { label: "Служебный роман", value: "75" },
+ { label: "Слухи / Сплетни", value: "2809" },
+ { label: "Случайные убийства", value: "2673" },
+ { label: "Случайный брак", value: "304" },
+ { label: "Случайный поцелуй", value: "2852" },
+ { label: "Случайный секс", value: "1275" },
+ { label: "Смена имени", value: "2094" },
+ { label: "Смена мировоззрения", value: "2865" },
+ { label: "Смена сущности", value: "1707" },
+ { label: "Смертельные заболевания", value: "1132" },
+ { label: "Смерть антагониста", value: "2650" },
+ { label: "Смерть всех персонажей", value: "2611" },
+ { label: "Смерть второстепенных персонажей", value: "1713" },
+ { label: "Смерть животных", value: "2210" },
+ { label: "Смерть основных персонажей", value: "1647" },
+ { label: "СМИ", value: "2656" },
+ { label: "Смирение", value: "2272" },
+ { label: "Смотрины", value: "1495" },
+ { label: "Смутное время", value: "2002" },
+ { label: "Снайперы", value: "1762" },
+ { label: "Сновидения", value: "490" },
+ { label: "Сноубординг", value: "2180" },
+ { label: "Соблазнение / Ухаживания", value: "616" },
+ { label: "Собственничество", value: "908" },
+ { label: "Советпанк", value: "397" },
+ { label: "Советский Союз", value: "468" },
+ { label: "Совместная кровать", value: "1229" },
+ { label: "Совместное купание", value: "1301" },
+ { label: "Современное искусство", value: "1087" },
+ { label: "Современность", value: "80" },
+ { label: "Согласование с каноном", value: "1388" },
+ { label: "Сожаления", value: "550" },
+ { label: "Создание общества", value: "2643" },
+ { label: "Созидание", value: "2590" },
+ { label: "Сокровища", value: "893" },
+ { label: "Сокрытие убийства", value: "2311" },
+ { label: "Солянка из Сансов", value: "2515" },
+ { label: "Сомелье / Бармены", value: "865" },
+ { label: "Сомнамбулизм", value: "1394" },
+ { label: "Сомнения", value: "1544" },
+ { label: "Сомнофилия", value: "95" },
+ { label: "Сонный паралич", value: "1203" },
+ { label: "Соперничество", value: "671" },
+ { label: "Сорванная свадьба", value: "2044" },
+ { label: "Сострадание", value: "885" },
+ { label: "Состязания", value: "910" },
+ { label: "Состязания с участием животных", value: "1154" },
+ { label: "Сотриголова — отец Хитоши Шинсо", value: "2877" },
+ { label: "Соулмейты", value: "1696" },
+ { label: "Соулмейты: Действия", value: "2575" },
+ { label: "Соулмейты: Изменение восприятия", value: "1400" },
+ { label: "Соулмейты: Контакт через кожу", value: "2608" },
+ { label: "Соулмейты: Ментальная связь", value: "2841" },
+ { label: "Соулмейты: Общая боль", value: "2583" },
+ { label: "Соулмейты: Общие эмоции", value: "2637" },
+ { label: "Соулмейты: Опознавательные фразы", value: "1399" },
+ { label: "Соулмейты: Предметы", value: "2563" },
+ { label: "Соулмейты: Предпочтения", value: "2521" },
+ { label: "Соулмейты: Разноцветные глаза", value: "2461" },
+ { label: "Соулмейты: Ранения", value: "2134" },
+ { label: "Соулмейты: Сны", value: "2414" },
+ { label: "Соулмейты: Тактильный контакт", value: "2190" },
+ { label: "Соулмейты: Татуировки", value: "2711" },
+ { label: "Соулмейты: Физические проявления", value: "2864" },
+ { label: "Социальная фантастика", value: "591" },
+ { label: "Социальные темы и мотивы", value: "1017" },
+ { label: "Социальные эксперименты", value: "2756" },
+ { label: "Социальный паразитизм", value: "2444" },
+ { label: "Социофобия", value: "826" },
+ { label: "Спарринги", value: "1575" },
+ { label: "Спасатели", value: "392" },
+ { label: "Спасение жизни", value: "1299" },
+ { label: "Спасение мира", value: "812" },
+ { label: "Спектрофилия", value: "2634" },
+ { label: "Спецагенты", value: "401" },
+ { label: "Спиритизм", value: "1478" },
+ { label: "Сплошинг", value: "424" },
+ { label: "Спонтанный секс", value: "2918" },
+ { label: "Спорт", value: "15" },
+ { label: "Спортзалы", value: "1359" },
+ { label: "Сражения", value: "2868" },
+ { label: "Средневековье", value: "238" },
+ { label: "Ссоры / Конфликты", value: "645" },
+ { label: "Стаи", value: "2884" },
+ { label: "Сталкеры / Диггеры (субкультура)", value: "1029" },
+ { label: "Сталкинг", value: "605" },
+ { label: "Становление героя", value: "680" },
+ { label: "Стёб", value: "1690" },
+ { label: "Стереотипы", value: "809" },
+ { label: "Стимпанк", value: "25" },
+ { label: "Стимуляция руками", value: "225" },
+ { label: "Стихи", value: "1692" },
+ { label: "Стихийные бедствия", value: "1352" },
+ { label: "Стихотворные вставки", value: "2404" },
+ { label: "СтихоТворцы", value: "3015" },
+ { label: "Стокгольмский синдром / Лимский синдром", value: "1217" },
+ { label: "Столетняя война", value: "2243" },
+ { label: "Сторонний рассказчик", value: "1383" },
+ { label: "Стоунпанк", value: "1987" },
+ { label: "Страдания", value: "2009" },
+ { label: "Странногеддон", value: "1882" },
+ { label: "Страны Балтии", value: "1031" },
+ { label: "Страпоны", value: "380" },
+ { label: "Страсть", value: "1955" },
+ { label: "Страх перед родителями", value: "2332" },
+ { label: "Стрельба из лука", value: "1791" },
+ { label: "Стримеры / Ютуберы", value: "1473" },
+ { label: "Стрип-клубы", value: "79" },
+ { label: "Стрит-арт", value: "1012" },
+ { label: "Строители", value: "1774" },
+ { label: "Студенты", value: "274" },
+ { label: "Студенты по обмену", value: "859" },
+ { label: "Студенческие городки", value: "753" },
+ { label: "Субкультуры", value: "1061" },
+ { label: "Субординация", value: "1099" },
+ { label: "Суд", value: "827" },
+ { label: "Суккубы / Инкубы", value: "334" },
+ { label: "Сумасшествие", value: "1239" },
+ { label: "Сунагакуре", value: "2476" },
+ { label: "Супергерои", value: "67" },
+ { label: "Суперзлодеи", value: "1205" },
+ { label: "Супермаркеты", value: "843" },
+ { label: "Суррогатная беременность", value: "1427" },
+ { label: "Сухой закон", value: "2100" },
+ { label: "Сухой оргазм", value: "2818" },
+ { label: "Сфера ИТ", value: "2534" },
+ { label: "Сфинксы", value: "1349" },
+ { label: "Сценарий (стилизация)", value: "323" },
+ { label: "Счастливый финал", value: "3" },
+ { label: "США", value: "640" },
+ { label: "Съемочная площадка", value: "410" },
+ { label: "Сын Тьмы", value: "2175" },
+ { label: "Сэнгоку Джидай", value: "2380" },
+ { label: "Сэнгоку Дзидай", value: "2834" },
+ { label: "Сэцубун", value: "2969" },
+ { label: "Сюрреализм / Фантасмагория", value: "872" },
+ { label: "Т/И / Л/И", value: "167" },
+ { label: "Таджикистан", value: "2974" },
+ { label: "Таиланд", value: "1034" },
+ { label: "Тайна происхождения", value: "662" },
+ { label: "Тайная личность", value: "194" },
+ { label: "Тайная сущность", value: "1512" },
+ { label: "Тайны / Секреты", value: "906" },
+ { label: "Тайные друзья (игра)", value: "2908" },
+ { label: "Тайные организации", value: "572" },
+ { label: "Тайные поклонники", value: "1374" },
+ { label: "Тайный НапиСанта", value: "2972" },
+ { label: "Таксисты", value: "2679" },
+ { label: "Тактильный голод", value: "2197" },
+ { label: "Тактильный контакт", value: "2875" },
+ { label: "Танабата", value: "2340" },
+ { label: "Танцы", value: "108" },
+ { label: "Танцы на пилоне", value: "1370" },
+ { label: "Таро", value: "642" },
+ { label: "Тату-салоны", value: "324" },
+ { label: "Татуировки", value: "327" },
+ { label: "Твинцест", value: "1652" },
+ { label: "Творческий кризис", value: "2107" },
+ { label: "Театры", value: "195" },
+ { label: "Телекинез", value: "951" },
+ { label: "Телепатия", value: "127" },
+ { label: "Телепортация", value: "1794" },
+ { label: "Телесные жидкости", value: "1220" },
+ { label: "Телесные наказания", value: "132" },
+ { label: "Телесный хоррор", value: "212" },
+ { label: "Телохранители", value: "400" },
+ { label: "Темная сторона (Гарри Поттер)", value: "1937" },
+ { label: "Темная сторона Силы", value: "1946" },
+ { label: "Темная Эра (Bungou Stray Dogs)", value: "2494" },
+ { label: "Темное прошлое", value: "2229" },
+ { label: "Темное фэнтези", value: "1963" },
+ { label: "Темные властелины", value: "1224" },
+ { label: "Темные эльфы", value: "2597" },
+ { label: "Темный романтизм", value: "2128" },
+ { label: "Темы ментального здоровья", value: "2344" },
+ { label: "Темы этики и морали", value: "1106" },
+ { label: "Теннис", value: "1066" },
+ { label: "Тентакли", value: "129" },
+ { label: "Теория инверсии", value: "1980" },
+ { label: "Теория Одурманивания", value: "2493" },
+ { label: "Термокинез", value: "2793" },
+ { label: "Террористы", value: "556" },
+ { label: "Теслапанк", value: "1988" },
+ { label: "Техники", value: "1272" },
+ { label: "Техногенные катастрофы", value: "526" },
+ { label: "Технокинез", value: "1271" },
+ { label: "Технологии", value: "1232" },
+ { label: "Технотриллер", value: "649" },
+ { label: "Течка / Гон", value: "283" },
+ { label: "Тим Дрейк — Джокер-младший", value: "2454" },
+ { label: "Тим Дрейк — Кэтлэд", value: "2453" },
+ { label: "Тихий секс", value: "1185" },
+ { label: "Товарищи по несчастью", value: "2666" },
+ { label: "Токсичные родственники", value: "2008" },
+ { label: "Том Реддл — не Темный Лорд", value: "2394" },
+ { label: "Томбои", value: "565" },
+ { label: "Томгерлз", value: "848" },
+ { label: "Торговля органами", value: "1358" },
+ { label: "Торговцы", value: "2098" },
+ { label: "Торговые центры", value: "1416" },
+ { label: "Тоталитаризм", value: "1169" },
+ { label: "Травники / Травницы", value: "1211" },
+ { label: "Трагедия", value: "919" },
+ { label: "Трагикомедия", value: "1454" },
+ { label: "Традиции", value: "1463" },
+ { label: "Трансгендерные персонажи", value: "175" },
+ { label: "Трансплантация", value: "2364" },
+ { label: "Трансфобия", value: "420" },
+ { label: "Тревожное расстройство личности", value: "1914" },
+ { label: "Тревожность", value: "1318" },
+ { label: "Трейлеры", value: "785" },
+ { label: "Тренировки / Обучение", value: "876" },
+ { label: "Третий лишний", value: "1176" },
+ { label: "Третья мировая", value: "624" },
+ { label: "Три корейских государства", value: "2322" },
+ { label: "Трикстеры", value: "1507" },
+ { label: "Триллер", value: "169" },
+ { label: "Трилогия Юникрона", value: "2378" },
+ { label: "Трипофобия", value: "2342" },
+ { label: "Трисам", value: "758" },
+ { label: "Трихотилломания", value: "2185" },
+ { label: "Тролли", value: "190" },
+ { label: "Трудные отношения с родителями", value: "1490" },
+ { label: "Трудный характер", value: "2123" },
+ { label: "Трудоголизм", value: "1848" },
+ { label: "Трущобы", value: "2822" },
+ { label: "Туалетный юмор", value: "1247" },
+ { label: "Туберкулез", value: "2163" },
+ { label: "Турция", value: "794" },
+ { label: "Тщеславие", value: "2578" },
+ { label: "Тюрьмы / Темницы", value: "117" },
+ { label: "Тяжелое детство", value: "2614" },
+ { label: "Убийства", value: "621" },
+ { label: "Убийственная пара", value: "1918" },
+ { label: "Убийца поневоле", value: "2671" },
+ { label: "Уважение", value: "2688" },
+ { label: "Ужасы", value: "1679" },
+ { label: "Узбекистан", value: "1293" },
+ { label: "Уизлигады", value: "1862" },
+ { label: "Украина", value: "716" },
+ { label: "Укрытия", value: "199" },
+ { label: "Уличные артисты", value: "2550" },
+ { label: "Уличные гонки", value: "880" },
+ { label: "Умбракинез", value: "2355" },
+ { label: "Универсалы", value: "657" },
+ { label: "Унижения", value: "1319" },
+ { label: "Упоминания аддикций", value: "2848" },
+ { label: "Упоминания алкоголя", value: "2415" },
+ { label: "Упоминания беременности", value: "2057" },
+ { label: "Упоминания войны", value: "2707" },
+ { label: "Упоминания жестокости", value: "2447" },
+ { label: "Упоминания зоофилии", value: "2620" },
+ { label: "Упоминания измены", value: "2876" },
+ { label: "Упоминания изнасилования", value: "521" },
+ { label: "Упоминания инвалидности", value: "2705" },
+ { label: "Упоминания инцеста", value: "2285" },
+ { label: "Упоминания каннибализма", value: "2427" },
+ { label: "Упоминания курения", value: "2450" },
+ { label: "Упоминания мужской беременности", value: "2226" },
+ { label: "Упоминания наркотиков", value: "144" },
+ { label: "Упоминания насилия", value: "2207" },
+ { label: "Упоминания нездоровых отношений", value: "2892" },
+ { label: "Упоминания проституции", value: "2618" },
+ { label: "Упоминания пыток", value: "2410" },
+ { label: "Упоминания расизма", value: "2737" },
+ { label: "Упоминания религии", value: "1048" },
+ { label: "Упоминания самоубийства", value: "77" },
+ { label: "Упоминания секса", value: "2747" },
+ { label: "Упоминания селфхарма", value: "2105" },
+ { label: "Упоминания смертей", value: "2081" },
+ { label: "Упоминания смертей животных", value: "2211" },
+ { label: "Упоминания телесного хоррора", value: "2466" },
+ { label: "Упоминания терроризма", value: "774" },
+ { label: "Упоминания убийств", value: "1501" },
+ { label: "Управление оргазмом", value: "118" },
+ { label: "Управление стихиями", value: "2091" },
+ { label: "Уретральное проникновение", value: "1469" },
+ { label: "Уро-кинк", value: "762" },
+ { label: "Условное бессмертие", value: "2117" },
+ { label: "Уся / Сянься", value: "2714" },
+ { label: "Утопия", value: "350" },
+ { label: "Утраченная тройка", value: "2535" },
+ { label: "Утренний секс", value: "2882" },
+ { label: "Уход за персонажами с инвалидностью", value: "2133" },
+ { label: "Ухудшение отношений", value: "1219" },
+ { label: "Учебные заведения", value: "1694" },
+ { label: "Ученые", value: "402" },
+ { label: "Уют", value: "2738" },
+ { label: "Фавориты", value: "2135" },
+ { label: "Фамильяры", value: "1045" },
+ { label: "Фан-Бинго", value: "2957" },
+ { label: "Фан-Фанты", value: "2953" },
+ { label: "Фандомная аналитика", value: "742" },
+ { label: "Фандомная Битва", value: "253" },
+ { label: "Фансервис", value: "2483" },
+ { label: "Фантастика", value: "1670" },
+ { label: "Фастберн", value: "2016" },
+ { label: "Фастфуд / Закусочные", value: "1025" },
+ { label: "Феи", value: "191" },
+ { label: "Фельчинг", value: "2368" },
+ { label: "Фемдом", value: "54" },
+ { label: "Феминистские темы и мотивы", value: "523" },
+ { label: "Феминитивы", value: "390" },
+ { label: "Фениксы", value: "1215" },
+ { label: "Феодализм", value: "1504" },
+ { label: "Фермы / Ранчо", value: "329" },
+ { label: "Фестивали", value: "1006" },
+ { label: "Фехтование", value: "1775" },
+ { label: "Фиггинг", value: "1439" },
+ { label: "Фигурное катание", value: "460" },
+ { label: "Физиотерапия", value: "2222" },
+ { label: "Физическая сверхсила", value: "2880" },
+ { label: "Фикрайтеры / Фикридеры", value: "1284" },
+ { label: "Фиксированная раскладка", value: "1344" },
+ { label: "Фиктивные отношения", value: "308" },
+ { label: "Фиктивный брак", value: "34" },
+ { label: "Философия", value: "1675" },
+ { label: "Финляндия", value: "1133" },
+ { label: "Фистинг", value: "151" },
+ { label: "Флафф", value: "1667" },
+ { label: "Флирт", value: "349" },
+ { label: "Флот", value: "846" },
+ { label: "Фобии", value: "977" },
+ { label: "Фольклор и предания", value: "1273" },
+ { label: "Форнифилия", value: "580" },
+ { label: "Фотографы", value: "348" },
+ { label: "Фотокинез", value: "1805" },
+ { label: "Франция", value: "691" },
+ { label: "Фред Уизли жив", value: "2941" },
+ { label: "Фроттаж", value: "96" },
+ { label: "Фуд-плей", value: "509" },
+ { label: "Фуд-фетиш", value: "2168" },
+ { label: "Фурри", value: "996" },
+ { label: "Фут-фетиш", value: "432" },
+ { label: "Футбол", value: "458" },
+ { label: "Фэйри", value: "2028" },
+ { label: "Фэнтези", value: "1669" },
+ { label: "Хакеры", value: "340" },
+ { label: "Ханами", value: "1155" },
+ { label: "Ханахаки", value: "45" },
+ { label: "Ханжество", value: "882" },
+ { label: "Характерная для канона жестокость", value: "896" },
+ { label: "Харассмент", value: "477" },
+ { label: "Хиерофилия", value: "2366" },
+ { label: "Химеры", value: "816" },
+ { label: "Химическое оружие", value: "1186" },
+ { label: "Химэдэрэ / Оджидэрэ", value: "1363" },
+ { label: "Хип-хоп (субкультура)", value: "1822" },
+ { label: "Хиппи", value: "784" },
+ { label: "Хиромантия", value: "2749" },
+ { label: "Хирургическая коррекция пола", value: "1249" },
+ { label: "Хирургические операции", value: "1845" },
+ { label: "Хобби", value: "1161" },
+ { label: "Хогсмид", value: "2388" },
+ { label: "Хоккей", value: "828" },
+ { label: "Холодная война", value: "2140" },
+ { label: "Холодное оружие", value: "1187" },
+ { label: "Хорватия", value: "1433" },
+ { label: "Хороший плохой финал", value: "1266" },
+ { label: "Хронические заболевания", value: "1267" },
+ { label: "Хронокинез", value: "1447" },
+ { label: "Хронофантастика", value: "56" },
+ { label: "Хтонические существа", value: "504" },
+ { label: "Художники", value: "140" },
+ { label: "Хуманизация", value: "177" },
+ { label: "Хэллоуин", value: "205" },
+ { label: "Хюльдры", value: "1397" },
+ { label: "Цветочные магазины", value: "164" },
+ { label: "Целители", value: "1107" },
+ { label: "Церкви", value: "533" },
+ { label: "Цикличность", value: "1979" },
+ { label: "Цирки", value: "259" },
+ { label: "Цукими", value: "1798" },
+ { label: "Цундэрэ", value: "1137" },
+ { label: "Цыгане", value: "1091" },
+ { label: "Чайлдфри", value: "592" },
+ { label: "Чайные церемонии", value: "2416" },
+ { label: "Частичный ООС", value: "1409" },
+ { label: "Частные детективы", value: "427" },
+ { label: "Черная археология", value: "2503" },
+ { label: "Черная мораль", value: "2438" },
+ { label: "Чернобыльская катастрофа", value: "775" },
+ { label: "Черный юмор", value: "66" },
+ { label: "Чехия", value: "1021" },
+ { label: "Чиновники", value: "1991" },
+ { label: "Чирлидинг", value: "1431" },
+ { label: "Чистокровные AU (Гарри Поттер)", value: "1905" },
+ { label: "Чосон", value: "571" },
+ { label: "Чувство вины", value: "902" },
+ { label: "Чумные доктора", value: "1125" },
+ { label: "Чхусок", value: "2973" },
+ { label: "Шаманы", value: "484" },
+ { label: "Шантаж", value: "569" },
+ { label: "Шармбатон", value: "2733" },
+ { label: "Швейцария", value: "1022" },
+ { label: "Шейпшифтеры", value: "29" },
+ { label: "Шелки", value: "2431" },
+ { label: "Шифры", value: "2232" },
+ { label: "Школьная иерархия", value: "2787" },
+ { label: "Школьники", value: "2566" },
+ { label: "Школьные годы Тома Реддла", value: "1913" },
+ { label: "Школьные ОтМетки", value: "3017" },
+ { label: "Школьные поездки", value: "2481" },
+ { label: "Школьный роман", value: "2440" },
+ { label: "Шопинг", value: "864" },
+ { label: "Шоу-бизнес", value: "17" },
+ { label: "Шпионы", value: "148" },
+ { label: "Шрамирование", value: "891" },
+ { label: "Шрамы", value: "328" },
+ { label: "Эвтаназия", value: "1102" },
+ { label: "Эгоизм", value: "2071" },
+ { label: "Эдвардианская эпоха", value: "2975" },
+ { label: "Эзотерические темы и мотивы", value: "2801" },
+ { label: "Эйблизм", value: "453" },
+ { label: "Эйдетическая память", value: "975" },
+ { label: "Эйфория", value: "2458" },
+ { label: "Экзамены", value: "2591" },
+ { label: "Экзистенциальный кризис", value: "1200" },
+ { label: "Экзорцизм", value: "494" },
+ { label: "Экологи / Биологи", value: "631" },
+ { label: "Экологический кризис", value: "485" },
+ { label: "Экономический кризис", value: "1547" },
+ { label: "Эксаудиризм", value: "2151" },
+ { label: "Эксгибиционизм", value: "489" },
+ { label: "Эксперимент", value: "1686" },
+ { label: "Экстрасенсы", value: "371" },
+ { label: "Экшн", value: "1673" },
+ { label: "Электрокинез", value: "1857" },
+ { label: "Электростимуляция", value: "807" },
+ { label: "Элементы ангста", value: "2696" },
+ { label: "Элементы гета", value: "1714" },
+ { label: "Элементы дарка", value: "2703" },
+ { label: "Элементы детектива", value: "2698" },
+ { label: "Элементы драмы", value: "2697" },
+ { label: "Элементы других видов отношений", value: "454" },
+ { label: "Элементы мистики", value: "1324" },
+ { label: "Элементы психологии", value: "2824" },
+ { label: "Элементы романтики", value: "2742" },
+ { label: "Элементы слэша", value: "1715" },
+ { label: "Элементы ужасов", value: "2721" },
+ { label: "Элементы фемслэша", value: "1716" },
+ { label: "Элементы флаффа", value: "2731" },
+ { label: "Элементы юмора / Элементы стёба", value: "2011" },
+ { label: "Эльфы", value: "44" },
+ { label: "Эметофилия", value: "1434" },
+ { label: "Эмо", value: "641" },
+ { label: "Эмоциональная одержимость", value: "1270" },
+ { label: "Эмпатия", value: "1177" },
+ { label: "Энергетический вампиризм", value: "818" },
+ { label: "Эпидемии", value: "619" },
+ { label: "Эпизод 23.5", value: "2469" },
+ { label: "Эпилепсия", value: "1511" },
+ { label: "Эпилог? Какой эпилог?", value: "2651" },
+ { label: "Эпоха Бакумацу", value: "1472" },
+ { label: "Эпоха Мэйдзи", value: "1435" },
+ { label: "Эпоха Тайсё", value: "2015" },
+ { label: "Эрик Киллмонгер жив", value: "2897" },
+ { label: "Эрогуро", value: "1731" },
+ { label: "Эротическая дрессировка", value: "2026" },
+ { label: "Эротическая лактация", value: "284" },
+ { label: "Эротическая мумификация", value: "415" },
+ { label: "Эротическая сверхстимуляция", value: "1245" },
+ { label: "Эротические наказания", value: "125" },
+ { label: "Эротические ролевые игры", value: "111" },
+ { label: "Эротические сны", value: "128" },
+ { label: "Эротические фантазии", value: "561" },
+ { label: "Эротический массаж", value: "1518" },
+ { label: "Эротический перенос", value: "744" },
+ { label: "Эротомания", value: "2922" },
+ { label: "Эскапизм", value: "1552" },
+ { label: "Эскорты", value: "922" },
+ { label: "Эстетика", value: "2021" },
+ { label: "ЭТЕРНА", value: "2948" },
+ { label: "Этнические анклавы", value: "2732" },
+ { label: "Этническое фэнтези", value: "667" },
+ { label: "Эффект бабочки", value: "1572" },
+ { label: "Ювелиры", value: "2964" },
+ { label: "Южная Америка", value: "832" },
+ { label: "Южная готика", value: "1077" },
+ { label: "Южная Корея", value: "674" },
+ { label: "Юмор", value: "1666" },
+ { label: "Юристы", value: "333" },
+ { label: "Я никогда не... (игра)", value: "1436" },
+ { label: "Явное согласие", value: "1569" },
+ { label: "Ядерная война", value: "889" },
+ { label: "Язык жестов", value: "2962" },
+ { label: "Язык животных", value: "1327" },
+ { label: "Язык растений", value: "2622" },
+ { label: "Язык цветов", value: "272" },
+ { label: "Ямадад", value: "2916" },
+ { label: "Янгирэ", value: "1257" },
+ { label: "Яндэрэ", value: "1136" },
+ { label: "Яогуаи", value: "2347" },
+ { label: "Япония", value: "665" },
+ { label: "Японские фестивали", value: "2555" },
+ { label: "Ящеролюди", value: "682" },
+ { label: "Abuse/Comfort", value: "2599" },
+ { label: "Aged down", value: "229" },
+ { label: "Aged up", value: "4" },
+ { label: "Artfic", value: "68" },
+ { label: "AU", value: "1683" },
+ { label: "AU: Альтернативные способности", value: "2086" },
+ { label: "AU: Без апокалипсиса", value: "2051" },
+ { label: "AU: Без войны", value: "2305" },
+ { label: "AU: Без магии", value: "1052" },
+ { label: "AU: Без мистики", value: "2489" },
+ { label: "AU: Без сверхспособностей", value: "1053" },
+ { label: "AU: Без супергероев", value: "1152" },
+ { label: "AU: Все гражданские", value: "2797" },
+ { label: "AU: Все друзья", value: "2552" },
+ { label: "AU: Все люди", value: "1151" },
+ { label: "AU: Все хорошо", value: "2124" },
+ { label: "AU: Другая страна", value: "2165" },
+ { label: "AU: Другая эпоха", value: "2452" },
+ { label: "AU: Другое детство", value: "2360" },
+ { label: "AU: Другое знакомство", value: "2217" },
+ { label: "AU: Другое семейное положение", value: "2902" },
+ { label: "AU: Не родственники", value: "2167" },
+ { label: "AU: Профессиональные герои (BNHA)", value: "2924" },
+ { label: "AU: Родственники", value: "2164" },
+ { label: "AU: Школа", value: "2532" },
+ { label: "AU: Age swap", value: "917" },
+ { label: "AU: Kitty Gang", value: "2928" },
+ { label: "AU: Race swap", value: "933" },
+ { label: "AU: Reverse", value: "1156" },
+ { label: "AU: Role swap", value: "1054" },
+ { label: "Authors Time", value: "2959" },
+ { label: "BDSM", value: "1646" },
+ { label: "BDSM-вселенная", value: "1078" },
+ { label: "BDSM: Домспейс", value: "1444" },
+ { label: "BDSM: Дроп", value: "1411" },
+ { label: "BDSM: Сабспейс", value: "1410" },
+ { label: "BDSM: Aftercare", value: "1523" },
+ { label: "BEAST (Bungou Stray Dogs)", value: "2457" },
+ { label: "Blackwatch", value: "2116" },
+ { label: "Body inflation", value: "389" },
+ { label: "Character study", value: "363" },
+ { label: "Cockwarming", value: "318" },
+ { label: "Dark academia", value: "2430" },
+ { label: "DDLG / DDLB / MDLG / MDLB", value: "1033" },
+ { label: "Dirty talk", value: "139" },
+ { label: "Doggy style", value: "1361" },
+ { label: "Dollification", value: "2780" },
+ { label: "Dramione Authors Tournament", value: "2950" },
+ { label: "EIQ", value: "271" },
+ { label: "ER", value: "1687" },
+ { label: "Final Haikyuu Quest", value: "2652" },
+ { label: "Fix-it", value: "1" },
+ { label: "Frenemies", value: "666" },
+ { label: "Gangbang", value: "315" },
+ { label: "Glory hole", value: "2188" },
+ { label: "Golden Age Overwatch", value: "2112" },
+ { label: "GOLockdown", value: "2391" },
+ { label: "Gun play", value: "252" },
+ { label: "Hurt/Comfort", value: "1682" },
+ { label: "Hydra!AU", value: "1931" },
+ { label: "Ironqrow week", value: "2209" },
+ { label: "Kimetsu Gakuen", value: "2574" },
+ { label: "Knife play", value: "152" },
+ { label: "KPOP-AUFEST", value: "1851" },
+ { label: "LARP", value: "1510" },
+ { label: "LOVE ОтМетки", value: "2981" },
+ { label: "Maleval week", value: "2382" },
+ { label: "Marvel ГФИ", value: "2896" },
+ { label: "Mate or die", value: "375" },
+ { label: "Mirror!verse (Звездный путь)", value: "2899" },
+ { label: "Moresome", value: "759" },
+ { label: "N раз", value: "263" },
+ { label: "Omnic Crisis Era", value: "2111" },
+ { label: "ORIGINAL'S 2021", value: "2939" },
+ { label: "Parentlock", value: "2053" },
+ { label: "Patronus of Dramione", value: "2958" },
+ { label: "Post-Fall of Overwatch", value: "2114" },
+ { label: "Post-Recall", value: "2115" },
+ { label: "PWP", value: "1680" },
+ { label: "Rape/Revenge", value: "2195" },
+ { label: "Reverse Falls", value: "1879" },
+ { label: "RofR ДраМиВояж", value: "2954" },
+ { label: "RST", value: "815" },
+ { label: "RTFM", value: "2327" },
+ { label: "Service top / Power bottom", value: "563" },
+ { label: "Shingeki no Kyojin High School AU", value: "2037" },
+ { label: "Shingeki! Kyojin Chuugakkou", value: "2038" },
+ { label: "Sickfic", value: "422" },
+ { label: "Songfic", value: "1684" },
+ { label: "Spider-son & Iron-dad", value: "1885" },
+ { label: "Sugar daddy", value: "106" },
+ { label: "Sugar mommy", value: "160" },
+ { label: "Superfamily (Мстители)", value: "2623" },
+ { label: "Superior Iron Man", value: "2676" },
+ { label: "Talon (Overwatch)", value: "2110" },
+ { label: "The Big Four / The Super Six", value: "1954" },
+ { label: "Trench AU", value: "2387" },
+ { label: "TYL", value: "1933" },
+ { label: "Underage", value: "1658" },
+ { label: "URT", value: "2761" },
+ { label: "UST", value: "1709" },
+ { label: "Versefic", value: "2729" },
+ { label: "Videofic", value: "2480" },
+ { label: "Womance", value: "265" },
+ { label: "X век", value: "240" },
+ { label: "XI век", value: "241" },
+ { label: "XII век", value: "242" },
+ { label: "XIII век", value: "243" },
+ { label: "XIV век", value: "244" },
+ { label: "XIX век", value: "249" },
+ { label: "XV век", value: "245" },
+ { label: "XVI век", value: "246" },
+ { label: "XVII век", value: "247" },
+ { label: "XVIII век", value: "248" },
+ { label: "XX век", value: "1004" },
+ ],
+ type: FilterTypes.Picker,
+ },
+ } satisfies Filters;
+}
+
+export default new ficbook();
+
+interface Data {
+ data?: DataEntity[] | null;
+ more: boolean;
+}
+interface DataEntity {
+ id: string;
+ slug: string;
+ author_id: number;
+ user_slug: string;
+ author_username: string;
+ real_author_id: string | null;
+ direction: number;
+ part_cnt: number;
+ title: string;
+ description: string;
+ enable_marks: boolean;
+ marks_plus: number;
+ is_premium: boolean;
+ status: number;
+ last_updated: string;
+ readedDate?: string | null;
+ reward_cnt: number;
+ cover?: string | null;
+}
diff --git a/plugins/russian/jaomix.ts b/plugins/russian/jaomix.ts
index 8cc7d01..d0f79d8 100644
--- a/plugins/russian/jaomix.ts
+++ b/plugins/russian/jaomix.ts
@@ -1,264 +1,263 @@
-import { Plugin } from "@typings/plugin";
-import { FilterTypes, Filters } from "@libs/filterInputs";
-import { fetchApi, fetchFile } from "@libs/fetch";
-import { NovelStatus } from "@libs/novelStatus";
-import { load as parseHTML } from "cheerio";
-
-class Jaomix implements Plugin.PluginBase {
- id = "jaomix.ru";
- name = "Jaomix";
- site = "https://jaomix.ru";
- version = "1.0.0";
- icon = "src/ru/jaomix/icon.png";
-
-
- async popularNovels(
- pageNo: number,
- {
- showLatestNovels,
- filters,
- }: Plugin.PopularNovelsOptions,
- ): Promise {
- let url = this.site + "/?searchrn";
-
- if (filters?.lang?.value?.length) {
- url += filters.lang.value
- .map((lang, idx) => `&lang[${idx}]=${lang}`).join("");
- }
-
- if (filters?.genre?.value?.include?.length) {
- url += filters.genre.value.include
- .map((genre, idx) => `&genre[${idx}]=${genre}`).join("");
- }
-
- if (filters?.genre?.value?.exclude?.length) {
- url += filters.genre.value.exclude
- .map((genre, idx) => `&delgenre[${idx}]=del ${genre}`).join("");
- }
-
- url += "&sortcountchapt=" + (filters?.sortcountchapt?.value || "1");
- url += "&sortdaycreate=" + (filters?.sortdaycreate?.value || "1");
- url +=
- "&sortby=" + (showLatestNovels ? "upd" : filters?.sortby?.value || "topweek");
- url += "&gpage=" + pageNo;
-
- const body = await fetchApi(url).then((res) => res.text());
- const loadedCheerio = parseHTML(body);
-
- const novels: Plugin.NovelItem[] = [];
- loadedCheerio('div[class="block-home"] > div[class="one"]').each(
- function () {
- const name = loadedCheerio(this)
- .find('div[class="img-home"] > a')
- .attr("title");
- const cover = loadedCheerio(this)
- .find('div[class="img-home"] > a > img')
- .attr("src")
- ?.replace("-150x150", "");
- const url = loadedCheerio(this)
- .find('div[class="img-home"] > a')
- .attr("href");
-
- if (!name || !url) return;
-
- novels.push({ name, cover, url });
- },
- );
-
- return novels;
- }
-
- async parseNovelAndChapters(novelUrl: string): Promise {
- const body = await fetchApi(novelUrl).then((res) => res.text());
- const loadedCheerio = parseHTML(body);
-
- const novel: Plugin.SourceNovel = {
- url: novelUrl,
- name: loadedCheerio('div[class="desc-book"] > h1').text().trim(),
- cover: loadedCheerio('div[class="img-book"] > img').attr("src"),
- summary: loadedCheerio('div[id="desc-tab"]').text().trim()
- };
-
- loadedCheerio("#info-book > p").each(function () {
- let text = loadedCheerio(this).text().replace(/,/g, "").split(" ");
- if (text[0] === "Автор:") {
- novel.author = text.splice(1).join(" ");
- } else if (text[0] === "Жанры:") {
- novel.genres = text.splice(1).join(",");
- } else if (text[0] === "Статус:") {
- novel.status = text.includes("продолжается")
- ? NovelStatus.Ongoing
- : NovelStatus.Completed;
- }
- });
-
- const chapters: Plugin.ChapterItem[] = [];
-
- loadedCheerio(".download-chapter div.title").each(function () {
- const name = loadedCheerio(this).find("a").attr("title");
- const releaseTime = loadedCheerio(this).find("time").text();
- const url = loadedCheerio(this).find("a").attr("href");
- if (!name || !url) return;
-
- chapters.push({ name, releaseTime, url });
- });
-
- novel.chapters = chapters.reverse();
- return novel;
- }
-
- async parseChapter(chapterUrl: string): Promise {
- const body = await fetchApi(chapterUrl).then((res) => res.text());
- const loadedCheerio = parseHTML(body);
-
- loadedCheerio('div[class="adblock-service"]').remove();
- const chapterText = loadedCheerio('div[class="entry-content"]').html();
-
- return chapterText || "";
- }
-
- async searchNovels(
- searchTerm: string,
- pageNo: number | undefined = 1,
- ): Promise {
- const url = `${this.site}/?searchrn=${searchTerm}&but=Поиск по названию&sortby=upd&gpage=${pageNo}`;
- const body = await fetchApi(url).then((res) => res.text());
- const loadedCheerio = parseHTML(body);
-
- const novels: Plugin.NovelItem[] = [];
- loadedCheerio('div[class="block-home"] > div[class="one"]').each(
- function () {
- const name = loadedCheerio(this)
- .find('div[class="img-home"] > a')
- .attr("title");
- const cover = loadedCheerio(this)
- .find('div[class="img-home"] > a > img')
- .attr("src")
- ?.replace("-150x150", "");
- const url = loadedCheerio(this)
- .find('div[class="img-home"] > a')
- .attr("href");
-
- if (!name || !url) return;
-
- novels.push({ name, cover, url });
- },
- );
-
- return novels;
- }
- fetchImage = fetchFile;
-
- filters = {
- sortby: {
- label: "Сортировка:",
- value: "topweek",
- options: [
- { label: "Топ недели", value: "topweek" },
- { label: "По алфавиту", value: "alphabet" },
- { label: "По дате обновления", value: "upd" },
- { label: "По дате создания", value: "new" },
- { label: "По просмотрам", value: "count" },
- { label: "Топ года", value: "topyear" },
- { label: "Топ дня", value: "topday" },
- { label: "Топ за все время", value: "alltime" },
- { label: "Топ месяца", value: "topmonth" },
- ],
- type: FilterTypes.Picker,
- },
- sortdaycreate: {
- label: "Дата добавления:",
- value: "1",
- options: [
- { label: "Любое", value: "1" },
- { label: "От 120 до 180 дней", value: "1218" },
- { label: "От 180 до 365 дней", value: "1836" },
- { label: "От 30 до 60 дней", value: "3060" },
- { label: "От 365 дней", value: "365" },
- { label: "От 60 до 90 дней", value: "6090" },
- { label: "От 90 до 120 дней", value: "9012" },
- { label: "Послед. 30 дней", value: "30" },
- ],
- type: FilterTypes.Picker,
- },
- sortcountchapt: {
- label: "Количество глав:",
- value: "1",
- options: [
- { label: "Любое кол-во глав", value: "1" },
- { label: "До 500", value: "500" },
- { label: "От 1000 до 2000", value: "1020" },
- { label: "От 2000 до 3000", value: "2030" },
- { label: "От 3000 до 4000", value: "3040" },
- { label: "От 4000", value: "400" },
- { label: "От 500 до 1000", value: "510" },
- ],
- type: FilterTypes.Picker,
- },
- genre: {
- label: "Жанры:",
- value: { include: [], exclude: [] },
- options: [
- { label: "Боевые Искусства", value: "Боевые Искусства" },
- { label: "Виртуальный Мир", value: "Виртуальный Мир" },
- { label: "Гарем", value: "Гарем" },
- { label: "Детектив", value: "Детектив" },
- { label: "Драма", value: "Драма" },
- { label: "Игра", value: "Игра" },
- { label: "Истории из жизни", value: "Истории из жизни" },
- { label: "Исторический", value: "Исторический" },
- { label: "История", value: "История" },
- { label: "Исэкай", value: "Исэкай" },
- { label: "Комедия", value: "Комедия" },
- { label: "Меха", value: "Меха" },
- { label: "Мистика", value: "Мистика" },
- { label: "Научная Фантастика", value: "Научная Фантастика" },
- { label: "Повседневность", value: "Повседневность" },
- { label: "Постапокалипсис", value: "Постапокалипсис" },
- { label: "Приключения", value: "Приключения" },
- { label: "Психология", value: "Психология" },
- { label: "Романтика", value: "Романтика" },
- { label: "Сверхъестественное", value: "Сверхъестественное" },
- { label: "Сёнэн", value: "Сёнэн" },
- { label: "Сёнэн-ай", value: "Сёнэн-ай" },
- { label: "Спорт", value: "Спорт" },
- { label: "Сэйнэн", value: "Сэйнэн" },
- { label: "Сюаньхуа", value: "Сюаньхуа" },
- { label: "Трагедия", value: "Трагедия" },
- { label: "Триллер", value: "Триллер" },
- { label: "Фантастика", value: "Фантастика" },
- { label: "Фэнтези", value: "Фэнтези" },
- { label: "Хоррор", value: "Хоррор" },
- { label: "Школьная жизнь", value: "Школьная жизнь" },
- { label: "Шоунен", value: "Шоунен" },
- { label: "Экшн", value: "Экшн" },
- { label: "Этти", value: "Этти" },
- { label: "Юри", value: "Юри" },
- { label: "Adult", value: "Adult" },
- { label: "Ecchi", value: "Ecchi" },
- { label: "Josei", value: "Josei" },
- { label: "Lolicon", value: "Lolicon" },
- { label: "Mature", value: "Mature" },
- { label: "Shoujo", value: "Shoujo" },
- { label: "Wuxia", value: "Wuxia" },
- { label: "Xianxia", value: "Xianxia" },
- { label: "Xuanhuan", value: "Xuanhuan" },
- { label: "Yaoi", value: "Yaoi" },
- ],
- type: FilterTypes.ExcludableCheckboxGroup,
- },
- lang: {
- label: "Выбрать языки:",
- value: [],
- options: [
- { label: "Английский", value: "Английский" },
- { label: "Китайский", value: "Китайский" },
- { label: "Корейский", value: "Корейский" },
- { label: "Японский", value: "Японский" },
- ],
- type: FilterTypes.CheckboxGroup,
- },
- } satisfies Filters;
-}
-
-export default new Jaomix();
+import { Plugin } from "@typings/plugin";
+import { FilterTypes, Filters } from "@libs/filterInputs";
+import { fetchApi, fetchFile } from "@libs/fetch";
+import { NovelStatus } from "@libs/novelStatus";
+import { load as parseHTML } from "cheerio";
+
+class Jaomix implements Plugin.PluginBase {
+ id = "jaomix.ru";
+ name = "Jaomix";
+ site = "https://jaomix.ru";
+ version = "1.0.0";
+ icon = "src/ru/jaomix/icon.png";
+
+ async popularNovels(
+ pageNo: number,
+ { showLatestNovels, filters }: Plugin.PopularNovelsOptions,
+ ): Promise {
+ let url = this.site + "/?searchrn";
+
+ if (filters?.lang?.value?.length) {
+ url += filters.lang.value
+ .map((lang, idx) => `&lang[${idx}]=${lang}`)
+ .join("");
+ }
+
+ if (filters?.genre?.value?.include?.length) {
+ url += filters.genre.value.include
+ .map((genre, idx) => `&genre[${idx}]=${genre}`)
+ .join("");
+ }
+
+ if (filters?.genre?.value?.exclude?.length) {
+ url += filters.genre.value.exclude
+ .map((genre, idx) => `&delgenre[${idx}]=del ${genre}`)
+ .join("");
+ }
+
+ url += "&sortcountchapt=" + (filters?.sortcountchapt?.value || "1");
+ url += "&sortdaycreate=" + (filters?.sortdaycreate?.value || "1");
+ url += "&sortby=" + (showLatestNovels ? "upd" : filters?.sortby?.value || "topweek");
+ url += "&gpage=" + pageNo;
+
+ const body = await fetchApi(url).then((res) => res.text());
+ const loadedCheerio = parseHTML(body);
+
+ const novels: Plugin.NovelItem[] = [];
+ loadedCheerio('div[class="block-home"] > div[class="one"]').each(
+ function () {
+ const name = loadedCheerio(this)
+ .find('div[class="img-home"] > a')
+ .attr("title");
+ const cover = loadedCheerio(this)
+ .find('div[class="img-home"] > a > img')
+ .attr("src")
+ ?.replace("-150x150", "");
+ const url = loadedCheerio(this)
+ .find('div[class="img-home"] > a')
+ .attr("href");
+
+ if (!name || !url) return;
+
+ novels.push({ name, cover, url });
+ },
+ );
+
+ return novels;
+ }
+
+ async parseNovelAndChapters(novelUrl: string): Promise {
+ const body = await fetchApi(novelUrl).then((res) => res.text());
+ const loadedCheerio = parseHTML(body);
+
+ const novel: Plugin.SourceNovel = {
+ url: novelUrl,
+ name: loadedCheerio('div[class="desc-book"] > h1').text().trim(),
+ cover: loadedCheerio('div[class="img-book"] > img').attr("src"),
+ summary: loadedCheerio('div[id="desc-tab"]').text().trim(),
+ };
+
+ loadedCheerio("#info-book > p").each(function () {
+ let text = loadedCheerio(this).text().replace(/,/g, "").split(" ");
+ if (text[0] === "Автор:") {
+ novel.author = text.splice(1).join(" ");
+ } else if (text[0] === "Жанры:") {
+ novel.genres = text.splice(1).join(",");
+ } else if (text[0] === "Статус:") {
+ novel.status = text.includes("продолжается")
+ ? NovelStatus.Ongoing
+ : NovelStatus.Completed;
+ }
+ });
+
+ const chapters: Plugin.ChapterItem[] = [];
+ const totalChapters = loadedCheerio(".download-chapter div.title").length;
+
+ loadedCheerio(".download-chapter div.title").each((chapterIndex, element) => {
+ const name = loadedCheerio(element).find("a").attr("title");
+ const url = loadedCheerio(element).find("a").attr("href");
+ if (!name || !url) return;
+
+ const releaseTime = loadedCheerio(element).find("time").text();
+ chapters.push({ name, url, releaseTime, chapterNumber: totalChapters - chapterIndex });
+ });
+
+ novel.chapters = chapters.reverse();
+ return novel;
+ }
+
+ async parseChapter(chapterUrl: string): Promise {
+ const body = await fetchApi(chapterUrl).then((res) => res.text());
+ const loadedCheerio = parseHTML(body);
+
+ loadedCheerio('div[class="adblock-service"]').remove();
+ const chapterText = loadedCheerio('div[class="entry-content"]').html();
+
+ return chapterText || "";
+ }
+
+ async searchNovels(
+ searchTerm: string,
+ pageNo: number | undefined = 1,
+ ): Promise {
+ const url = `${this.site}/?searchrn=${searchTerm}&but=Поиск по названию&sortby=upd&gpage=${pageNo}`;
+ const body = await fetchApi(url).then((res) => res.text());
+ const loadedCheerio = parseHTML(body);
+
+ const novels: Plugin.NovelItem[] = [];
+ loadedCheerio('div[class="block-home"] > div[class="one"]').each(
+ function () {
+ const name = loadedCheerio(this)
+ .find('div[class="img-home"] > a')
+ .attr("title");
+ const cover = loadedCheerio(this)
+ .find('div[class="img-home"] > a > img')
+ .attr("src")
+ ?.replace("-150x150", "");
+ const url = loadedCheerio(this)
+ .find('div[class="img-home"] > a')
+ .attr("href");
+
+ if (!name || !url) return;
+
+ novels.push({ name, cover, url });
+ },
+ );
+
+ return novels;
+ }
+ fetchImage = fetchFile;
+
+ filters = {
+ sortby: {
+ label: "Сортировка:",
+ value: "topweek",
+ options: [
+ { label: "Топ недели", value: "topweek" },
+ { label: "По алфавиту", value: "alphabet" },
+ { label: "По дате обновления", value: "upd" },
+ { label: "По дате создания", value: "new" },
+ { label: "По просмотрам", value: "count" },
+ { label: "Топ года", value: "topyear" },
+ { label: "Топ дня", value: "topday" },
+ { label: "Топ за все время", value: "alltime" },
+ { label: "Топ месяца", value: "topmonth" },
+ ],
+ type: FilterTypes.Picker,
+ },
+ sortdaycreate: {
+ label: "Дата добавления:",
+ value: "1",
+ options: [
+ { label: "Любое", value: "1" },
+ { label: "От 120 до 180 дней", value: "1218" },
+ { label: "От 180 до 365 дней", value: "1836" },
+ { label: "От 30 до 60 дней", value: "3060" },
+ { label: "От 365 дней", value: "365" },
+ { label: "От 60 до 90 дней", value: "6090" },
+ { label: "От 90 до 120 дней", value: "9012" },
+ { label: "Послед. 30 дней", value: "30" },
+ ],
+ type: FilterTypes.Picker,
+ },
+ sortcountchapt: {
+ label: "Количество глав:",
+ value: "1",
+ options: [
+ { label: "Любое кол-во глав", value: "1" },
+ { label: "До 500", value: "500" },
+ { label: "От 1000 до 2000", value: "1020" },
+ { label: "От 2000 до 3000", value: "2030" },
+ { label: "От 3000 до 4000", value: "3040" },
+ { label: "От 4000", value: "400" },
+ { label: "От 500 до 1000", value: "510" },
+ ],
+ type: FilterTypes.Picker,
+ },
+ genre: {
+ label: "Жанры:",
+ value: { include: [], exclude: [] },
+ options: [
+ { label: "Боевые Искусства", value: "Боевые Искусства" },
+ { label: "Виртуальный Мир", value: "Виртуальный Мир" },
+ { label: "Гарем", value: "Гарем" },
+ { label: "Детектив", value: "Детектив" },
+ { label: "Драма", value: "Драма" },
+ { label: "Игра", value: "Игра" },
+ { label: "Истории из жизни", value: "Истории из жизни" },
+ { label: "Исторический", value: "Исторический" },
+ { label: "История", value: "История" },
+ { label: "Исэкай", value: "Исэкай" },
+ { label: "Комедия", value: "Комедия" },
+ { label: "Меха", value: "Меха" },
+ { label: "Мистика", value: "Мистика" },
+ { label: "Научная Фантастика", value: "Научная Фантастика" },
+ { label: "Повседневность", value: "Повседневность" },
+ { label: "Постапокалипсис", value: "Постапокалипсис" },
+ { label: "Приключения", value: "Приключения" },
+ { label: "Психология", value: "Психология" },
+ { label: "Романтика", value: "Романтика" },
+ { label: "Сверхъестественное", value: "Сверхъестественное" },
+ { label: "Сёнэн", value: "Сёнэн" },
+ { label: "Сёнэн-ай", value: "Сёнэн-ай" },
+ { label: "Спорт", value: "Спорт" },
+ { label: "Сэйнэн", value: "Сэйнэн" },
+ { label: "Сюаньхуа", value: "Сюаньхуа" },
+ { label: "Трагедия", value: "Трагедия" },
+ { label: "Триллер", value: "Триллер" },
+ { label: "Фантастика", value: "Фантастика" },
+ { label: "Фэнтези", value: "Фэнтези" },
+ { label: "Хоррор", value: "Хоррор" },
+ { label: "Школьная жизнь", value: "Школьная жизнь" },
+ { label: "Шоунен", value: "Шоунен" },
+ { label: "Экшн", value: "Экшн" },
+ { label: "Этти", value: "Этти" },
+ { label: "Юри", value: "Юри" },
+ { label: "Adult", value: "Adult" },
+ { label: "Ecchi", value: "Ecchi" },
+ { label: "Josei", value: "Josei" },
+ { label: "Lolicon", value: "Lolicon" },
+ { label: "Mature", value: "Mature" },
+ { label: "Shoujo", value: "Shoujo" },
+ { label: "Wuxia", value: "Wuxia" },
+ { label: "Xianxia", value: "Xianxia" },
+ { label: "Xuanhuan", value: "Xuanhuan" },
+ { label: "Yaoi", value: "Yaoi" },
+ ],
+ type: FilterTypes.ExcludableCheckboxGroup,
+ },
+ lang: {
+ label: "Выбрать языки:",
+ value: [],
+ options: [
+ { label: "Английский", value: "Английский" },
+ { label: "Китайский", value: "Китайский" },
+ { label: "Корейский", value: "Корейский" },
+ { label: "Японский", value: "Японский" },
+ ],
+ type: FilterTypes.CheckboxGroup,
+ },
+ } satisfies Filters;
+}
+
+export default new Jaomix();
diff --git a/plugins/russian/novelTL.ts b/plugins/russian/novelTL.ts
index 2039ca3..1461050 100644
--- a/plugins/russian/novelTL.ts
+++ b/plugins/russian/novelTL.ts
@@ -1,957 +1,963 @@
-import { Plugin } from "@typings/plugin";
-import { FilterTypes, Filters } from "@libs/filterInputs";
-import { defaultCover } from "@libs/defaultCover";
-import { fetchApi, fetchFile } from "@libs/fetch";
-import { NovelStatus } from "@libs/novelStatus";
-import { load as parseHTML } from "cheerio";
-import dayjs from "dayjs";
-
-class TL implements Plugin.PluginBase {
- id = "TL";
- name = "NovelTL";
- site = "https://novel.tl";
- version = "1.0.0";
- icon = "src/ru/noveltl/icon.png";
-
-
- async popularNovels(
- page: number,
- { showLatestNovels, filters }: Plugin.PopularNovelsOptions,
- ): Promise {
- const result = await fetchApi(this.site + "/api/site/v2/graphql", {
- method: "post",
- headers: {
- Accept: "application/json, text/plain, */*",
- "Accept-Language": "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3",
- "Content-Type": "application/json",
- },
- referrer: this.site,
- body: JSON.stringify({
- operationName: "Projects",
- query:
- "query Projects($hostname:String! $filter:SearchFilter $page:Int $limit:Int){projects(section:{fullUrl:$hostname}filter:$filter page:{pageSize:$limit,pageNumber:$page}){content{title fullUrl covers{url}}}}",
- variables: {
- filter: {
- tags: filters?.tags?.value || [],
- genres: filters?.genres?.value || [],
- },
- hostname: "novel.tl",
- limit: 40,
- page,
- },
- }),
- });
-
- const json = (await result.json()) as response;
- const novels: Plugin.NovelItem[] = [];
-
- json.data?.projects?.content?.forEach((novel) =>
- novels.push({
- name: novel.title,
- url: "https://" + novel.fullUrl,
- cover: novel?.covers?.[0]?.url
- ? this.site + novel.covers[0].url
- : defaultCover,
- }),
- );
-
- return novels;
- }
-
- async parseNovelAndChapters(novelUrl: string): Promise {
- const result = await fetchApi(this.site + "/api/site/v2/graphql", {
- method: "post",
- headers: {
- Accept: "application/json, text/plain, */*",
- "Accept-Language": "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3",
- "Content-Type": "application/json",
- },
- referrer: this.site,
- body: JSON.stringify({
- operationName: "Book",
- query:
- 'query Book($url:String){project(project:{fullUrl:$url}){title translationStatus fullUrl covers{url}persons(langs:["ru","en","*"],roles:["author","illustrator"]){role name{firstName lastName}}genres{nameRu nameEng}tags{nameRu nameEng}annotation{text}subprojects{content{title volumes{content{shortName chapters{title publishDate fullUrl published}}}}}}}',
- variables: {
- url: novelUrl,
- },
- }),
- });
- const json = (await result.json()) as response;
- const novel: Plugin.SourceNovel = {
- url: novelUrl,
- name: json.data.project?.title,
- cover: json.data.project?.covers?.[0]?.url
- ? this.site + json.data.project.covers[0].url
- : defaultCover,
- summary: json.data.project?.annotation?.text,
- status:
- json.data.project?.translationStatus === "active"
- ? NovelStatus.Ongoing
- : NovelStatus.Completed,
- };
-
- const genres = [json.data.project?.tags, json.data.project?.genres]
- .flat()
- .map((item) => item?.nameRu || item?.nameEng)
- .filter((item) => item);
-
- if (genres?.length) {
- novel.genres = genres.join(", ");
- }
-
- json.data.project?.persons?.forEach((person) => {
- if (person.role == "author" && person.name.firstName) {
- novel.author =
- person.name.firstName + " " + (person.name?.lastName || "");
- }
- });
-
- const chapters: Plugin.ChapterItem[] = [];
- json.data.project?.subprojects?.content?.forEach((work) =>
- work.volumes.content.forEach((volume) =>
- volume.chapters.forEach(
- (chapter) =>
- chapter?.published &&
- chapters.push({
- name: volume.shortName + " " + chapter.title,
- url: "https://" + chapter.fullUrl,
- releaseTime: dayjs(chapter.publishDate).format("LLL"),
- }),
- ),
- ),
- );
-
- novel.chapters = chapters;
- return novel;
- }
-
- async parseChapter(chapterUrl: string): Promise {
- const result = await fetchApi(this.site + "/api/site/v2/graphql", {
- method: "post",
- headers: {
- Accept: "application/json, text/plain, */*",
- "Accept-Language": "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3",
- "Content-Type": "application/json",
- },
- referrer: this.site,
- body: JSON.stringify({
- query:
- "query($url:String){chapter(chapter:{fullUrl:$url}){text{text}}}",
- variables: {
- url: chapterUrl,
- },
- }),
- });
- const json = (await result.json()) as response;
-
- const baseUrl = this.site;
- const loadedCheerio = parseHTML(json.data.chapter?.text?.text || "");
- loadedCheerio("p > a[href]").each(function () {
- let src = baseUrl + loadedCheerio(this).attr("href");
- if (!src.startsWith("http")) {
- src = baseUrl + src;
- }
- loadedCheerio(this).find("picture").remove();
- loadedCheerio(this).removeAttr("href");
- loadedCheerio(`
`).appendTo(this);
- });
-
- const chapterText = loadedCheerio.html();
- return chapterText;
- }
-
- async searchNovels(
- searchTerm: string,
- page: number | undefined = 1,
- ): Promise {
- const result = await fetchApi(this.site + "/api/site/v2/graphql", {
- method: "post",
- headers: {
- Accept: "application/json, text/plain, */*",
- "Accept-Language": "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3",
- "Content-Type": "application/json",
- },
- referrer: this.site,
- body: JSON.stringify({
- operationName: "Projects",
- query:
- "query Projects($hostname:String! $filter:SearchFilter $page:Int $limit:Int){projects(section:{fullUrl:$hostname}filter:$filter page:{pageSize:$limit,pageNumber:$page}){content{title fullUrl covers{url}}}}",
- variables: {
- filter: {
- query: searchTerm,
- },
- hostname: "novel.tl",
- limit: 40,
- page,
- },
- }),
- });
- const json = (await result.json()) as response;
- const novels: Plugin.NovelItem[] = [];
-
- json?.data?.projects?.content?.forEach((novel) =>
- novels.push({
- name: novel.title,
- url: "https://" + novel.fullUrl,
- cover: novel?.covers?.[0]?.url
- ? this.site + novel.covers[0].url
- : defaultCover,
- }),
- );
-
- return novels;
- }
-
- fetchImage = fetchFile;
-
- filters = {
- tags: {
- label: "Тэги",
- value: [],
- options: [
- { label: "Автоматы", value: "64" },
- { label: "Агрессивные персонажи", value: "26" },
- { label: "Ад", value: "338" },
- { label: "Адаптация манги", value: "8" },
- { label: "Академия", value: "5" },
- { label: "Актёрское искусство", value: "7" },
- { label: "Актеры озвучки", value: "746" },
- { label: "Алхимия", value: "27" },
- { label: "Альтернативная реальность", value: "30" },
- { label: "Амнезия", value: "31" },
- { label: "Анабиоз", value: "170" },
- { label: "Анал", value: "33" },
- { label: "Ангелы", value: "38" },
- { label: "Андроиды", value: "37" },
- { label: "Анти-рост персонажа", value: "25" },
- { label: "Антигерой", value: "43" },
- { label: "Антикварный магазин", value: "44" },
- { label: "Антимагия", value: "41" },
- { label: "Антиутопия", value: "225" },
- { label: "Апатичный главный герой", value: "46" },
- { label: "Апокалипсис", value: "47" },
- { label: "Аристократия", value: "51" },
- { label: "Армия", value: "53" },
- { label: "Артефакты", value: "58" },
- { label: "Асоциальный главный герой", value: "42" },
- { label: "Ассасины", value: "61" },
- { label: "Атмосфера Европы", value: "245" },
- { label: "Банды", value: "302" },
- { label: "БДСМ", value: "77" },
- { label: "Бедный главный герой", value: "541" },
- { label: "Бездушный главный герой", value: "143" },
- { label: "Беззаботный герой", value: "115" },
- { label: "Безответная любовь", value: "213" },
- { label: "Безответная любовь", value: "740" },
- { label: "Безработные", value: "377" },
- { label: "Беременность", value: "551" },
- { label: "Бескорыстная любовь", value: "733" },
- { label: "Бессмертные", value: "359" },
- { label: "Бесстрашный главный герой", value: "274" },
- { label: "Библиотека", value: "393" },
- { label: "Биография", value: "86" },
- { label: "Близнецы", value: "729" },
- { label: "Богачи", value: "753" },
- { label: "Боги", value: "318" },
- { label: "Богини", value: "316" },
- { label: "Богоподобный протагонист", value: "314" },
- { label: "Боевая академия", value: "75" },
- { label: "Боевая парочка", value: "547" },
- { label: "Божественная защита", value: "208" },
- { label: "Божественная сила", value: "317" },
- { label: "Болеющие персонажи", value: "648" },
- { label: "Борьба за власть", value: "548" },
- { label: "Брак по расчету", value: "55" },
- { label: "Братство", value: "106" },
- { label: "Братья или сёстры", value: "646" },
- { label: "Брошенные дети", value: "1" },
- { label: "Бывший герой", value: "290" },
- { label: "Вампиры", value: "742" },
- { label: "Ваншот", value: "496" },
- { label: "Вдали от родителей", value: "3" },
- { label: "Ведьмы", value: "756" },
- { label: "Везучий главный герой", value: "411" },
- { label: "Верные подданные", value: "410" },
- { label: "Вероломные герои/плетение интриг", value: "424" },
- { label: "Взросление персонажа", value: "24" },
- { label: "Видит то, чего остальной люд не в силах", value: "617" },
- { label: "Виртуальная реальность", value: "744" },
- { label: "Владелец магазина", value: "677" },
- { label: "Владелец уникального оружия", value: "736" },
- { label: "Властные персонажи", value: "545" },
- { label: "Влияние прошлого", value: "517" },
- { label: "Внезапное обогащение", value: "691" },
- { label: "Внезапное обретение силы", value: "690" },
- { label: "Военные хроники", value: "749" },
- { label: "Возвращение в родной мир", value: "587" },
- { label: "Война", value: "750" },
- { label: "Вокалоид", value: "745" },
- { label: "Волшебные твари", value: "413" },
- { label: "Воскрешение", value: "586" },
- { label: "Воспитанный главный герой", value: "537" },
- { label: "Воспоминания прошлого", value: "283" },
- { label: "Враги становятся союзниками", value: "238" },
- { label: "Врата в иной мир", value: "303" },
- { label: "Временной парадокс", value: "711" },
- { label: "Вторжение на Землю", value: "228" },
- { label: "Второй шанс", value: "608" },
- { label: "Выживание", value: "695" },
- { label: "Вынужденные условия проживания", value: "287" },
- { label: "Высокомерный герой", value: "56" },
- { label: "Гадание", value: "207" },
- { label: "Галлюцинации", value: "189" },
- { label: "Гарем рабов", value: "656" },
- { label: "Геймеры", value: "301" },
- { label: "Генетические модификации", value: "306" },
- { label: "Герои", value: "341" },
- { label: "Герои непонятного пола", value: "36" },
- { label: "Героиня девушка-сорванец", value: "715" },
- { label: "Героиня красавица", value: "81" },
- { label: "Герой влюбляется первым", value: "561" },
- { label: "Герой использует щит", value: "636" },
- { label: "Герой красавец", value: "329" },
- { label: "Герой со множеством тел", value: "564" },
- { label: "Герой-бесстыдник", value: "632" },
- { label: "Герой-извращенец", value: "521" },
- { label: "Герой-трудяга", value: "330" },
- { label: "Герой-яндере", value: "421" },
- { label: "Гетерохромия", value: "342" },
- { label: "Гильдии", value: "324" },
- { label: "Гиперопека", value: "509" },
- { label: "Главная героиня — женщина", value: "277" },
- { label: "Главный герой - гений", value: "308" },
- { label: "Главный герой - Моб", value: "446" },
- { label: "Главный герой — знаменитость", value: "263" },
- { label: "Главный герой — мужчина", value: "419" },
- { label: "Главный герой в поисках гарема", value: "331" },
- { label: "Главный герой заранее готовится", value: "557" },
- { label: "Главный герой не человек", value: "488" },
- { label: "Главный герой приёмный", value: "20" },
- { label: "Главный герой сразу силён", value: "563" },
- { label: "Гладиаторы", value: "310" },
- { label: "Глухой к любви герой", value: "194" },
- { label: "Гоблины", value: "313" },
- { label: "Големы", value: "319" },
- { label: "Гомункул", value: "347" },
- { label: "Горничные", value: "418" },
- { label: "Государственные интриги", value: "212" },
- { label: "Гринд", value: "322" },
- { label: "Давняя травма", value: "518" },
- { label: "Двойник", value: "97" },
- { label: "Дворецкие", value: "111" },
- { label: "Дворфы", value: "224" },
- { label: "Дворяне", value: "487" },
- { label: "Двоюродные братья или сёстры", value: "162" },
- { label: "Девочки-волшебницы", value: "415" },
- { label: "Демоны", value: "193" },
- { label: "Депрессия", value: "196" },
- { label: "Детектив", value: "198" },
- { label: "Детективное расследование", value: "473" },
- { label: "Детское насилие", value: "125" },
- { label: "Детское обещание", value: "130" },
- { label: "Дискриминация", value: "203" },
- { label: "Длительный разрыв отношений", value: "400" },
- { label: "Домашняя жизнь", value: "45" },
- { label: "Драконы", value: "218" },
- { label: "Древний Китай", value: "34" },
- { label: "Дружба", value: "293" },
- { label: "Друзья детства", value: "128" },
- { label: "Друзья становятся врагами", value: "292" },
- { label: "Духи", value: "673" },
- { label: "Духовная сила", value: "665" },
- { label: "Духовный наставник", value: "671" },
- { label: "Душещипательная история", value: "335" },
- { label: "Души", value: "666" },
- { label: "Дьявольский путь культивации", value: "192" },
- { label: "Ёкай", value: "763" },
- { label: "Есть аниме-адаптация", value: "10" },
- { label: "Есть видеоигра", value: "13" },
- { label: "Есть дорама-адаптация", value: "11" },
- { label: "Есть манга-адаптация", value: "14" },
- { label: "Есть манхва-адаптация", value: "16" },
- { label: "Есть маньхуа-адаптация", value: "15" },
- { label: "Есть фильм", value: "17" },
- { label: "Есть CD дорама-адаптация", value: "12" },
- { label: "Жёсткий главный герой", value: "597" },
- { label: "Жестокие персонажи", value: "4" },
- { label: "Жёстокие персонажи", value: "169" },
- { label: "Животное-спутник", value: "78" },
- { label: "Жизнь в одиночку", value: "396" },
- { label: "Жрецы", value: "555" },
- { label: "Жрицы", value: "554" },
- { label: "Забота о детях", value: "127" },
- { label: "Заботливый главный герой", value: "116" },
- { label: "Загадочное заболевание", value: "471" },
- { label: "Загадочное прошлое родителей", value: "470" },
- { label: "Заговоры", value: "154" },
- { label: "Закалка тела", value: "96" },
- { label: "Закон джунглей", value: "682" },
- { label: "Закулисная борба", value: "603" },
- { label: "Замкнутый главный герой", value: "371" },
- { label: "Запечатанная сила", value: "607" },
- { label: "Затворник", value: "346" },
- { label: "Звери", value: "80" },
- { label: "Зверолюди", value: "39" },
- { label: "Звероподобные", value: "79" },
- { label: "Земледелие", value: "268" },
- { label: "Злобные благородные девы", value: "743" },
- { label: "Зловещие организации", value: "247" },
- { label: "Злой главный герой", value: "248" },
- { label: "Злые боги", value: "246" },
- { label: "Злые религии", value: "249" },
- { label: "Знаменитости", value: "118" },
- { label: "Знания из прошлой жизни", value: "553" },
- { label: "Зомби", value: "767" },
- { label: "Игра на выживание", value: "696" },
- { label: "Игровая рейтинговая система", value: "300" },
- { label: "Из грязи в князи", value: "542" },
- { label: "Известные родители", value: "262" },
- { label: "Изменение внешнего вида", value: "48" },
- { label: "Изнасилование", value: "574" },
- { label: "Инвалидность", value: "202" },
- { label: "Индустриализация", value: "364" },
- { label: "Инженер", value: "241" },
- { label: "Инцест", value: "361" },
- { label: "Искажённая личность", value: "730" },
- { label: "Искусственный интеллект", value: "59" },
- { label: "Исполнение желаний", value: "755" },
- { label: "Каннибализм", value: "113" },
- { label: "Карточные игры", value: "114" },
- { label: "Кладбищенский смотритель", value: "321" },
- { label: "Классика", value: "134" },
- { label: "Книги", value: "99" },
- { label: "Книги навыков", value: "654" },
- { label: "Книжный червь", value: "100" },
- { label: "Коллеги", value: "140" },
- { label: "Колледж/Университет", value: "145" },
- { label: "Командная работа", value: "701" },
- { label: "Комедийный подтекст", value: "147" },
- { label: "Комплекс брата", value: "105" },
- { label: "Комплекс неполноценности", value: "365" },
- { label: "Контракты", value: "155" },
- { label: "Контроль разума", value: "441" },
- { label: "Конфликт в семье", value: "261" },
- { label: "Конфликт верности", value: "153" },
- { label: "Копейщик", value: "668" },
- { label: "Королевская особа", value: "596" },
- { label: "Королевства", value: "382" },
- { label: "Короткий рассказ", value: "638" },
- { label: "Коррупция", value: "157" },
- { label: "Космические Войны", value: "158" },
- { label: "Космос", value: "507" },
- { label: "Косплей", value: "159" },
- { label: "Кража способностей", value: "2" },
- { label: "Крафтинг", value: "164" },
- { label: "Кризис личности", value: "357" },
- { label: "Кровь", value: "320" },
- { label: "Кружки, клубы", value: "138" },
- { label: "Кудэрэ", value: "384" },
- { label: "Кузнец", value: "90" },
- { label: "Кукловоды", value: "567" },
- { label: "Куклы/Марионетки", value: "211" },
- { label: "Кулинария", value: "156" },
- { label: "Культивация", value: "171" },
- { label: "Куннилингус", value: "172" },
- { label: "Легенды", value: "391" },
- { label: "Легкая жизнь", value: "229" },
- { label: "Лекари", value: "334" },
- { label: "Ленивый главный герой", value: "389" },
- { label: "Лидерство", value: "390" },
- { label: "Любит персонажа младше себя", value: "765" },
- { label: "Любит персонажа старше себя", value: "494" },
- { label: "Любовное соперничество", value: "406" },
- { label: "Любовные треугольники", value: "407" },
- { label: "Любовь детства", value: "129" },
- { label: "Любовь с первого взгляда", value: "404" },
- { label: "Любящие родители", value: "215" },
- { label: "Маги", value: "757" },
- { label: "Магические технологии", value: "417" },
- { label: "Магия", value: "412" },
- { label: "Магия призыва", value: "694" },
- { label: "Маленькие девочки", value: "397" },
- { label: "Мангака", value: "423" },
- { label: "Маниакальная любовь", value: "492" },
- { label: "Марти Сью", value: "508" },
- { label: "Мастер подземелий", value: "222" },
- { label: "Мастурбация", value: "432" },
- { label: "Матриархат", value: "433" },
- { label: "Межпространственные путешествия", value: "370" },
- { label: "Менеджмент", value: "422" },
- { label: "Месть", value: "588" },
- { label: "Мечи и магия", value: "697" },
- { label: "Мечники", value: "698" },
- { label: "Миленькие дети", value: "176" },
- { label: "Милитаризм", value: "439" },
- { label: "Миловидная история", value: "178" },
- { label: "Милый главный герой", value: "177" },
- { label: "Минет", value: "275" },
- { label: "Мировое древо", value: "760" },
- { label: "Миролюбивый главный герой", value: "510" },
- { label: "Мифология", value: "475" },
- { label: "Младшие сёстры", value: "766" },
- { label: "ММОРПГ", value: "445" },
- { label: "Множество временных линий", value: "463" },
- { label: "Модели", value: "447" },
- { label: "Молод не по годам", value: "49" },
- { label: "Монстры", value: "454" },
- { label: "Мрачность", value: "183" },
- { label: "Музыка", value: "466" },
- { label: "Музыкальные группы", value: "68" },
- { label: "Мутации", value: "468" },
- { label: "На волосок от смерти", value: "479" },
- { label: "На все руки мастер", value: "374" },
- { label: "Навыки имеют стоимость", value: "150" },
- { label: "Нагота", value: "490" },
- { label: "Наездники на драконах", value: "216" },
- { label: "Наёмники", value: "437" },
- { label: "Наивный главный герой", value: "476" },
- { label: "Наследие", value: "366" },
- { label: "Настоящая любовь", value: "200" },
- { label: "Настоящий гарем", value: "540" },
- { label: "Небесное испытание", value: "337" },
- { label: "Невезучий главный герой", value: "738" },
- { label: "Недоверчивый протагонист", value: "206" },
- { label: "Недооцененный главный герой", value: "734" },
- { label: "Недопонимание", value: "444" },
- { label: "Некромант", value: "480" },
- { label: "Нелинейное повествование", value: "489" },
- { label: "Неловкий главный герой", value: "67" },
- { label: "Нелюбимый протагонист", value: "333" },
- { label: "Немой персонаж", value: "469" },
- { label: "Ненадежный рассказчик", value: "739" },
- { label: "Непримечательный герой", value: "65" },
- { label: "Нерешительный протагонист", value: "363" },
- { label: "Несгибаемый главный герой", value: "676" },
- { label: "Несколько главных героев", value: "460" },
- { label: "Несколько миров", value: "461" },
- { label: "Несколько перерожденцев", value: "462" },
- { label: "Несколько попаданцев", value: "464" },
- { label: "Несравненная скорость культивации", value: "269" },
- { label: "Нехватка/отсутствие здравого смысла", value: "385" },
- { label: "Нечестный протагонист", value: "205" },
- { label: "НИИТ", value: "481" },
- { label: "Ниндзя", value: "486" },
- { label: "Обмен телами", value: "95" },
- { label: "Оборотни", value: "754" },
- { label: "Объект любви влюбился первым", value: "405" },
- { label: "Объект любви популярен", value: "543" },
- { label: "Огнестрельное оружие", value: "280" },
- { label: "Ограничение на время жизни", value: "394" },
- { label: "Одержимость", value: "544" },
- { label: "Один родитель", value: "651" },
- { label: "Одинокий главный герой", value: "399" },
- { label: "Одиночество", value: "398" },
- { label: "Одно тело на двоих", value: "634" },
- { label: "Око силы", value: "253" },
- { label: "Оммёдзи", value: "498" },
- { label: "Организованная преступность", value: "500" },
- { label: "Оргия", value: "501" },
- { label: "Орки", value: "499" },
- { label: "Основано на аниме", value: "74" },
- { label: "Основано на видеоигре", value: "72" },
- { label: "Основано на визуальной новелле", value: "73" },
- { label: "Основано на песне", value: "70" },
- { label: "Основано на фильме", value: "69" },
- { label: "Осторожный главный герой", value: "117" },
- { label: "От ненависти до любви один шаг", value: "239" },
- { label: "От сильного с сильнейшему", value: "684" },
- { label: "От слабого к сильному", value: "752" },
- { label: "Отаку", value: "503" },
- { label: "Отзывчивая любовь", value: "380" },
- { label: "Отзывчивый главный герой", value: "339" },
- { label: "Отношение учитель-ученик", value: "430" },
- { label: "Отношения бог-человек", value: "315" },
- { label: "Отношения между учителем и учеником", value: "687" },
- { label: "Отношения начальник-подчинённый", value: "101" },
- { label: "Отношения против воли", value: "286" },
- { label: "Отношения с нечеловеком", value: "353" },
- { label: "Отношения сэмпай-кохай", value: "621" },
- { label: "Отношения хозяин-слуга", value: "431" },
- { label: "Отомэ-игры", value: "504" },
- { label: "ОТП", value: "562" },
- { label: "Отшельники", value: "505" },
- { label: "Офисный работник", value: "600" },
- { label: "Официанты", value: "748" },
- { label: "Охотники", value: "355" },
- { label: "Падшие ангелы", value: "255" },
- { label: "Падшие дворяне", value: "256" },
- { label: "Пайзури", value: "511" },
- { label: "Паразиты", value: "513" },
- { label: "Параллельные миры", value: "512" },
- { label: "Парк развлечений", value: "32" },
- { label: "Пародия", value: "515" },
- { label: "Перемещение между мирами", value: "758" },
- { label: "Переодевание", value: "167" },
- { label: "Переплавка пилюль", value: "529" },
- { label: "Перерождение в девушку", value: "420" },
- { label: "Перерождение в другом мире", value: "580" },
- { label: "Перерождение в другом мире", value: "720" },
- { label: "Перерождение в игровом мире", value: "579" },
- { label: "Перерождение в монстра", value: "577" },
- { label: "Персонажи с мазохистскими наклонностями", value: "429" },
- { label: "Персонажи с садистскими наклонностями", value: "598" },
- { label: "Петля времени", value: "709" },
- { label: "Петтинг", value: "328" },
- { label: "Писатели", value: "761" },
- { label: "Питомцы", value: "522" },
- { label: "Племенное общество", value: "726" },
- { label: "Повелитель демонов", value: "191" },
- { label: "Повествование от нескольких лиц", value: "459" },
- { label: "Поглощение навыков", value: "653" },
- { label: "Подземелья", value: "223" },
- { label: "Поздно начинающаяся романтическая линия", value: "387" },
- { label: "Политика", value: "538" },
- { label: "Полулюди", value: "190" },
- { label: "Помолвка", value: "240" },
- { label: "Попаданец в другой мир", value: "723" },
- { label: "Попаданец в игровой мир", value: "722" },
- { label: "Постапокалипсис", value: "546" },
- { label: "Постижение Дао", value: "181" },
- { label: "Потеря девственности", value: "282" },
- { label: "Потустороннее пространство", value: "416" },
- { label: "Похищения", value: "379" },
- { label: "Прагматичный главный герой", value: "549" },
- { label: "Предательство", value: "83" },
- { label: "Предвидение", value: "550" },
- { label: "Преследователи", value: "674" },
- { label: "Преступление", value: "165" },
- { label: "Преступность", value: "166" },
- { label: "Приёмные дети", value: "19" },
- { label: "Призванный герой", value: "693" },
- { label: "Призраки", value: "309" },
- { label: "Приключения", value: "22" },
- { label: "Принуждение", value: "108" },
- { label: "Приручатель", value: "453" },
- { label: "Прислуга", value: "625" },
- { label: "Приставучий любовник", value: "136" },
- { label: "Притворная любовь", value: "552" },
- { label: "Пришельцы", value: "28" },
- { label: "Программист", value: "558" },
- { label: "Произведение - обладатель наград", value: "66" },
- { label: "Проклятия", value: "175" },
- { label: "Промывка мозгов", value: "102" },
- { label: "Пропуск времени", value: "712" },
- { label: "Пророчества", value: "559" },
- { label: "Протагонист в очках", value: "312" },
- { label: "Протагонист раб", value: "657" },
- { label: "Психокинез", value: "565" },
- { label: "Психопаты", value: "566" },
- { label: "Путешествия", value: "759" },
- { label: "Путешествия во времени", value: "713" },
- { label: "Пытки", value: "716" },
- { label: "Рабы", value: "658" },
- { label: "Развитие отношений", value: "160" },
- { label: "Развитие персонажа", value: "119" },
- { label: "Раздвоение личности", value: "458" },
- { label: "Размеренная романтика", value: "661" },
- { label: "Разница в статусе", value: "201" },
- { label: "Разорванная помолвка", value: "104" },
- { label: "Разумные предметы", value: "622" },
- { label: "Рай", value: "336" },
- { label: "Раняя романтика", value: "227" },
- { label: "Расизм", value: "573" },
- { label: "Расследования", value: "372" },
- { label: "Ребенок — главный герой", value: "126" },
- { label: "Реверс-гарем", value: "589" },
- { label: "Реверс-изнасилование", value: "590" },
- { label: "Резкая смена характера", value: "520" },
- { label: "Реинкарнация", value: "581" },
- { label: "Религии", value: "582" },
- { label: "Ресторан", value: "585" },
- { label: "Решительный главный герой", value: "199" },
- { label: "Робкий протагонист", value: "714" },
- { label: "Родительсткий комплекс", value: "514" },
- { label: "Родные не связанные кровью", value: "647" },
- { label: "Родословные", value: "94" },
- { label: "РПГ-система", value: "392" },
- { label: "Рыцари", value: "383" },
- { label: "Самовлюбленный главный герой", value: "477" },
- { label: "Самоубийства", value: "692" },
- { label: "Самураи", value: "601" },
- { label: "Сборник коротких историй", value: "144" },
- { label: "Свадьба", value: "426" },
- { label: "Связанные сюжетные линии", value: "369" },
- { label: "Святые", value: "599" },
- { label: "Секреты", value: "614" },
- { label: "Секс втроём", value: "707" },
- { label: "Секс-рабыня", value: "629" },
- { label: "Семейная любовь", value: "257" },
- { label: "Семь добродетелей", value: "627" },
- { label: "Семь смертных грехов", value: "626" },
- { label: "Серийные убийцы", value: "624" },
- { label: "Сикигами", value: "637" },
- { label: "Сильная любовь от старших", value: "214" },
- { label: "Синдром восьмиклассника", value: "132" },
- { label: "Синдром сестры", value: "652" },
- { label: "Сироты", value: "502" },
- { label: "Системный администратор", value: "699" },
- { label: "Скромный главный герой", value: "409" },
- { label: "Скрытые романтические отношения", value: "23" },
- { label: "Скрытые способности", value: "343" },
- { label: "Скряга", value: "450" },
- { label: "Скульпторы", value: "606" },
- { label: "Слабая романтика", value: "688" },
- { label: "Слабый главный герой", value: "751" },
- { label: "Сложные семейные отношения", value: "149" },
- { label: "Смена расы", value: "572" },
- { label: "Смертельное заболевание", value: "704" },
- { label: "Смерть", value: "185" },
- { label: "Смерть любимых", value: "186" },
- { label: "Современность", value: "448" },
- { label: "Современные знания в слаборазвитых мирах", value: "449" },
- { label: "Сожительство", value: "141" },
- { label: "Создание артефактов", value: "57" },
- { label: "Создание клана", value: "133" },
- { label: "Создание королевства", value: "381" },
- { label: "Создание навыков", value: "655" },
- { label: "Сокрытие истинных способностей", value: "344" },
- { label: "Сокрытие личности", value: "345" },
- { label: "Солдаты", value: "664" },
- { label: "Сон", value: "659" },
- { label: "Соседи по комнате", value: "595" },
- { label: "Социальные изгои", value: "663" },
- { label: "Спасение мира", value: "602" },
- { label: "Спорящая пара", value: "84" },
- { label: "Способность перевоплощения", value: "719" },
- { label: "Средневековье", value: "436" },
- { label: "Стеснительные персонажи", value: "643" },
- { label: "Стокгольмский синдром", value: "575" },
- { label: "Стокгольмский синдром", value: "675" },
- { label: "Стратег", value: "681" },
- { label: "Стратегические битвы", value: "680" },
- { label: "Стрелки", value: "325" },
- { label: "Стрельба из лука", value: "50" },
- { label: "Студенческий совет", value: "686" },
- { label: "Судьба", value: "197" },
- { label: "Суккубы", value: "689" },
- { label: "Суперспособности", value: "669" },
- { label: "Суровая тренировка", value: "332" },
- { label: "Сцены насилия", value: "195" },
- { label: "Таинственное прошлое", value: "472" },
- { label: "Тайная личность", value: "610" },
- { label: "Тайные организации", value: "611" },
- { label: "Телохранители", value: "98" },
- { label: "Тентакли", value: "703" },
- { label: "Террористы", value: "705" },
- { label: "Технологический разрыв", value: "702" },
- { label: "Тихие герои", value: "568" },
- { label: "Толстый протагонист", value: "271" },
- { label: "Торговцы", value: "438" },
- { label: "Травник", value: "340" },
- { label: "Трагичное прошлое", value: "718" },
- { label: "Трап", value: "725" },
- { label: "Триллер", value: "708" },
- { label: "Турнир", value: "76" },
- { label: "Тюрьма", value: "556" },
- { label: "Убийства", value: "465" },
- { label: "Уверенный в себе главный герой", value: "151" },
- { label: "Умная пара", value: "662" },
- { label: "Умный главный герой", value: "135" },
- { label: "Уникальная техника культивации", value: "735" },
- { label: "Уникальные оружия", value: "737" },
- { label: "Управление бизнесом", value: "109" },
- { label: "Управление временем", value: "710" },
- { label: "Управление пространством", value: "667" },
- { label: "Ускоренный рост", value: "6" },
- { label: "Учёные", value: "605" },
- { label: "Учителя", value: "700" },
- { label: "Фамильяры", value: "258" },
- { label: "Фанатизм", value: "264" },
- { label: "Фармацевт", value: "523" },
- { label: "Феи", value: "254" },
- { label: "Фениксы", value: "526" },
- { label: "Фетиш на грудь", value: "103" },
- { label: "Фетиш на очки", value: "311" },
- { label: "Философия", value: "524" },
- { label: "Фобии/Страхи", value: "525" },
- { label: "Фольклор", value: "285" },
- { label: "Формирование армии", value: "54" },
- { label: "Футанари", value: "295" },
- { label: "Футуристический мир", value: "296" },
- { label: "Фэнтези", value: "267" },
- { label: "Фэнтезийные существа", value: "266" },
- { label: "Хакеры", value: "326" },
- { label: "Харизматичный протагонист", value: "120" },
- { label: "Хитрый главный герой", value: "173" },
- { label: "Хладнокровный главный герой", value: "112" },
- { label: "Художники", value: "60" },
- { label: "Хулиганы", value: "188" },
- { label: "Цундере", value: "728" },
- { label: "Чат", value: "122" },
- { label: "Человек-оружие", value: "352" },
- { label: "Человекоподобный главный герой", value: "354" },
- { label: "Честный главный герой", value: "348" },
- { label: "Четкие любовные убеждения", value: "683" },
- { label: "Читы", value: "123" },
- { label: "Чудаковатые герои", value: "569" },
- { label: "Чужие воспоминания", value: "721" },
- { label: "Шантаж", value: "89" },
- { label: "Шеф-повар", value: "124" },
- { label: "Школа для девочек", value: "29" },
- { label: "Шоу-бизнес", value: "642" },
- { label: "Шпионы", value: "670" },
- { label: "Эволюция", value: "250" },
- { label: "Эгоистичный главный герой", value: "618" },
- { label: "Экзорцизм", value: "252" },
- { label: "Экономика", value: "230" },
- { label: "Эксгибиционизм", value: "251" },
- { label: "Эксперименты на людях", value: "351" },
- { label: "Элементальная магия", value: "234" },
- { label: "Элементы игрового мира", value: "299" },
- { label: "Элементы романтики", value: "594" },
- { label: "Элементы юри", value: "640" },
- { label: "Элементы яоя", value: "641" },
- { label: "Эльфы", value: "235" },
- { label: "Эпизодичность", value: "243" },
- { label: "Язвительные персонажи", value: "635" },
- { label: "Языковой барьер", value: "386" },
- { label: "Яндере", value: "762" },
- { label: "Яойщица", value: "294" },
- { label: "Японские силы самообороны", value: "378" },
- { label: "R-15", value: "570" },
- { label: "R-18", value: "571" },
- ],
- type: FilterTypes.CheckboxGroup,
- },
- genres: {
- label: "Жанры",
- value: [],
- options: [
- { label: "16+", value: "1" },
- { label: "18+", value: "2" },
- { label: "Боевик", value: "3" },
- { label: "Боевые искусства", value: "4" },
- { label: "Вампиры", value: "47" },
- { label: "Военное", value: "44" },
- { label: "Гарем", value: "5" },
- { label: "Демоны", value: "48" },
- { label: "Детектив", value: "6" },
- { label: "Дзёсей", value: "50" },
- { label: "Драма", value: "7" },
- { label: "Игры", value: "45" },
- { label: "Историческое", value: "8" },
- { label: "Киберпанк", value: "9" },
- { label: "Комедия", value: "10" },
- { label: "Космос", value: "46" },
- { label: "Магия", value: "42" },
- { label: "Махо-сёдзё", value: "12" },
- { label: "Меха", value: "13" },
- { label: "Мистика", value: "14" },
- { label: "Музыка", value: "49" },
- { label: "Научная фантастика", value: "15" },
- { label: "Пародия", value: "16" },
- { label: "Повседневность", value: "17" },
- { label: "Приключения", value: "18" },
- { label: "Психологическое", value: "19" },
- { label: "Романтика", value: "20" },
- { label: "Сверхъестественное", value: "21" },
- { label: "Сёдзё", value: "22" },
- { label: "Сёдзё-ай", value: "23" },
- { label: "Сёнэн", value: "24" },
- { label: "Сёнэн-ай", value: "25" },
- { label: "Смена пола", value: "26" },
- { label: "Современность", value: "27" },
- { label: "Спорт", value: "28" },
- { label: "Супер сила", value: "43" },
- { label: "Сэйнэн", value: "29" },
- { label: "Трагедия", value: "32" },
- { label: "Триллер", value: "33" },
- { label: "Ужасы", value: "34" },
- { label: "Уся", value: "35" },
- { label: "Фэнтези", value: "36" },
- { label: "Школьная жизнь", value: "37" },
- { label: "Этти", value: "38" },
- { label: "Юри", value: "39" },
- { label: "Яой", value: "40" },
- { label: "LitRPG", value: "41" },
- ],
- type: FilterTypes.CheckboxGroup,
- },
- } satisfies Filters;
-}
-
-export default new TL();
-
-interface response {
- data: Data;
-}
-
-interface Data {
- projects?: Projects;
- project?: Project;
- chapter?: DataChapter;
-}
-
-interface DataChapter {
- text: Text;
-}
-
-interface Text {
- text: string;
-}
-
-interface Project {
- title: string;
- translationStatus: string;
- fullUrl: string;
- covers: Cover[];
- persons: Person[];
- genres: Genre[];
- tags: Genre[];
- annotation: Text;
- subprojects: Subprojects;
-}
-
-interface Cover {
- url: string;
-}
-
-interface Genre {
- nameRu: string;
- nameEng: string;
-}
-
-interface Person {
- role: string;
- name: Name;
-}
-
-interface Name {
- firstName: string;
- lastName: string;
-}
-
-interface Subprojects {
- content: SubprojectsContent[];
-}
-
-interface SubprojectsContent {
- title: null | string;
- volumes: Volumes;
-}
-
-interface Volumes {
- content: VolumesContent[];
-}
-
-interface VolumesContent {
- shortName: string;
- chapters: ChapterElement[];
-}
-
-interface ChapterElement {
- title: string;
- publishDate: Date;
- fullUrl: string;
- published: boolean;
-}
-
-interface Projects {
- content: ProjectsContent[];
-}
-
-interface ProjectsContent {
- title: string;
- fullUrl: string;
- covers: Cover[];
-}
+import { Plugin } from "@typings/plugin";
+import { FilterTypes, Filters } from "@libs/filterInputs";
+import { defaultCover } from "@libs/defaultCover";
+import { fetchApi, fetchFile } from "@libs/fetch";
+import { NovelStatus } from "@libs/novelStatus";
+import { load as parseHTML } from "cheerio";
+import dayjs from "dayjs";
+
+class TL implements Plugin.PluginBase {
+ id = "TL";
+ name = "NovelTL";
+ site = "https://novel.tl";
+ version = "1.0.0";
+ icon = "src/ru/noveltl/icon.png";
+
+ async popularNovels(
+ page: number,
+ { filters }: Plugin.PopularNovelsOptions,
+ ): Promise {
+ const result = await fetchApi(this.site + "/api/site/v2/graphql", {
+ method: "post",
+ headers: {
+ Accept: "application/json, text/plain, */*",
+ "Accept-Language": "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3",
+ "Content-Type": "application/json",
+ },
+ referrer: this.site,
+ body: JSON.stringify({
+ operationName: "Projects",
+ query:
+ "query Projects($hostname:String! $filter:SearchFilter $page:Int $limit:Int){projects(section:{fullUrl:$hostname}filter:$filter page:{pageSize:$limit,pageNumber:$page}){content{title fullUrl covers{url}}}}",
+ variables: {
+ filter: {
+ tags: filters?.tags?.value || [],
+ genres: filters?.genres?.value || [],
+ },
+ hostname: "novel.tl",
+ limit: 40,
+ page,
+ },
+ }),
+ });
+
+ const json = (await result.json()) as response;
+ const novels: Plugin.NovelItem[] = [];
+
+ json.data?.projects?.content?.forEach((novel) =>
+ novels.push({
+ name: novel.title,
+ url: "https://" + novel.fullUrl,
+ cover: novel?.covers?.[0]?.url
+ ? this.site + novel.covers[0].url
+ : defaultCover,
+ }),
+ );
+
+ return novels;
+ }
+
+ async parseNovelAndChapters(novelUrl: string): Promise {
+ const result = await fetchApi(this.site + "/api/site/v2/graphql", {
+ method: "post",
+ headers: {
+ Accept: "application/json, text/plain, */*",
+ "Accept-Language": "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3",
+ "Content-Type": "application/json",
+ },
+ referrer: this.site,
+ body: JSON.stringify({
+ operationName: "Book",
+ query:
+ 'query Book($url:String){project(project:{fullUrl:$url}){title translationStatus fullUrl covers{url}persons(langs:["ru","en","*"],roles:["author","illustrator"]){role name{firstName lastName}}genres{nameRu nameEng}tags{nameRu nameEng}annotation{text}subprojects{content{title volumes{content{shortName chapters{title publishDate fullUrl published}}}}}}}',
+ variables: {
+ url: novelUrl,
+ },
+ }),
+ });
+ const json = (await result.json()) as response;
+ const novel: Plugin.SourceNovel = {
+ url: novelUrl,
+ name: json.data.project?.title,
+ cover: json.data.project?.covers?.[0]?.url
+ ? this.site + json.data.project.covers[0].url
+ : defaultCover,
+ summary: json.data.project?.annotation?.text,
+ status:
+ json.data.project?.translationStatus === "active"
+ ? NovelStatus.Ongoing
+ : NovelStatus.Completed,
+ };
+
+ const genres = [json.data.project?.tags, json.data.project?.genres]
+ .flat()
+ .map((item) => item?.nameRu || item?.nameEng)
+ .filter((item) => item);
+
+ if (genres?.length) {
+ novel.genres = genres.join(", ");
+ }
+
+ json.data.project?.persons?.forEach((person) => {
+ if (person.role == "author" && person.name.firstName) {
+ novel.author =
+ person.name.firstName + " " + (person.name?.lastName || "");
+ }
+ if (person.role == "illustrator" && person.name.firstName) {
+ novel.artist =
+ person.name.firstName + " " + (person.name?.lastName || "");
+ }
+ });
+
+ const chapters: Plugin.ChapterItem[] = [];
+
+ json.data.project?.subprojects?.content?.forEach((work) =>
+ work.volumes.content.forEach((volume, volumeIndex) =>
+ volume.chapters.forEach((chapter, chapterIndex) => {
+ if (chapter.published) {
+ chapters.push({
+ name:
+ (volume.shortName || "Том " + (volumeIndex + 1)) + " " +
+ (chapter.title || "Глава " + (chapterIndex + 1)),
+ url: "https://" + chapter.fullUrl,
+ releaseTime: dayjs(chapter.publishDate).format("LLL"),
+ chapterNumber: chapters.length + 1,
+ });
+ }
+ }),
+ ),
+ );
+
+ novel.chapters = chapters;
+ return novel;
+ }
+
+ async parseChapter(chapterUrl: string): Promise {
+ const result = await fetchApi(this.site + "/api/site/v2/graphql", {
+ method: "post",
+ headers: {
+ Accept: "application/json, text/plain, */*",
+ "Accept-Language": "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3",
+ "Content-Type": "application/json",
+ },
+ referrer: this.site,
+ body: JSON.stringify({
+ query:
+ "query($url:String){chapter(chapter:{fullUrl:$url}){text{text}}}",
+ variables: {
+ url: decodeURI(chapterUrl),
+ },
+ }),
+ });
+ const json = (await result.json()) as response;
+
+ const loadedCheerio = parseHTML(json.data.chapter?.text?.text || "");
+ loadedCheerio("p > a[href]").each((index, element) => {
+ let src = loadedCheerio(element).attr("href") || "";
+ if (!src.startsWith("http")) {
+ src = this.site + src;
+ }
+ loadedCheerio(element).find("picture").remove();
+ loadedCheerio(element).removeAttr("href");
+ loadedCheerio(`
`).appendTo(element);
+ });
+
+ const chapterText = loadedCheerio.html();
+ return chapterText;
+ }
+
+ async searchNovels(
+ searchTerm: string,
+ page: number | undefined = 1,
+ ): Promise {
+ const result = await fetchApi(this.site + "/api/site/v2/graphql", {
+ method: "post",
+ headers: {
+ Accept: "application/json, text/plain, */*",
+ "Accept-Language": "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3",
+ "Content-Type": "application/json",
+ },
+ referrer: this.site,
+ body: JSON.stringify({
+ operationName: "Projects",
+ query:
+ "query Projects($hostname:String! $filter:SearchFilter $page:Int $limit:Int){projects(section:{fullUrl:$hostname}filter:$filter page:{pageSize:$limit,pageNumber:$page}){content{title fullUrl covers{url}}}}",
+ variables: {
+ filter: {
+ query: searchTerm,
+ },
+ hostname: "novel.tl",
+ limit: 40,
+ page,
+ },
+ }),
+ });
+ const json = (await result.json()) as response;
+ const novels: Plugin.NovelItem[] = [];
+
+ json?.data?.projects?.content?.forEach((novel) =>
+ novels.push({
+ name: novel.title,
+ url: "https://" + novel.fullUrl,
+ cover: novel?.covers?.[0]?.url
+ ? this.site + novel.covers[0].url
+ : defaultCover,
+ }),
+ );
+
+ return novels;
+ }
+
+ fetchImage = fetchFile;
+
+ filters = {
+ tags: {
+ label: "Тэги",
+ value: [],
+ options: [
+ { label: "Автоматы", value: "64" },
+ { label: "Агрессивные персонажи", value: "26" },
+ { label: "Ад", value: "338" },
+ { label: "Адаптация манги", value: "8" },
+ { label: "Академия", value: "5" },
+ { label: "Актёрское искусство", value: "7" },
+ { label: "Актеры озвучки", value: "746" },
+ { label: "Алхимия", value: "27" },
+ { label: "Альтернативная реальность", value: "30" },
+ { label: "Амнезия", value: "31" },
+ { label: "Анабиоз", value: "170" },
+ { label: "Анал", value: "33" },
+ { label: "Ангелы", value: "38" },
+ { label: "Андроиды", value: "37" },
+ { label: "Анти-рост персонажа", value: "25" },
+ { label: "Антигерой", value: "43" },
+ { label: "Антикварный магазин", value: "44" },
+ { label: "Антимагия", value: "41" },
+ { label: "Антиутопия", value: "225" },
+ { label: "Апатичный главный герой", value: "46" },
+ { label: "Апокалипсис", value: "47" },
+ { label: "Аристократия", value: "51" },
+ { label: "Армия", value: "53" },
+ { label: "Артефакты", value: "58" },
+ { label: "Асоциальный главный герой", value: "42" },
+ { label: "Ассасины", value: "61" },
+ { label: "Атмосфера Европы", value: "245" },
+ { label: "Банды", value: "302" },
+ { label: "БДСМ", value: "77" },
+ { label: "Бедный главный герой", value: "541" },
+ { label: "Бездушный главный герой", value: "143" },
+ { label: "Беззаботный герой", value: "115" },
+ { label: "Безответная любовь", value: "213" },
+ { label: "Безответная любовь", value: "740" },
+ { label: "Безработные", value: "377" },
+ { label: "Беременность", value: "551" },
+ { label: "Бескорыстная любовь", value: "733" },
+ { label: "Бессмертные", value: "359" },
+ { label: "Бесстрашный главный герой", value: "274" },
+ { label: "Библиотека", value: "393" },
+ { label: "Биография", value: "86" },
+ { label: "Близнецы", value: "729" },
+ { label: "Богачи", value: "753" },
+ { label: "Боги", value: "318" },
+ { label: "Богини", value: "316" },
+ { label: "Богоподобный протагонист", value: "314" },
+ { label: "Боевая академия", value: "75" },
+ { label: "Боевая парочка", value: "547" },
+ { label: "Божественная защита", value: "208" },
+ { label: "Божественная сила", value: "317" },
+ { label: "Болеющие персонажи", value: "648" },
+ { label: "Борьба за власть", value: "548" },
+ { label: "Брак по расчету", value: "55" },
+ { label: "Братство", value: "106" },
+ { label: "Братья или сёстры", value: "646" },
+ { label: "Брошенные дети", value: "1" },
+ { label: "Бывший герой", value: "290" },
+ { label: "Вампиры", value: "742" },
+ { label: "Ваншот", value: "496" },
+ { label: "Вдали от родителей", value: "3" },
+ { label: "Ведьмы", value: "756" },
+ { label: "Везучий главный герой", value: "411" },
+ { label: "Верные подданные", value: "410" },
+ { label: "Вероломные герои/плетение интриг", value: "424" },
+ { label: "Взросление персонажа", value: "24" },
+ { label: "Видит то, чего остальной люд не в силах", value: "617" },
+ { label: "Виртуальная реальность", value: "744" },
+ { label: "Владелец магазина", value: "677" },
+ { label: "Владелец уникального оружия", value: "736" },
+ { label: "Властные персонажи", value: "545" },
+ { label: "Влияние прошлого", value: "517" },
+ { label: "Внезапное обогащение", value: "691" },
+ { label: "Внезапное обретение силы", value: "690" },
+ { label: "Военные хроники", value: "749" },
+ { label: "Возвращение в родной мир", value: "587" },
+ { label: "Война", value: "750" },
+ { label: "Вокалоид", value: "745" },
+ { label: "Волшебные твари", value: "413" },
+ { label: "Воскрешение", value: "586" },
+ { label: "Воспитанный главный герой", value: "537" },
+ { label: "Воспоминания прошлого", value: "283" },
+ { label: "Враги становятся союзниками", value: "238" },
+ { label: "Врата в иной мир", value: "303" },
+ { label: "Временной парадокс", value: "711" },
+ { label: "Вторжение на Землю", value: "228" },
+ { label: "Второй шанс", value: "608" },
+ { label: "Выживание", value: "695" },
+ { label: "Вынужденные условия проживания", value: "287" },
+ { label: "Высокомерный герой", value: "56" },
+ { label: "Гадание", value: "207" },
+ { label: "Галлюцинации", value: "189" },
+ { label: "Гарем рабов", value: "656" },
+ { label: "Геймеры", value: "301" },
+ { label: "Генетические модификации", value: "306" },
+ { label: "Герои", value: "341" },
+ { label: "Герои непонятного пола", value: "36" },
+ { label: "Героиня девушка-сорванец", value: "715" },
+ { label: "Героиня красавица", value: "81" },
+ { label: "Герой влюбляется первым", value: "561" },
+ { label: "Герой использует щит", value: "636" },
+ { label: "Герой красавец", value: "329" },
+ { label: "Герой со множеством тел", value: "564" },
+ { label: "Герой-бесстыдник", value: "632" },
+ { label: "Герой-извращенец", value: "521" },
+ { label: "Герой-трудяга", value: "330" },
+ { label: "Герой-яндере", value: "421" },
+ { label: "Гетерохромия", value: "342" },
+ { label: "Гильдии", value: "324" },
+ { label: "Гиперопека", value: "509" },
+ { label: "Главная героиня — женщина", value: "277" },
+ { label: "Главный герой - гений", value: "308" },
+ { label: "Главный герой - Моб", value: "446" },
+ { label: "Главный герой — знаменитость", value: "263" },
+ { label: "Главный герой — мужчина", value: "419" },
+ { label: "Главный герой в поисках гарема", value: "331" },
+ { label: "Главный герой заранее готовится", value: "557" },
+ { label: "Главный герой не человек", value: "488" },
+ { label: "Главный герой приёмный", value: "20" },
+ { label: "Главный герой сразу силён", value: "563" },
+ { label: "Гладиаторы", value: "310" },
+ { label: "Глухой к любви герой", value: "194" },
+ { label: "Гоблины", value: "313" },
+ { label: "Големы", value: "319" },
+ { label: "Гомункул", value: "347" },
+ { label: "Горничные", value: "418" },
+ { label: "Государственные интриги", value: "212" },
+ { label: "Гринд", value: "322" },
+ { label: "Давняя травма", value: "518" },
+ { label: "Двойник", value: "97" },
+ { label: "Дворецкие", value: "111" },
+ { label: "Дворфы", value: "224" },
+ { label: "Дворяне", value: "487" },
+ { label: "Двоюродные братья или сёстры", value: "162" },
+ { label: "Девочки-волшебницы", value: "415" },
+ { label: "Демоны", value: "193" },
+ { label: "Депрессия", value: "196" },
+ { label: "Детектив", value: "198" },
+ { label: "Детективное расследование", value: "473" },
+ { label: "Детское насилие", value: "125" },
+ { label: "Детское обещание", value: "130" },
+ { label: "Дискриминация", value: "203" },
+ { label: "Длительный разрыв отношений", value: "400" },
+ { label: "Домашняя жизнь", value: "45" },
+ { label: "Драконы", value: "218" },
+ { label: "Древний Китай", value: "34" },
+ { label: "Дружба", value: "293" },
+ { label: "Друзья детства", value: "128" },
+ { label: "Друзья становятся врагами", value: "292" },
+ { label: "Духи", value: "673" },
+ { label: "Духовная сила", value: "665" },
+ { label: "Духовный наставник", value: "671" },
+ { label: "Душещипательная история", value: "335" },
+ { label: "Души", value: "666" },
+ { label: "Дьявольский путь культивации", value: "192" },
+ { label: "Ёкай", value: "763" },
+ { label: "Есть аниме-адаптация", value: "10" },
+ { label: "Есть видеоигра", value: "13" },
+ { label: "Есть дорама-адаптация", value: "11" },
+ { label: "Есть манга-адаптация", value: "14" },
+ { label: "Есть манхва-адаптация", value: "16" },
+ { label: "Есть маньхуа-адаптация", value: "15" },
+ { label: "Есть фильм", value: "17" },
+ { label: "Есть CD дорама-адаптация", value: "12" },
+ { label: "Жёсткий главный герой", value: "597" },
+ { label: "Жестокие персонажи", value: "4" },
+ { label: "Жёстокие персонажи", value: "169" },
+ { label: "Животное-спутник", value: "78" },
+ { label: "Жизнь в одиночку", value: "396" },
+ { label: "Жрецы", value: "555" },
+ { label: "Жрицы", value: "554" },
+ { label: "Забота о детях", value: "127" },
+ { label: "Заботливый главный герой", value: "116" },
+ { label: "Загадочное заболевание", value: "471" },
+ { label: "Загадочное прошлое родителей", value: "470" },
+ { label: "Заговоры", value: "154" },
+ { label: "Закалка тела", value: "96" },
+ { label: "Закон джунглей", value: "682" },
+ { label: "Закулисная борба", value: "603" },
+ { label: "Замкнутый главный герой", value: "371" },
+ { label: "Запечатанная сила", value: "607" },
+ { label: "Затворник", value: "346" },
+ { label: "Звери", value: "80" },
+ { label: "Зверолюди", value: "39" },
+ { label: "Звероподобные", value: "79" },
+ { label: "Земледелие", value: "268" },
+ { label: "Злобные благородные девы", value: "743" },
+ { label: "Зловещие организации", value: "247" },
+ { label: "Злой главный герой", value: "248" },
+ { label: "Злые боги", value: "246" },
+ { label: "Злые религии", value: "249" },
+ { label: "Знаменитости", value: "118" },
+ { label: "Знания из прошлой жизни", value: "553" },
+ { label: "Зомби", value: "767" },
+ { label: "Игра на выживание", value: "696" },
+ { label: "Игровая рейтинговая система", value: "300" },
+ { label: "Из грязи в князи", value: "542" },
+ { label: "Известные родители", value: "262" },
+ { label: "Изменение внешнего вида", value: "48" },
+ { label: "Изнасилование", value: "574" },
+ { label: "Инвалидность", value: "202" },
+ { label: "Индустриализация", value: "364" },
+ { label: "Инженер", value: "241" },
+ { label: "Инцест", value: "361" },
+ { label: "Искажённая личность", value: "730" },
+ { label: "Искусственный интеллект", value: "59" },
+ { label: "Исполнение желаний", value: "755" },
+ { label: "Каннибализм", value: "113" },
+ { label: "Карточные игры", value: "114" },
+ { label: "Кладбищенский смотритель", value: "321" },
+ { label: "Классика", value: "134" },
+ { label: "Книги", value: "99" },
+ { label: "Книги навыков", value: "654" },
+ { label: "Книжный червь", value: "100" },
+ { label: "Коллеги", value: "140" },
+ { label: "Колледж/Университет", value: "145" },
+ { label: "Командная работа", value: "701" },
+ { label: "Комедийный подтекст", value: "147" },
+ { label: "Комплекс брата", value: "105" },
+ { label: "Комплекс неполноценности", value: "365" },
+ { label: "Контракты", value: "155" },
+ { label: "Контроль разума", value: "441" },
+ { label: "Конфликт в семье", value: "261" },
+ { label: "Конфликт верности", value: "153" },
+ { label: "Копейщик", value: "668" },
+ { label: "Королевская особа", value: "596" },
+ { label: "Королевства", value: "382" },
+ { label: "Короткий рассказ", value: "638" },
+ { label: "Коррупция", value: "157" },
+ { label: "Космические Войны", value: "158" },
+ { label: "Космос", value: "507" },
+ { label: "Косплей", value: "159" },
+ { label: "Кража способностей", value: "2" },
+ { label: "Крафтинг", value: "164" },
+ { label: "Кризис личности", value: "357" },
+ { label: "Кровь", value: "320" },
+ { label: "Кружки, клубы", value: "138" },
+ { label: "Кудэрэ", value: "384" },
+ { label: "Кузнец", value: "90" },
+ { label: "Кукловоды", value: "567" },
+ { label: "Куклы/Марионетки", value: "211" },
+ { label: "Кулинария", value: "156" },
+ { label: "Культивация", value: "171" },
+ { label: "Куннилингус", value: "172" },
+ { label: "Легенды", value: "391" },
+ { label: "Легкая жизнь", value: "229" },
+ { label: "Лекари", value: "334" },
+ { label: "Ленивый главный герой", value: "389" },
+ { label: "Лидерство", value: "390" },
+ { label: "Любит персонажа младше себя", value: "765" },
+ { label: "Любит персонажа старше себя", value: "494" },
+ { label: "Любовное соперничество", value: "406" },
+ { label: "Любовные треугольники", value: "407" },
+ { label: "Любовь детства", value: "129" },
+ { label: "Любовь с первого взгляда", value: "404" },
+ { label: "Любящие родители", value: "215" },
+ { label: "Маги", value: "757" },
+ { label: "Магические технологии", value: "417" },
+ { label: "Магия", value: "412" },
+ { label: "Магия призыва", value: "694" },
+ { label: "Маленькие девочки", value: "397" },
+ { label: "Мангака", value: "423" },
+ { label: "Маниакальная любовь", value: "492" },
+ { label: "Марти Сью", value: "508" },
+ { label: "Мастер подземелий", value: "222" },
+ { label: "Мастурбация", value: "432" },
+ { label: "Матриархат", value: "433" },
+ { label: "Межпространственные путешествия", value: "370" },
+ { label: "Менеджмент", value: "422" },
+ { label: "Месть", value: "588" },
+ { label: "Мечи и магия", value: "697" },
+ { label: "Мечники", value: "698" },
+ { label: "Миленькие дети", value: "176" },
+ { label: "Милитаризм", value: "439" },
+ { label: "Миловидная история", value: "178" },
+ { label: "Милый главный герой", value: "177" },
+ { label: "Минет", value: "275" },
+ { label: "Мировое древо", value: "760" },
+ { label: "Миролюбивый главный герой", value: "510" },
+ { label: "Мифология", value: "475" },
+ { label: "Младшие сёстры", value: "766" },
+ { label: "ММОРПГ", value: "445" },
+ { label: "Множество временных линий", value: "463" },
+ { label: "Модели", value: "447" },
+ { label: "Молод не по годам", value: "49" },
+ { label: "Монстры", value: "454" },
+ { label: "Мрачность", value: "183" },
+ { label: "Музыка", value: "466" },
+ { label: "Музыкальные группы", value: "68" },
+ { label: "Мутации", value: "468" },
+ { label: "На волосок от смерти", value: "479" },
+ { label: "На все руки мастер", value: "374" },
+ { label: "Навыки имеют стоимость", value: "150" },
+ { label: "Нагота", value: "490" },
+ { label: "Наездники на драконах", value: "216" },
+ { label: "Наёмники", value: "437" },
+ { label: "Наивный главный герой", value: "476" },
+ { label: "Наследие", value: "366" },
+ { label: "Настоящая любовь", value: "200" },
+ { label: "Настоящий гарем", value: "540" },
+ { label: "Небесное испытание", value: "337" },
+ { label: "Невезучий главный герой", value: "738" },
+ { label: "Недоверчивый протагонист", value: "206" },
+ { label: "Недооцененный главный герой", value: "734" },
+ { label: "Недопонимание", value: "444" },
+ { label: "Некромант", value: "480" },
+ { label: "Нелинейное повествование", value: "489" },
+ { label: "Неловкий главный герой", value: "67" },
+ { label: "Нелюбимый протагонист", value: "333" },
+ { label: "Немой персонаж", value: "469" },
+ { label: "Ненадежный рассказчик", value: "739" },
+ { label: "Непримечательный герой", value: "65" },
+ { label: "Нерешительный протагонист", value: "363" },
+ { label: "Несгибаемый главный герой", value: "676" },
+ { label: "Несколько главных героев", value: "460" },
+ { label: "Несколько миров", value: "461" },
+ { label: "Несколько перерожденцев", value: "462" },
+ { label: "Несколько попаданцев", value: "464" },
+ { label: "Несравненная скорость культивации", value: "269" },
+ { label: "Нехватка/отсутствие здравого смысла", value: "385" },
+ { label: "Нечестный протагонист", value: "205" },
+ { label: "НИИТ", value: "481" },
+ { label: "Ниндзя", value: "486" },
+ { label: "Обмен телами", value: "95" },
+ { label: "Оборотни", value: "754" },
+ { label: "Объект любви влюбился первым", value: "405" },
+ { label: "Объект любви популярен", value: "543" },
+ { label: "Огнестрельное оружие", value: "280" },
+ { label: "Ограничение на время жизни", value: "394" },
+ { label: "Одержимость", value: "544" },
+ { label: "Один родитель", value: "651" },
+ { label: "Одинокий главный герой", value: "399" },
+ { label: "Одиночество", value: "398" },
+ { label: "Одно тело на двоих", value: "634" },
+ { label: "Око силы", value: "253" },
+ { label: "Оммёдзи", value: "498" },
+ { label: "Организованная преступность", value: "500" },
+ { label: "Оргия", value: "501" },
+ { label: "Орки", value: "499" },
+ { label: "Основано на аниме", value: "74" },
+ { label: "Основано на видеоигре", value: "72" },
+ { label: "Основано на визуальной новелле", value: "73" },
+ { label: "Основано на песне", value: "70" },
+ { label: "Основано на фильме", value: "69" },
+ { label: "Осторожный главный герой", value: "117" },
+ { label: "От ненависти до любви один шаг", value: "239" },
+ { label: "От сильного с сильнейшему", value: "684" },
+ { label: "От слабого к сильному", value: "752" },
+ { label: "Отаку", value: "503" },
+ { label: "Отзывчивая любовь", value: "380" },
+ { label: "Отзывчивый главный герой", value: "339" },
+ { label: "Отношение учитель-ученик", value: "430" },
+ { label: "Отношения бог-человек", value: "315" },
+ { label: "Отношения между учителем и учеником", value: "687" },
+ { label: "Отношения начальник-подчинённый", value: "101" },
+ { label: "Отношения против воли", value: "286" },
+ { label: "Отношения с нечеловеком", value: "353" },
+ { label: "Отношения сэмпай-кохай", value: "621" },
+ { label: "Отношения хозяин-слуга", value: "431" },
+ { label: "Отомэ-игры", value: "504" },
+ { label: "ОТП", value: "562" },
+ { label: "Отшельники", value: "505" },
+ { label: "Офисный работник", value: "600" },
+ { label: "Официанты", value: "748" },
+ { label: "Охотники", value: "355" },
+ { label: "Падшие ангелы", value: "255" },
+ { label: "Падшие дворяне", value: "256" },
+ { label: "Пайзури", value: "511" },
+ { label: "Паразиты", value: "513" },
+ { label: "Параллельные миры", value: "512" },
+ { label: "Парк развлечений", value: "32" },
+ { label: "Пародия", value: "515" },
+ { label: "Перемещение между мирами", value: "758" },
+ { label: "Переодевание", value: "167" },
+ { label: "Переплавка пилюль", value: "529" },
+ { label: "Перерождение в девушку", value: "420" },
+ { label: "Перерождение в другом мире", value: "580" },
+ { label: "Перерождение в другом мире", value: "720" },
+ { label: "Перерождение в игровом мире", value: "579" },
+ { label: "Перерождение в монстра", value: "577" },
+ { label: "Персонажи с мазохистскими наклонностями", value: "429" },
+ { label: "Персонажи с садистскими наклонностями", value: "598" },
+ { label: "Петля времени", value: "709" },
+ { label: "Петтинг", value: "328" },
+ { label: "Писатели", value: "761" },
+ { label: "Питомцы", value: "522" },
+ { label: "Племенное общество", value: "726" },
+ { label: "Повелитель демонов", value: "191" },
+ { label: "Повествование от нескольких лиц", value: "459" },
+ { label: "Поглощение навыков", value: "653" },
+ { label: "Подземелья", value: "223" },
+ { label: "Поздно начинающаяся романтическая линия", value: "387" },
+ { label: "Политика", value: "538" },
+ { label: "Полулюди", value: "190" },
+ { label: "Помолвка", value: "240" },
+ { label: "Попаданец в другой мир", value: "723" },
+ { label: "Попаданец в игровой мир", value: "722" },
+ { label: "Постапокалипсис", value: "546" },
+ { label: "Постижение Дао", value: "181" },
+ { label: "Потеря девственности", value: "282" },
+ { label: "Потустороннее пространство", value: "416" },
+ { label: "Похищения", value: "379" },
+ { label: "Прагматичный главный герой", value: "549" },
+ { label: "Предательство", value: "83" },
+ { label: "Предвидение", value: "550" },
+ { label: "Преследователи", value: "674" },
+ { label: "Преступление", value: "165" },
+ { label: "Преступность", value: "166" },
+ { label: "Приёмные дети", value: "19" },
+ { label: "Призванный герой", value: "693" },
+ { label: "Призраки", value: "309" },
+ { label: "Приключения", value: "22" },
+ { label: "Принуждение", value: "108" },
+ { label: "Приручатель", value: "453" },
+ { label: "Прислуга", value: "625" },
+ { label: "Приставучий любовник", value: "136" },
+ { label: "Притворная любовь", value: "552" },
+ { label: "Пришельцы", value: "28" },
+ { label: "Программист", value: "558" },
+ { label: "Произведение - обладатель наград", value: "66" },
+ { label: "Проклятия", value: "175" },
+ { label: "Промывка мозгов", value: "102" },
+ { label: "Пропуск времени", value: "712" },
+ { label: "Пророчества", value: "559" },
+ { label: "Протагонист в очках", value: "312" },
+ { label: "Протагонист раб", value: "657" },
+ { label: "Психокинез", value: "565" },
+ { label: "Психопаты", value: "566" },
+ { label: "Путешествия", value: "759" },
+ { label: "Путешествия во времени", value: "713" },
+ { label: "Пытки", value: "716" },
+ { label: "Рабы", value: "658" },
+ { label: "Развитие отношений", value: "160" },
+ { label: "Развитие персонажа", value: "119" },
+ { label: "Раздвоение личности", value: "458" },
+ { label: "Размеренная романтика", value: "661" },
+ { label: "Разница в статусе", value: "201" },
+ { label: "Разорванная помолвка", value: "104" },
+ { label: "Разумные предметы", value: "622" },
+ { label: "Рай", value: "336" },
+ { label: "Раняя романтика", value: "227" },
+ { label: "Расизм", value: "573" },
+ { label: "Расследования", value: "372" },
+ { label: "Ребенок — главный герой", value: "126" },
+ { label: "Реверс-гарем", value: "589" },
+ { label: "Реверс-изнасилование", value: "590" },
+ { label: "Резкая смена характера", value: "520" },
+ { label: "Реинкарнация", value: "581" },
+ { label: "Религии", value: "582" },
+ { label: "Ресторан", value: "585" },
+ { label: "Решительный главный герой", value: "199" },
+ { label: "Робкий протагонист", value: "714" },
+ { label: "Родительсткий комплекс", value: "514" },
+ { label: "Родные не связанные кровью", value: "647" },
+ { label: "Родословные", value: "94" },
+ { label: "РПГ-система", value: "392" },
+ { label: "Рыцари", value: "383" },
+ { label: "Самовлюбленный главный герой", value: "477" },
+ { label: "Самоубийства", value: "692" },
+ { label: "Самураи", value: "601" },
+ { label: "Сборник коротких историй", value: "144" },
+ { label: "Свадьба", value: "426" },
+ { label: "Связанные сюжетные линии", value: "369" },
+ { label: "Святые", value: "599" },
+ { label: "Секреты", value: "614" },
+ { label: "Секс втроём", value: "707" },
+ { label: "Секс-рабыня", value: "629" },
+ { label: "Семейная любовь", value: "257" },
+ { label: "Семь добродетелей", value: "627" },
+ { label: "Семь смертных грехов", value: "626" },
+ { label: "Серийные убийцы", value: "624" },
+ { label: "Сикигами", value: "637" },
+ { label: "Сильная любовь от старших", value: "214" },
+ { label: "Синдром восьмиклассника", value: "132" },
+ { label: "Синдром сестры", value: "652" },
+ { label: "Сироты", value: "502" },
+ { label: "Системный администратор", value: "699" },
+ { label: "Скромный главный герой", value: "409" },
+ { label: "Скрытые романтические отношения", value: "23" },
+ { label: "Скрытые способности", value: "343" },
+ { label: "Скряга", value: "450" },
+ { label: "Скульпторы", value: "606" },
+ { label: "Слабая романтика", value: "688" },
+ { label: "Слабый главный герой", value: "751" },
+ { label: "Сложные семейные отношения", value: "149" },
+ { label: "Смена расы", value: "572" },
+ { label: "Смертельное заболевание", value: "704" },
+ { label: "Смерть", value: "185" },
+ { label: "Смерть любимых", value: "186" },
+ { label: "Современность", value: "448" },
+ { label: "Современные знания в слаборазвитых мирах", value: "449" },
+ { label: "Сожительство", value: "141" },
+ { label: "Создание артефактов", value: "57" },
+ { label: "Создание клана", value: "133" },
+ { label: "Создание королевства", value: "381" },
+ { label: "Создание навыков", value: "655" },
+ { label: "Сокрытие истинных способностей", value: "344" },
+ { label: "Сокрытие личности", value: "345" },
+ { label: "Солдаты", value: "664" },
+ { label: "Сон", value: "659" },
+ { label: "Соседи по комнате", value: "595" },
+ { label: "Социальные изгои", value: "663" },
+ { label: "Спасение мира", value: "602" },
+ { label: "Спорящая пара", value: "84" },
+ { label: "Способность перевоплощения", value: "719" },
+ { label: "Средневековье", value: "436" },
+ { label: "Стеснительные персонажи", value: "643" },
+ { label: "Стокгольмский синдром", value: "575" },
+ { label: "Стокгольмский синдром", value: "675" },
+ { label: "Стратег", value: "681" },
+ { label: "Стратегические битвы", value: "680" },
+ { label: "Стрелки", value: "325" },
+ { label: "Стрельба из лука", value: "50" },
+ { label: "Студенческий совет", value: "686" },
+ { label: "Судьба", value: "197" },
+ { label: "Суккубы", value: "689" },
+ { label: "Суперспособности", value: "669" },
+ { label: "Суровая тренировка", value: "332" },
+ { label: "Сцены насилия", value: "195" },
+ { label: "Таинственное прошлое", value: "472" },
+ { label: "Тайная личность", value: "610" },
+ { label: "Тайные организации", value: "611" },
+ { label: "Телохранители", value: "98" },
+ { label: "Тентакли", value: "703" },
+ { label: "Террористы", value: "705" },
+ { label: "Технологический разрыв", value: "702" },
+ { label: "Тихие герои", value: "568" },
+ { label: "Толстый протагонист", value: "271" },
+ { label: "Торговцы", value: "438" },
+ { label: "Травник", value: "340" },
+ { label: "Трагичное прошлое", value: "718" },
+ { label: "Трап", value: "725" },
+ { label: "Триллер", value: "708" },
+ { label: "Турнир", value: "76" },
+ { label: "Тюрьма", value: "556" },
+ { label: "Убийства", value: "465" },
+ { label: "Уверенный в себе главный герой", value: "151" },
+ { label: "Умная пара", value: "662" },
+ { label: "Умный главный герой", value: "135" },
+ { label: "Уникальная техника культивации", value: "735" },
+ { label: "Уникальные оружия", value: "737" },
+ { label: "Управление бизнесом", value: "109" },
+ { label: "Управление временем", value: "710" },
+ { label: "Управление пространством", value: "667" },
+ { label: "Ускоренный рост", value: "6" },
+ { label: "Учёные", value: "605" },
+ { label: "Учителя", value: "700" },
+ { label: "Фамильяры", value: "258" },
+ { label: "Фанатизм", value: "264" },
+ { label: "Фармацевт", value: "523" },
+ { label: "Феи", value: "254" },
+ { label: "Фениксы", value: "526" },
+ { label: "Фетиш на грудь", value: "103" },
+ { label: "Фетиш на очки", value: "311" },
+ { label: "Философия", value: "524" },
+ { label: "Фобии/Страхи", value: "525" },
+ { label: "Фольклор", value: "285" },
+ { label: "Формирование армии", value: "54" },
+ { label: "Футанари", value: "295" },
+ { label: "Футуристический мир", value: "296" },
+ { label: "Фэнтези", value: "267" },
+ { label: "Фэнтезийные существа", value: "266" },
+ { label: "Хакеры", value: "326" },
+ { label: "Харизматичный протагонист", value: "120" },
+ { label: "Хитрый главный герой", value: "173" },
+ { label: "Хладнокровный главный герой", value: "112" },
+ { label: "Художники", value: "60" },
+ { label: "Хулиганы", value: "188" },
+ { label: "Цундере", value: "728" },
+ { label: "Чат", value: "122" },
+ { label: "Человек-оружие", value: "352" },
+ { label: "Человекоподобный главный герой", value: "354" },
+ { label: "Честный главный герой", value: "348" },
+ { label: "Четкие любовные убеждения", value: "683" },
+ { label: "Читы", value: "123" },
+ { label: "Чудаковатые герои", value: "569" },
+ { label: "Чужие воспоминания", value: "721" },
+ { label: "Шантаж", value: "89" },
+ { label: "Шеф-повар", value: "124" },
+ { label: "Школа для девочек", value: "29" },
+ { label: "Шоу-бизнес", value: "642" },
+ { label: "Шпионы", value: "670" },
+ { label: "Эволюция", value: "250" },
+ { label: "Эгоистичный главный герой", value: "618" },
+ { label: "Экзорцизм", value: "252" },
+ { label: "Экономика", value: "230" },
+ { label: "Эксгибиционизм", value: "251" },
+ { label: "Эксперименты на людях", value: "351" },
+ { label: "Элементальная магия", value: "234" },
+ { label: "Элементы игрового мира", value: "299" },
+ { label: "Элементы романтики", value: "594" },
+ { label: "Элементы юри", value: "640" },
+ { label: "Элементы яоя", value: "641" },
+ { label: "Эльфы", value: "235" },
+ { label: "Эпизодичность", value: "243" },
+ { label: "Язвительные персонажи", value: "635" },
+ { label: "Языковой барьер", value: "386" },
+ { label: "Яндере", value: "762" },
+ { label: "Яойщица", value: "294" },
+ { label: "Японские силы самообороны", value: "378" },
+ { label: "R-15", value: "570" },
+ { label: "R-18", value: "571" },
+ ],
+ type: FilterTypes.CheckboxGroup,
+ },
+ genres: {
+ label: "Жанры",
+ value: [],
+ options: [
+ { label: "16+", value: "1" },
+ { label: "18+", value: "2" },
+ { label: "Боевик", value: "3" },
+ { label: "Боевые искусства", value: "4" },
+ { label: "Вампиры", value: "47" },
+ { label: "Военное", value: "44" },
+ { label: "Гарем", value: "5" },
+ { label: "Демоны", value: "48" },
+ { label: "Детектив", value: "6" },
+ { label: "Дзёсей", value: "50" },
+ { label: "Драма", value: "7" },
+ { label: "Игры", value: "45" },
+ { label: "Историческое", value: "8" },
+ { label: "Киберпанк", value: "9" },
+ { label: "Комедия", value: "10" },
+ { label: "Космос", value: "46" },
+ { label: "Магия", value: "42" },
+ { label: "Махо-сёдзё", value: "12" },
+ { label: "Меха", value: "13" },
+ { label: "Мистика", value: "14" },
+ { label: "Музыка", value: "49" },
+ { label: "Научная фантастика", value: "15" },
+ { label: "Пародия", value: "16" },
+ { label: "Повседневность", value: "17" },
+ { label: "Приключения", value: "18" },
+ { label: "Психологическое", value: "19" },
+ { label: "Романтика", value: "20" },
+ { label: "Сверхъестественное", value: "21" },
+ { label: "Сёдзё", value: "22" },
+ { label: "Сёдзё-ай", value: "23" },
+ { label: "Сёнэн", value: "24" },
+ { label: "Сёнэн-ай", value: "25" },
+ { label: "Смена пола", value: "26" },
+ { label: "Современность", value: "27" },
+ { label: "Спорт", value: "28" },
+ { label: "Супер сила", value: "43" },
+ { label: "Сэйнэн", value: "29" },
+ { label: "Трагедия", value: "32" },
+ { label: "Триллер", value: "33" },
+ { label: "Ужасы", value: "34" },
+ { label: "Уся", value: "35" },
+ { label: "Фэнтези", value: "36" },
+ { label: "Школьная жизнь", value: "37" },
+ { label: "Этти", value: "38" },
+ { label: "Юри", value: "39" },
+ { label: "Яой", value: "40" },
+ { label: "LitRPG", value: "41" },
+ ],
+ type: FilterTypes.CheckboxGroup,
+ },
+ } satisfies Filters;
+}
+
+export default new TL();
+
+interface response {
+ data: Data;
+}
+
+interface Data {
+ projects?: Projects;
+ project?: Project;
+ chapter?: DataChapter;
+}
+
+interface DataChapter {
+ text: Text;
+}
+
+interface Text {
+ text: string;
+}
+
+interface Project {
+ title: string;
+ translationStatus: string;
+ fullUrl: string;
+ covers: Cover[];
+ persons: Person[];
+ genres: Genre[];
+ tags: Genre[];
+ annotation: Text;
+ subprojects: Subprojects;
+}
+
+interface Cover {
+ url: string;
+}
+
+interface Genre {
+ nameRu: string;
+ nameEng: string;
+}
+
+interface Person {
+ role: string;
+ name: Name;
+}
+
+interface Name {
+ firstName: string;
+ lastName: string;
+}
+
+interface Subprojects {
+ content: SubprojectsContent[];
+}
+
+interface SubprojectsContent {
+ title: null | string;
+ volumes: Volumes;
+}
+
+interface Volumes {
+ content: VolumesContent[];
+}
+
+interface VolumesContent {
+ shortName: null | string;
+ chapters: ChapterElement[];
+}
+
+interface ChapterElement {
+ title: null | string;
+ publishDate: Date;
+ fullUrl: string;
+ published: boolean;
+}
+
+interface Projects {
+ content: ProjectsContent[];
+}
+
+interface ProjectsContent {
+ title: string;
+ fullUrl: string;
+ covers: Cover[];
+}
diff --git a/plugins/russian/ranobehub.ts b/plugins/russian/ranobehub.ts
index 1e19016..4c6a79c 100644
--- a/plugins/russian/ranobehub.ts
+++ b/plugins/russian/ranobehub.ts
@@ -1,1284 +1,1269 @@
-import { Plugin } from "@typings/plugin";
-import { FilterTypes, Filters } from "@libs/filterInputs";
-import { fetchApi, fetchFile } from "@libs/fetch";
-import { NovelStatus } from "@libs/novelStatus";
-import { load as parseHTML } from "cheerio";
-import dayjs from "dayjs";
-
-class RNBH implements Plugin.PluginBase {
- id = "RNBH.org";
- name = "RanobeHub";
- version = "1.0.0";
- site = "https://ranobehub.org/";
- icon = "src/ru/ranobehub/icon.png";
-
-
- async popularNovels(
- pageNo: number,
- {
- showLatestNovels,
- filters,
- }: Plugin.PopularNovelsOptions,
- ): Promise {
- let url = this.site + `api/search?page=${pageNo}&sort=`;
- url += showLatestNovels
- ? "last_chapter_at"
- : filters?.sort || "computed_rating";
- url += "&status=" + (filters?.status?.value ? filters?.status?.value : "0");
-
- if (filters) {
- if (filters.country?.value?.length) {
- url += "&country=" + filters.country.value.join(",");
- }
- if (
- filters.tags?.value?.include?.length ||
- filters.events?.value?.include?.length
- ) {
- const tagsPositive = [
- filters.tags.value?.include,
- filters.events.value?.include,
- ]
- .flat()
- .filter((t) => t);
- url += "&tags:positive=" + tagsPositive.join(",");
- }
- if (
- filters?.tags?.value?.exclude?.length ||
- filters?.events?.value?.exclude?.length
- ) {
- const tagsNegative = [
- filters.tags.value?.exclude,
- filters.events.value?.exclude,
- ]
- .flat()
- .filter((t) => t);
- url += "&tags:negative=" + tagsNegative.join(",");
- }
- }
-
- url += "&take=40";
- const result = await fetchApi(url);
- const body = (await result.json()) as { resource: responseNovels[] };
-
- const novels: Plugin.NovelItem[] = [];
- body.resource.forEach((novel) =>
- novels.push({
- name: novel.names?.rus || novel.names.eng,
- cover: novel.poster.medium,
- url: novel.url,
- }),
- );
-
- return novels;
- }
-
- async parseNovelAndChapters(novelUrl: string): Promise {
- const novelId = novelUrl
- .substring("https://ranobehub.org/ranobe/".length)
- .split("-")[0];
- const result = await fetchApi(`${this.site}api/ranobe/${novelId}`);
- const json = (await result.json()) as { data: responseNovel };
-
- const novel: Plugin.SourceNovel = {
- url: json.data.url,
- name: json.data.names?.rus || json.data.names.eng,
- cover: json.data.posters.medium,
- summary: json.data.description,
- author: json.data?.authors?.[0]?.name_eng || "",
- status: json.data.status.title.includes("процессе")
- ? NovelStatus.Ongoing
- : NovelStatus.Completed,
- };
-
- const tags = [json.data.tags.events, json.data.tags.genres]
- .flat()
- .map((tags) => tags?.names?.rus || tags?.names?.eng || tags?.title)
- .filter((tags) => tags);
-
- if (tags.length) {
- novel.genres = tags.join(", ");
- }
-
- const chapters: Plugin.ChapterItem[] = [];
- const fetchChaptersUrl = `${this.site}api/ranobe/${novelId}/contents`;
-
- const chaptersRaw = await fetchApi(fetchChaptersUrl);
- const chaptersJSON = (await chaptersRaw.json()) as {
- volumes: VolumesEntity[];
- };
-
- chaptersJSON.volumes.forEach(
- (volume) =>
- volume.chapters?.forEach((chapter) =>
- chapters.push({
- name: chapter.name,
- url: chapter.url,
- releaseTime: dayjs(parseInt(chapter.changed_at, 10) * 1000).format(
- "LLL",
- ),
- }),
- ),
- );
-
- novel.chapters = chapters;
- return novel;
- }
-
- async parseChapter(chapterUrl: string): Promise {
- const result = await fetchApi(chapterUrl);
- const body = await result.text();
-
- const loadedCheerio = parseHTML(body);
-
- loadedCheerio(".chapter-hoticons").remove();
- const baseUrl = this.site;
- loadedCheerio("div.text:nth-child(1) img").each(function () {
- if (!loadedCheerio(this).attr("src")?.startsWith("http")) {
- const dataMediaId = loadedCheerio(this).attr("data-media-id");
- loadedCheerio(this).attr("src", baseUrl + "api/media/" + dataMediaId);
- }
- });
-
- let chapterText: string =
- loadedCheerio("div.text:nth-child(1)").html() || "";
-
- // Remove script tags
- chapterText = chapterText?.replace(
- /<\s*script[^>]*>[\s\S]*?<\/script>/gim,
- "",
- );
- return chapterText;
- }
-
- async searchNovels(
- searchTerm: string,
- //pageNo: number | undefined = 1,
- ): Promise {
- const url = `${this.site}api/fulltext/global?query=${searchTerm}&take=10`;
-
- const result = await fetchApi(url);
- const data = (await result.json()) as responseSearch[];
-
- const novels: Plugin.NovelItem[] = [];
-
- data
- ?.find((item) => item?.meta?.key === "ranobe")
- ?.data?.forEach((novel) =>
- novels.push({
- name: novel?.names?.rus || novel?.names?.eng || novel?.name || "",
- url:
- "https://ranobehub.org/ranobe/" +
- novel?.url?.match(
- /https:\/\/ranobehub\.org\/ranobe\/(.*?)\?utm_source=search_name&utm_medium=search&utm_campaign=search_using/,
- )?.[1],
- cover: novel?.image?.replace("/small", "/medium"),
- }),
- );
-
- return novels;
- }
-
- fetchImage = fetchFile;
-
- filters = {
- sort: {
- label: "Сортировка",
- value: "",
- options: [
- { label: "по рейтингу", value: "computed_rating" },
- { label: "по дате обновления", value: "last_chapter_at" },
- { label: "по дате добавления", value: "created_at" },
- { label: "по названию", value: "name_rus" },
- { label: "по просмотрам", value: "views" },
- { label: "по количеству глав", value: "count_chapters" },
- { label: "по объему перевода", value: "count_of_symbols" },
- ],
- type: FilterTypes.Picker,
- },
- status: {
- label: "Статус перевода",
- value: "",
- options: [
- { label: "Любой", value: "" },
- { label: "В процессе", value: "1" },
- { label: "Завершено", value: "2" },
- { label: "Заморожено", value: "3" },
- { label: "Неизвестно", value: "4" },
- ],
- type: FilterTypes.Picker,
- },
- country: {
- label: "Тип",
- value: [],
- options: [
- { label: "Китай", value: "2" },
- { label: "Корея", value: "3" },
- { label: "США", value: "4" },
- { label: "Япония", value: "1" },
- ],
- type: FilterTypes.CheckboxGroup,
- },
- events: {
- label: "События",
- value: { include: [], exclude: [] },
- options: [
- { label: "[Награжденная работа]", value: "611" },
- { label: "18+", value: "338" },
- { label: "Авантюристы", value: "353" },
- { label: "Автоматоны", value: "538" },
- { label: "Агрессивные персонажи", value: "434" },
- { label: "Ад", value: "509" },
- { label: "Адаптация в радиопостановку", value: "522" },
- { label: "Академия", value: "25" },
- { label: "Актеры озвучки", value: "578" },
- { label: "Активный главный герой", value: "132" },
- { label: "Алхимия", value: "116" },
- { label: "Альтернативный мир", value: "28" },
- { label: "Амнезия/Потеря памяти", value: "247" },
- { label: "Анабиоз", value: "657" },
- { label: "Ангелы", value: "218" },
- { label: "Андрогинные персонажи", value: "217" },
- { label: "Андроиды", value: "82" },
- { label: "Анти-магия", value: "471" },
- { label: "Антигерой", value: "346" },
- { label: "Антикварный магазин", value: "572" },
- { label: "Антисоциальный главный герой", value: "562" },
- { label: "Антиутопия", value: "663" },
- { label: "Апатичный протагонист", value: "29" },
- { label: "Апокалипсис", value: "314" },
- { label: "Аранжированный брак", value: "285" },
- { label: "Армия", value: "598" },
- { label: "Артефакты", value: "117" },
- { label: "Артисты", value: "460" },
- { label: "Банды", value: "581" },
- { label: "БДСМ", value: "676" },
- { label: "Бедный главный герой", value: "309" },
- { label: "Безжалостный главный герой", value: "144" },
- { label: "Беззаботный главный герой", value: "355" },
- { label: "Безусловная любовь", value: "650" },
- { label: "Беременность", value: "131" },
- { label: "Бесполый главный герой", value: "222" },
- { label: "Бессмертные", value: "275" },
- { label: "Бесстрашный протагонист", value: "619" },
- { label: "Бесстыдный главный герой", value: "256" },
- { label: "Бесчестный главный герой", value: "699" },
- { label: "Библиотека", value: "342" },
- { label: "Бизнесмен ", value: "813" },
- { label: "Биочип", value: "120" },
- { label: "Бисексуальный главный герой", value: "822" },
- { label: "Близнецы", value: "148" },
- { label: "Боги", value: "211" },
- { label: "Богини", value: "356" },
- { label: "Боевая академия", value: "369" },
- { label: "Боевые духи", value: "347" },
- { label: "Боевые соревнования", value: "422" },
- { label: "Божественная защита", value: "336" },
- { label: "Божественные силы", value: "224" },
- { label: "Большая разница в возрасте между героем и его любовным интересом", value: "348" },
- { label: "Борьба за власть", value: "544" },
- { label: "Брак", value: "363" },
- { label: "Брак по расчету", value: "65" },
- { label: "Братский комплекс", value: "31" },
- { label: "Братство", value: "413" },
- { label: "Братья и сестры", value: "518" },
- { label: "Буддизм", value: "742" },
- { label: "Быстрая культивация", value: "273" },
- { label: "Быстрообучаемый", value: "221" },
- { label: "Валькирии", value: "667" },
- { label: "Вампиры", value: "266" },
- { label: "Ваншот", value: "679" },
- { label: "Ведьмы", value: "169" },
- { label: "Вежливый главный герой", value: "289" },
- { label: "Верные подчиненные", value: "225" },
- { label: "Взрослый главный герой", value: "183" },
- { label: "Видит то, чего не видят другие", value: "636" },
- { label: "Виртуальная реальность", value: "313" },
- { label: "Владелец магазина", value: "653" },
- { label: "Внезапная сила", value: "376" },
- { label: "Внезапное богатство", value: "802" },
- { label: "Внешний вид отличается от фактического возраста", value: "334" },
- { label: "Военные Летописи", value: "740" },
- { label: "Возвращение из другого мира", value: "673" },
- { label: "Войны", value: "58" },
- { label: "Вокалоид", value: "678" },
- { label: "Волшебники/Волшебницы", value: "477" },
- { label: "Волшебные звери", value: "201" },
- { label: "Воображаемый друг", value: "614" },
- { label: "Воры", value: "326" },
- { label: "Воскрешение", value: "78" },
- { label: "Враги становятся возлюбленными", value: "428" },
- { label: "Враги становятся союзниками", value: "502" },
- { label: "Врата в другой мир", value: "558" },
- { label: "Врачи", value: "286" },
- { label: "Временной парадокс", value: "163" },
- { label: "Всемогущий главный герой", value: "42" },
- { label: "Вторжение на землю", value: "77" },
- { label: "Второй шанс", value: "112" },
- { label: "Вуайеризм", value: "851" },
- { label: "Выживание", value: "290" },
- { label: "Высокомерные персонажи", value: "268" },
- { label: "Гадание", value: "540" },
- { label: "Гарем рабов", value: "828" },
- { label: "Геймеры", value: "302" },
- { label: "Генералы", value: "223" },
- { label: "Генетические модификации", value: "620" },
- { label: "Гениальный главный герой", value: "566" },
- { label: "Герои", value: "173" },
- { label: "Героиня — сорванец", value: "525" },
- { label: "Герой влюбляется первым", value: "64" },
- { label: "Гетерохромия", value: "510" },
- { label: "Гильдии", value: "323" },
- { label: "Гипнотизм", value: "768" },
- { label: "Главный герой — бог", value: "486" },
- { label: "Главный герой — гуманоид", value: "595" },
- { label: "Главный герой — женщина", value: "63" },
- { label: "Главный герой — мужчина", value: "39" },
- { label: "Главный герой — наполовину человек", value: "362" },
- { label: "Главный герой — отец", value: "859" },
- { label: "Главный герой — раб", value: "832" },
- { label: "Главный герой — ребенок", value: "415" },
- { label: "Главный герой — рубака", value: "400" },
- { label: "Главный герой — собиратель гарема", value: "439" },
- { label: "Главный герой влюбляется первым", value: "655" },
- { label: "Главный герой играет роль", value: "396" },
- { label: "Главный герой носит очки", value: "637" },
- { label: "Главный герой пацифист", value: "675" },
- { label: "Главный герой с несколькими телами", value: "628" },
- { label: "Главный герой силен с самого начала", value: "45" },
- { label: "Гладиаторы", value: "549" },
- { label: "Глуповатый главный герой", value: "295" },
- { label: "Гоблины", value: "529" },
- { label: "Големы", value: "569" },
- { label: "Гомункул", value: "850" },
- { label: "Горничные", value: "380" },
- { label: "Госпиталь", value: "1043" },
- { label: "Готовка", value: "193" },
- { label: "Гриндинг", value: "303" },
- { label: "Дао Компаньон", value: "384" },
- { label: "Даосизм", value: "792" },
- { label: "Дарк", value: "151" },
- { label: "Дварфы", value: "220" },
- { label: "Двойная личность", value: "601" },
- { label: "Двойник", value: "547" },
- { label: "Дворецкий", value: "623" },
- { label: "Дворяне", value: "41" },
- { label: "Дворянство/Аристократия", value: "354" },
- { label: "Девушки-монстры", value: "634" },
- { label: "Демоническая техника культивации", value: "706" },
- { label: "Демоны", value: "6" },
- { label: "Денежный долг", value: "841" },
- { label: "Депрессия", value: "494" },
- { label: "Детективы", value: "561" },
- { label: "Дискриминация", value: "34" },
- { label: "Добыча денег одно из основных стремлений главного героя", value: "307" },
- { label: "Долгая разлука", value: "200" },
- { label: "Домашние дела", value: "178" },
- { label: "Домогательство", value: "394" },
- { label: "Драконы", value: "195" },
- { label: "Драконьи всадники", value: "555" },
- { label: "Древние времена", value: "102" },
- { label: "Древний Китай", value: "284" },
- { label: "Дружба", value: "97" },
- { label: "Друзья детства", value: "170" },
- { label: "Друзья становятся врагами", value: "507" },
- { label: "Друиды", value: "427" },
- { label: "Дух лисы", value: "842" },
- { label: "Духи/Призраки", value: "46" },
- { label: "Духовный советник", value: "351" },
- { label: "Душевность", value: "587" },
- { label: "Души", value: "136" },
- { label: "Европейская атмосфера", value: "457" },
- { label: "Ёкаи", value: "516" },
- { label: "Есть аниме-адаптация", value: "26" },
- { label: "Есть видеоигра по мотивам", value: "491" },
- { label: "Есть манга-адаптация", value: "27" },
- { label: "Есть манхва-адаптация", value: "453" },
- { label: "Есть маньхуа-адаптация", value: "298" },
- { label: "Есть сериал-адаптация", value: "421" },
- { label: "Есть фильм по мотивам", value: "47" },
- { label: "Женища-наставник", value: "438" },
- { label: "Жертва изнасилования влюбляется в насильника", value: "414" },
- { label: "Жесткая, двуличная личность", value: "249" },
- { label: "Жестокие персонажи", value: "436" },
- { label: "Жестокое обращение с ребенком", value: "617" },
- { label: "Жестокость", value: "127" },
- { label: "Животноводство", value: "765" },
- { label: "Животные черты", value: "466" },
- { label: "Жизнь в квартире", value: "554" },
- { label: "Жрицы", value: "564" },
- { label: "Заботливый главный герой", value: "176" },
- { label: "Забывчивый главный герой", value: "579" },
- { label: "Заговоры", value: "177" },
- { label: "Закалка тела", value: "269" },
- { label: "Законники", value: "769" },
- { label: "Замкнутый главный герой", value: "533" },
- { label: "Запечатанная сила", value: "344" },
- { label: "Застенчивые персонажи", value: "443" },
- { label: "Звери", value: "119" },
- { label: "Звери-компаньоны", value: "192" },
- { label: "Злой протагонист", value: "125" },
- { label: "Злые боги", value: "437" },
- { label: "Злые организации", value: "503" },
- { label: "Злые религии", value: "725" },
- { label: "Знаменитости", value: "397" },
- { label: "Знаменитый главный герой", value: "469" },
- { label: "Знания современного мира", value: "185" },
- { label: "Зомби", value: "321" },
- { label: "Игра на выживание", value: "162" },
- { label: "Игривый протагонист", value: "700" },
- { label: "Игровая система рейтинга", value: "301" },
- { label: "Игровые элементы", value: "152" },
- { label: "Игрушки (18+)", value: "644" },
- { label: "Из грязи в князи", value: "330" },
- { label: "Из женщины в мужчину ", value: "688" },
- { label: "Из мужчины в женщину", value: "698" },
- { label: "Из полного в худого", value: "809" },
- { label: "Из слабого в сильного", value: "81" },
- { label: "Из страшно(го/й) в красиво(го/ю)", value: "810" },
- { label: "Извращенный главный герой", value: "349" },
- { label: "Изгои", value: "472" },
- { label: "Изменение расы", value: "627" },
- { label: "Изменения внешнего вида", value: "191" },
- { label: "Изменения личности", value: "99" },
- { label: "Изнасилование", value: "110" },
- { label: "Изображения жестокости", value: "260" },
- { label: "Империи", value: "749" },
- { label: "Инвалидность", value: "656" },
- { label: "Индустриализация", value: "180" },
- { label: "Инженер", value: "35" },
- { label: "Инцест", value: "463" },
- { label: "Искусственный интеллект", value: "118" },
- { label: "Исследования", value: "635" },
- { label: "Каннибализм", value: "377" },
- { label: "Карточные игры", value: "654" },
- { label: "Киберспорт", value: "658" },
- { label: "Кланы", value: "950" },
- { label: "Класс безработного [Игровой класс в игре]", value: "727" },
- { label: "Клоны", value: "365" },
- { label: "Клубы", value: "96" },
- { label: "Книги", value: "341" },
- { label: "Книги навыков", value: "312" },
- { label: "Книжный червь", value: "455" },
- { label: "Коварство", value: "111" },
- { label: "Коллеги", value: "683" },
- { label: "Колледж/Университет", value: "712" },
- { label: "Кома", value: "826" },
- { label: "Командная работа", value: "426" },
- { label: "Комедийный оттенок", value: "523" },
- { label: "Комплекс неполноценности", value: "489" },
- { label: "Комплекс семейных отношений", value: "104" },
- { label: "Конкуренция", value: "746" },
- { label: "Контракты", value: "483" },
- { label: "Контроль разума/сознания", value: "262" },
- { label: "Копейщик", value: "339" },
- { label: "Королевская битва", value: "1025" },
- { label: "Королевская власть", value: "53" },
- { label: "Королевства", value: "141" },
- { label: "Коррупция", value: "378" },
- { label: "Космические войны", value: "674" },
- { label: "Красивый герой", value: "107" },
- { label: "Крафт", value: "287" },
- { label: "Кризис личности", value: "599" },
- { label: "Кругосветное путешествие", value: "257" },
- { label: "Кудере", value: "440" },
- { label: "Кузены", value: "701" },
- { label: "Кузнец", value: "454" },
- { label: "Кукловоды", value: "431" },
- { label: "Куклы/марионетки", value: "573" },
- { label: "Культивация", value: "123" },
- { label: "Куннилингус", value: "632" },
- { label: "Легенды", value: "430" },
- { label: "Легкая жизнь", value: "604" },
- { label: "Ленивый главный герой", value: "570" },
- { label: "Лидерство", value: "424" },
- { label: "Лоли", value: "92" },
- { label: "Лотерея", value: "401" },
- { label: "Любовный интерес влюбляется первым", value: "647" },
- { label: "Любовный интерес главного героя носит очки", value: "576" },
- { label: "Любовный треугольник", value: "98" },
- { label: "Любовь детства", value: "500" },
- { label: "Любовь с первого взгляда", value: "730" },
- { label: "Магические надписи", value: "373" },
- { label: "Магические печати", value: "277" },
- { label: "Магические технологии", value: "357" },
- { label: "Магическое пространство/измерение, доступное не всем персонажам", value: "244" },
- { label: "Магия", value: "38" },
- { label: "Магия призыва", value: "333" },
- { label: "Мазохистские персонажи", value: "660" },
- { label: "Манипулятивные персонажи", value: "130" },
- { label: "Мания", value: "91" },
- { label: "Мастер на все руки", value: "390" },
- { label: "Мастурбация", value: "846" },
- { label: "Махо-сёдзё", value: "496" },
- { label: "Медицинские знания", value: "441" },
- { label: "Медленная романтическая линия", value: "113" },
- { label: "Медленное развитие на старте ", value: "670" },
- { label: "Межпространственные путешествия", value: "316" },
- { label: "Менеджмент", value: "182" },
- { label: "Мертвый главный герой", value: "794" },
- { label: "Месть", value: "88" },
- { label: "Метаморфы", value: "234" },
- { label: "Меч и магия", value: "55" },
- { label: "Мечник", value: "607" },
- { label: "Мечты", value: "733" },
- { label: "Милая история", value: "709" },
- { label: "Милое дитя", value: "596" },
- { label: "Милый главный герой", value: "697" },
- { label: "Мировое дерево", value: "385" },
- { label: "Мистический ореол вокруг семьи", value: "409" },
- { label: "Мифические звери", value: "418" },
- { label: "Мифология", value: "468" },
- { label: "Младшие братья", value: "843" },
- { label: "Младшие сестры", value: "465" },
- { label: "ММОРПГ (ЛитРПГ)", value: "306" },
- { label: "Множество перемещенных людей", value: "488" },
- { label: "Множество реальностей", value: "278" },
- { label: "Множество реинкарнированных людей", value: "227" },
- { label: "Модели", value: "649" },
- { label: "Молчаливый персонаж", value: "705" },
- { label: "Монстры", value: "69" },
- { label: "Мужская гей-пара", value: "685" },
- { label: "Мужчина-яндере", value: "155" },
- { label: "Музыка", value: "589" },
- { label: "Музыкальные группы", value: "588" },
- { label: "Мутации", value: "668" },
- { label: "Мутированные существа", value: "317" },
- { label: "Навык кражи", value: "626" },
- { label: "Навязчивая любовь", value: "85" },
- { label: "Наемники", value: "324" },
- { label: "Назойливый возлюбленный", value: "501" },
- { label: "Наивный главный герой", value: "66" },
- { label: "Наркотики", value: "661" },
- { label: "Нарциссический главный герой", value: "470" },
- { label: "Насилие сексуального характера", value: "824" },
- { label: "Наследование", value: "372" },
- { label: "Национализм", value: "318" },
- { label: "Не блещущий внешне главный герой", value: "328" },
- { label: "Не родные братья и сестры", value: "464" },
- { label: "Небеса", value: "508" },
- { label: "Небесное испытание", value: "274" },
- { label: "Негуманоидный главный герой", value: "622" },
- { label: "Недоверчивый главный герой", value: "485" },
- { label: "Недооцененный главный герой", value: "140" },
- { label: "Недоразумения", value: "202" },
- { label: "Неизлечимая болезнь", value: "75" },
- { label: "Некромант", value: "308" },
- { label: "Нелинейная история", value: "157" },
- { label: "Ненавистный главный герой", value: "487" },
- { label: "Ненадежный рассказчик", value: "165" },
- { label: "Нерезиденты", value: "821" },
- { label: "Нерешительный главный герой", value: "741" },
- { label: "Несерьезный главный герой", value: "294" },
- { label: "Несколько временных линий", value: "517" },
- { label: "Несколько главных героев", value: "475" },
- { label: "Несколько идентичностей", value: "615" },
- { label: "Несколько личностей", value: "474" },
- { label: "Нетораре", value: "721" },
- { label: "Нетори", value: "450" },
- { label: "Неудачливый главный герой", value: "567" },
- { label: "Ниндзя", value: "358" },
- { label: "Обещание из детства", value: "738" },
- { label: "Обманщик", value: "411" },
- { label: "Обмен телами", value: "94" },
- { label: "Обнаженка", value: "417" },
- { label: "Обольщение", value: "718" },
- { label: "Оборотни", value: "624" },
- { label: "Обратный гарем", value: "255" },
- { label: "Общество монстров", value: "226" },
- { label: "Обязательство", value: "548" },
- { label: "Огнестрельное оружие", value: "179" },
- { label: "Ограниченная продолжительность жизни", value: "73" },
- { label: "Одержимость", value: "447" },
- { label: "Одинокий главный герой", value: "304" },
- { label: "Одиночество", value: "199" },
- { label: "Одиночное проживание", value: "207" },
- { label: "Околосмертные переживания", value: "773" },
- { label: "Оммёдзи", value: "542" },
- { label: "Омоложение", value: "237" },
- { label: "Организованная преступность", value: "478" },
- { label: "Оргия", value: "825" },
- { label: "Орки", value: "228" },
- { label: "Освоение навыков", value: "235" },
- { label: "Основано на аниме", value: "553" },
- { label: "Основано на видео игре", value: "704" },
- { label: "Основано на визуальной новелле ", value: "861" },
- { label: "Основано на песне", value: "677" },
- { label: "Основано на фильме", value: "552" },
- { label: "Осторожный главный герой", value: "122" },
- { label: "Отаку", value: "512" },
- { label: "Открытый космос", value: "150" },
- { label: "Отношения в сети", value: "713" },
- { label: "Отношения между богом и человеком", value: "603" },
- { label: "Отношения между людьми и нелюдьми", value: "205" },
- { label: "Отношения на расстоянии", value: "852" },
- { label: "Отношения начальник-подчиненный", value: "590" },
- { label: "Отношения Сенпай-Коухай", value: "513" },
- { label: "Отношения ученика и учителя", value: "451" },
- { label: "Отношения учитель-ученик", value: "343" },
- { label: "Отношения хозяин-слуга", value: "206" },
- { label: "Отомэ игра", value: "723" },
- { label: "Отсутствие здравого смысла", value: "605" },
- { label: "Отсутствие родителей", value: "575" },
- { label: "Офисный роман", value: "686" },
- { label: "Официанты", value: "681" },
- { label: "Охотники", value: "288" },
- { label: "Очаровательный главный герой", value: "659" },
- { label: "Падшее дворянство", value: "618" },
- { label: "Падшие ангелы", value: "505" },
- { label: "Пайзури", value: "630" },
- { label: "Паразиты", value: "535" },
- { label: "Параллельные миры", value: "86" },
- { label: "Парк развлечений", value: "586" },
- { label: "Пародия", value: "319" },
- { label: "Певцы/Певицы", value: "734" },
- { label: "Первая любовь", value: "716" },
- { label: "Первоисточник новеллы — манга", value: "560" },
- { label: "Первый раз", value: "845" },
- { label: "Перемещение в другой мир, имея при себе современные достижения", value: "732" },
- { label: "Перемещение в игровой мир", value: "532" },
- { label: "Перемещение в иной мир", value: "754" },
- { label: "Перерождение в ином мире", value: "755" },
- { label: "Переселение души/Трансмиграция", value: "139" },
- { label: "Персонаж использует щит", value: "631" },
- { label: "Петля времени", value: "79" },
- { label: "Пираты", value: "817" },
- { label: "Писатели", value: "408" },
- { label: "Питомцы", value: "253" },
- { label: "Племенное общество", value: "291" },
- { label: "Повелитель демонов", value: "171" },
- { label: "Повествование от нескольких лиц/Несколько точек зрения", value: "156" },
- { label: "Подземелья", value: "219" },
- { label: "Пожелания", value: "166" },
- { label: "Познание Дао", value: "360" },
- { label: "Покинутое дитя", value: "534" },
- { label: "Полигамия", value: "296" },
- { label: "Политика", value: "43" },
- { label: "Полиция", value: "801" },
- { label: "Полулюди", value: "335" },
- { label: "Пользователь уникального оружия", value: "432" },
- { label: "Популярный любовный интерес", value: "241" },
- { label: "Постапокалиптика", value: "60" },
- { label: "Потерянные цивилизации", value: "751" },
- { label: "Похищения людей", value: "707" },
- { label: "Поэзия", value: "404" },
- { label: "Правонарушители", value: "694" },
- { label: "Прагматичный главный герой", value: "536" },
- { label: "Преданный любовный интерес", value: "106" },
- { label: "Предательство", value: "103" },
- { label: "Предвидение", value: "52" },
- { label: "Прекрасная героиня", value: "30" },
- { label: "Преступники", value: "728" },
- { label: "Преступность", value: "83" },
- { label: "Призванный герой", value: "147" },
- { label: "Призраки", value: "51" },
- { label: "Принуждение к отношениям", value: "602" },
- { label: "Принцессы", value: "933" },
- { label: "Притворная пара", value: "600" },
- { label: "Причудливые персонажи", value: "297" },
- { label: "Пришельцы/Инопланетяне", value: "76" },
- { label: "Программист", value: "666" },
- { label: "Проклятия", value: "48" },
- { label: "Промывание мозгов", value: "519" },
- { label: "Пропуск времени", value: "138" },
- { label: "Пророчества", value: "429" },
- { label: "Проститутки", value: "844" },
- { label: "Пространственное манипулирование", value: "375" },
- { label: "Прошлое играет большую роль", value: "215" },
- { label: "Прыжки между мирами", value: "737" },
- { label: "Психические силы", value: "265" },
- { label: "Психопаты", value: "158" },
- { label: "Путешествие во времени", value: "80" },
- { label: "Пытка", value: "168" },
- { label: "Рабы", value: "829" },
- { label: "Развод", value: "771" },
- { label: "Разумные предметы", value: "174" },
- { label: "Расизм", value: "320" },
- { label: "Рассказ", value: "61" },
- { label: "Расторжения помолвки", value: "243" },
- { label: "Расы зооморфов", value: "209" },
- { label: "Ревность", value: "717" },
- { label: "Редакторы", value: "684" },
- { label: "Реинкарнация", value: "281" },
- { label: "Реинкарнация в монстра", value: "204" },
- { label: "Реинкарнация в объект", value: "692" },
- { label: "Религии", value: "565" },
- { label: "Репортеры", value: "837" },
- { label: "Ресторан", value: "652" },
- { label: "Решительный главный герой", value: "124" },
- { label: "Робкий главный герой", value: "800" },
- { label: "Родитель одиночка", value: "687" },
- { label: "Родительский комплекс", value: "531" },
- { label: "Родословная", value: "121" },
- { label: "Романтический подсюжет ", value: "159" },
- { label: "Рост персонажа", value: "95" },
- { label: "Рыцари", value: "142" },
- { label: "Садистские персонажи", value: "642" },
- { label: "Самоотверженный главный герой", value: "748" },
- { label: "Самоубийства", value: "616" },
- { label: "Самурай", value: "646" },
- { label: "Сборник коротких историй", value: "456" },
- { label: "Связанные сюжетные линии", value: "473" },
- { label: "Святые", value: "761" },
- { label: "Священники", value: "325" },
- { label: "Сдержанный главный герой", value: "799" },
- { label: "Секретные организации", value: "331" },
- { label: "Секреты", value: "577" },
- { label: "Секс рабы", value: "830" },
- { label: "Семейный конфликт", value: "770" },
- { label: "Семь добродетелей", value: "233" },
- { label: "Семь смертных грехов", value: "134" },
- { label: "Семья", value: "251" },
- { label: "Сёнэн-ай подсюжет ", value: "664" },
- { label: "Серийные убийцы", value: "497" },
- { label: "Сестринский комплекс", value: "498" },
- { label: "Сила духа", value: "282" },
- { label: "Сила, требующая платы за пользование", value: "520" },
- { label: "Сильная пара", value: "109" },
- { label: "Сильный в сильнейшего", value: "359" },
- { label: "Сильный любовный интерес", value: "161" },
- { label: "Синдром восьмиклассника", value: "90" },
- { label: "Сироты", value: "214" },
- { label: "Система уровней", value: "198" },
- { label: "Системный администратор", value: "476" },
- { label: "Скрытие истинной личности", value: "371" },
- { label: "Скрытие истинных способностей", value: "252" },
- { label: "Скрытный главный герой", value: "133" },
- { label: "Скрытые способности", value: "128" },
- { label: "Скульпторы", value: "366" },
- { label: "Слабо выраженная романтическая линия", value: "213" },
- { label: "Слабый главный герой", value: "188" },
- { label: "Слепой главный герой", value: "864" },
- { label: "Слуги", value: "232" },
- { label: "Смерть", value: "49" },
- { label: "Смерть близких", value: "361" },
- { label: "Собственнические персонажи", value: "108" },
- { label: "Современность", value: "40" },
- { label: "Сожительство", value: "482" },
- { label: "Создание армии", value: "175" },
- { label: "Создание артефактов", value: "292" },
- { label: "Создание клана", value: "448" },
- { label: "Создание королевства", value: "181" },
- { label: "Создание навыков", value: "236" },
- { label: "Создание секты", value: "393" },
- { label: "Солдаты/Военные", value: "71" },
- { label: "Сон", value: "571" },
- { label: "Состоятельные персонажи", value: "67" },
- { label: "Социальная иерархия на основе силы", value: "137" },
- { label: "Социальные изгои", value: "480" },
- { label: "Спасение мира", value: "597" },
- { label: "Специальные способности", value: "54" },
- { label: "Спокойный главный герой", value: "32" },
- { label: "Справедливый главный герой", value: "702" },
- { label: "Средневековье", value: "184" },
- { label: "Ссорящаяся пара", value: "293" },
- { label: "Сталкеры", value: "689" },
- { label: "Старение", value: "190" },
- { label: "Стоические персонажи", value: "444" },
- { label: "Стокгольмский синдром", value: "643" },
- { label: "Стратег", value: "425" },
- { label: "Стратегические битвы", value: "160" },
- { label: "Стратегия", value: "1038" },
- { label: "Стрелки", value: "458" },
- { label: "Стрельба из лука", value: "383" },
- { label: "Студенческий совет", value: "490" },
- { label: "Судьба", value: "271" },
- { label: "Суккубы", value: "484" },
- { label: "Супер герои", value: "1039" },
- { label: "Суровая подготовка", value: "261" },
- { label: "Таинственная болезнь", value: "74" },
- { label: "Таинственное прошлое", value: "263" },
- { label: "Тайная личность", value: "310" },
- { label: "Тайные отношения", value: "812" },
- { label: "Танцоры", value: "840" },
- { label: "Телохранители", value: "452" },
- { label: "Тентакли", value: "693" },
- { label: "Террористы", value: "515" },
- { label: "Технологический разрыв", value: "621" },
- { label: "Тихие персонажи", value: "546" },
- { label: "Толстый главный герой", value: "299" },
- { label: "Торговцы", value: "416" },
- { label: "Травля/Буллинг", value: "89" },
- { label: "Травник", value: "708" },
- { label: "Трагическое прошлое", value: "164" },
- { label: "Трансплантация воспоминаний", value: "367" },
- { label: "Трап (Путаница с гендером персонажа)", value: "582" },
- { label: "Трудолюбивый главный герой", value: "37" },
- { label: "Тюрьма", value: "479" },
- { label: "Убийства", value: "84" },
- { label: "Убийцы", value: "248" },
- { label: "Убийцы драконов", value: "606" },
- { label: "Уверенный главный герой", value: "270" },
- { label: "Удачливый главный герой", value: "402" },
- { label: "Укротитель монстров", value: "337" },
- { label: "Умения из прошлой жизни", value: "280" },
- { label: "Умная пара", value: "493" },
- { label: "Умный главный герой", value: "33" },
- { label: "Уникальная техника Культивации", value: "254" },
- { label: "Уникальное оружие", value: "340" },
- { label: "Управление бизнесом", value: "315" },
- { label: "Управление временем", value: "167" },
- { label: "Управление кровью", value: "764" },
- { label: "Упрямый главный герой", value: "672" },
- { label: "Уродливый главный герой", value: "803" },
- { label: "Ускоренный рост", value: "300" },
- { label: "Усыновленные дети", value: "481" },
- { label: "Усыновленный главный герой", value: "412" },
- { label: "Уход за детьми", value: "398" },
- { label: "Учителя", value: "345" },
- { label: "Фамильяры", value: "541" },
- { label: "Фанатизм", value: "613" },
- { label: "Фантастические существа", value: "322" },
- { label: "Фанфикшн", value: "388" },
- { label: "Фармацевт", value: "715" },
- { label: "Фарминг", value: "379" },
- { label: "Феи", value: "210" },
- { label: "Фелляция", value: "584" },
- { label: "Фениксы", value: "374" },
- { label: "Фетиш груди", value: "499" },
- { label: "Философия", value: "87" },
- { label: "Фильмы", value: "403" },
- { label: "Флэшбэки", value: "528" },
- { label: "Фобии", value: "100" },
- { label: "Фольклор", value: "467" },
- { label: "Футанари", value: "568" },
- { label: "Футуристический сеттинг", value: "382" },
- { label: "Фэнтези мир", value: "126" },
- { label: "Хакеры", value: "399" },
- { label: "Харизматический герой", value: "391" },
- { label: "Хикикомори/Затворники", value: "462" },
- { label: "Хитроумный главный герой", value: "105" },
- { label: "Хозяин подземелий", value: "557" },
- { label: "Холодный главный герой", value: "259" },
- { label: "Хорошие отношения с семьей", value: "506" },
- { label: "Хранители могил", value: "68" },
- { label: "Целители", value: "389" },
- { label: "Цзянши", value: "735" },
- { label: "Цундэрэ", value: "445" },
- { label: "Чаты", value: "580" },
- { label: "Человеческое оружие", value: "521" },
- { label: "Честный главный герой", value: "240" },
- { label: "Читы", value: "238" },
- { label: "Шантаж", value: "526" },
- { label: "Шеф-повар", value: "239" },
- { label: "Шикигами", value: "543" },
- { label: "Школа только для девочек", value: "633" },
- { label: "Шота", value: "514" },
- { label: "Шоу-бизнес", value: "407" },
- { label: "Шпионы", value: "563" },
- { label: "Эволюция", value: "196" },
- { label: "Эгоистичный главный герой", value: "539" },
- { label: "Эйдетическая память", value: "392" },
- { label: "Экзорсизм", value: "504" },
- { label: "Экономика", value: "492" },
- { label: "Эксгибиционизм", value: "639" },
- { label: "Эксперименты с людьми", value: "129" },
- { label: "Элементальная магия", value: "395" },
- { label: "Эльфы", value: "172" },
- { label: "Эмоционально слабый главный герой", value: "816" },
- { label: "Эпизодический", value: "612" },
- { label: "Юный любовный интерес", value: "446" },
- { label: "Яды", value: "410" },
- { label: "Языкастые персонажи", value: "406" },
- { label: "Языковой барьер", value: "59" },
- { label: "Яндере", value: "208" },
- { label: "Японские силы самообороны", value: "559" },
- { label: "Ярко выраженная романтическая линия", value: "272" },
- { label: "Abusive Characters", value: "625" },
- { label: "Adapted to Visual Novel", value: "1046" },
- { label: "Adopted-lead", value: "886" },
- { label: "Adultery", value: "866" },
- { label: "Affair", value: "645" },
- { label: "Age-gap", value: "923" },
- { label: "Almost-human-lead", value: "975" },
- { label: "An*l", value: "780" },
- { label: "Androgynous-male-lead", value: "1002" },
- { label: "Anti-hero-lead", value: "976" },
- { label: "Apathetic-lead", value: "967" },
- { label: "Arms Dealers", value: "839" },
- { label: "Army-commander", value: "1003" },
- { label: "Artifact-refining", value: "924" },
- { label: "Autism", value: "855" },
- { label: "Awkward Protagonist", value: "669" },
- { label: "Awkward-lead", value: "892" },
- { label: "Bestiality", value: "796" },
- { label: "Big-breasts", value: "908" },
- { label: "Birth-of-a-nation", value: "1004" },
- { label: "Bisexual-lead", value: "1027" },
- { label: "Body-refining", value: "947" },
- { label: "Body-swap/s", value: "1036" },
- { label: "Boss-subordinate-relationship", value: "876" },
- { label: "Bride-kidnapping", value: "948" },
- { label: "Caring-lead", value: "879" },
- { label: "Cautious-lead", value: "1032" },
- { label: "Changed-man", value: "925" },
- { label: "Charismatic-lead", value: "1005" },
- { label: "Child-lead", value: "936" },
- { label: "Clever-lead", value: "880" },
- { label: "Clumsy Love Interests", value: "815" },
- { label: "Cold Love Interests", value: "651" },
- { label: "Coming of Age", value: "860" },
- { label: "Confident-lead", value: "894" },
- { label: "Confident-male-lead", value: "951" },
- { label: "Confinement", value: "767" },
- { label: "Conflicting Loyalties", value: "793" },
- { label: "Couple Growth", value: "690" },
- { label: "Court Official", value: "863" },
- { label: "Cowardly Protagonist", value: "703" },
- { label: "Cowardly-lead", value: "1000" },
- { label: "Cross-dressing", value: "250" },
- { label: "Cunnilingus", value: "867" },
- { label: "Cunning-lead", value: "952" },
- { label: "Cunning-male-lead", value: "953" },
- { label: "Curious Protagonist", value: "849" },
- { label: "Cute-lead", value: "887" },
- { label: "Dense-lead", value: "868" },
- { label: "Determined-lead", value: "972" },
- { label: "Developing-technology", value: "1006" },
- { label: "Devil/s", value: "1007" },
- { label: "Different Social Status", value: "758" },
- { label: "Disfigurement", value: "838" },
- { label: "Doting Love Interests", value: "665" },
- { label: "Doting Older Siblings", value: "609" },
- { label: "Doting Parents", value: "530" },
- { label: "Dungeon/s-exploring", value: "990" },
- { label: "Elderly Protagonist", value: "774" },
- { label: "Enlightenment", value: "729" },
- { label: "Eunuch", value: "1047" },
- { label: "Eye Powers", value: "386" },
- { label: "Family Business", value: "785" },
- { label: "Famous Parents", value: "790" },
- { label: "Famous-lead", value: "897" },
- { label: "Fanfic", value: "942" },
- { label: "Fated Lovers", value: "797" },
- { label: "Fellatio", value: "870" },
- { label: "Female-lead", value: "888" },
- { label: "First-time-intercourse", value: "871" },
- { label: "Fleet Battles", value: "836" },
- { label: "Forced Living Arrangements", value: "808" },
- { label: "Forced Marriage", value: "835" },
- { label: "Former Hero", value: "752" },
- { label: "Fujoshi", value: "1045" },
- { label: "Galge", value: "848" },
- { label: "Gambling", value: "1031" },
- { label: "Gamelit", value: "994" },
- { label: "Genderless-lead", value: "1008" },
- { label: "Glasses-wearing-lead", value: "995" },
- { label: "Guardian Relationship", value: "197" },
- { label: "H*ndjob", value: "629" },
- { label: "Half-human-lead", value: "956" },
- { label: "Hard-working-lead", value: "957" },
- { label: "Hard-working-male-lead", value: "958" },
- { label: "Hard-working-protagonist/s", value: "1030" },
- { label: "Harem-seeking-lead", value: "929" },
- { label: "Harem-subtext", value: "909" },
- { label: "Helpful Protagonist", value: "760" },
- { label: "Helpful-lead", value: "882" },
- { label: "Hidden-gem", value: "998" },
- { label: "High-fantasy", value: "991" },
- { label: "Human-becomes-demon/monster", value: "1009" },
- { label: "Human-nonhuman-relationship", value: "914" },
- { label: "Humanoid-lead", value: "915" },
- { label: "Imperial Harem", value: "805" },
- { label: "Incubus", value: "1049" },
- { label: "Insects", value: "831" },
- { label: "Interspatial-storage", value: "959" },
- { label: "Kind Love Interests", value: "757" },
- { label: "Large-number-of-skills", value: "1010" },
- { label: "Legendary-hero", value: "1011" },
- { label: "Litrpg", value: "977" },
- { label: "Love Rivals", value: "788" },
- { label: "Lovers Reunited", value: "853" },
- { label: "Low-fantasy", value: "1037" },
- { label: "Master-disciple-relationship", value: "899" },
- { label: "Matriarchy", value: "807" },
- { label: "Mature-lead", value: "900" },
- { label: "Mind Break", value: "862" },
- { label: "Mismatched Couple", value: "695" },
- { label: "Mob Protagonist", value: "648" },
- { label: "Mob-lead", value: "902" },
- { label: "Modern", value: "988" },
- { label: "Monster-pov", value: "1012" },
- { label: "Mpreg", value: "856" },
- { label: "Multiple-povs", value: "1013" },
- { label: "Mystery Solving", value: "710" },
- { label: "Naive-lead", value: "1014" },
- { label: "Near-death-experience", value: "996" },
- { label: "Neet", value: "495" },
- { label: "Nightmares", value: "833" },
- { label: "Nobility", value: "1015" },
- { label: "Non-human-lead", value: "978" },
- { label: "Non-humanoid-lead", value: "1016" },
- { label: "Not-so-secret-identity", value: "979" },
- { label: "Omegaverse", value: "857" },
- { label: "Online-game", value: "910" },
- { label: "Online-gaming", value: "911" },
- { label: "Outdoor Interc**rse", value: "847" },
- { label: "Outdoor-intercourse", value: "903" },
- { label: "Overprotective Siblings", value: "610" },
- { label: "Part-Time Job", value: "865" },
- { label: "Past Trauma", value: "726" },
- { label: "Past-memories", value: "1017" },
- { label: "Persistent Love Interests", value: "714" },
- { label: "Perverted-lead", value: "932" },
- { label: "Photography", value: "798" },
- { label: "Pill Based Cultivation", value: "279" },
- { label: "Pill Concocting", value: "245" },
- { label: "Pilots", value: "820" },
- { label: "Playboys", value: "795" },
- { label: "Playful-lead", value: "989" },
- { label: "Polyandry", value: "811" },
- { label: "Portal-fantasy-/-isekai", value: "992" },
- { label: "Pragmatic-lead", value: "884" },
- { label: "Profanity", value: "980" },
- { label: "Protagonist-loyal-to-love-interest", value: "905" },
- { label: "R-15 (Японское возрастное ограничение)", value: "230" },
- { label: "Rebellion", value: "834" },
- { label: "Reincarnated in a Game World", value: "804" },
- { label: "Reluctant Protagonist", value: "696" },
- { label: "Reverse R*pe", value: "776" },
- { label: "Reversible Couple", value: "854" },
- { label: "Ruling-class", value: "943" },
- { label: "S*x Friends", value: "750" },
- { label: "S*xual Cultivation Technique", value: "823" },
- { label: "Salaryman", value: "1035" },
- { label: "Satire", value: "981" },
- { label: "Schemes And Conspiracies", value: "745" },
- { label: "Scientist/s", value: "997" },
- { label: "Scientists", value: "1029" },
- { label: "Secret Crush", value: "827" },
- { label: "Seme Protagonist", value: "1034" },
- { label: "Seme-lead", value: "1028" },
- { label: "Sentimental Protagonist", value: "1048" },
- { label: "Seven-heavenly-virtues", value: "1018" },
- { label: "Sexual Cultivation Technique", value: "350" },
- { label: "Sexual-content", value: "982" },
- { label: "Sexuality", value: "983" },
- { label: "Sharing A Body", value: "814" },
- { label: "Shotacon", value: "858" },
- { label: "Shoujo-Ai Subplot", value: "777" },
- { label: "Sibling Rivalry", value: "766" },
- { label: "Sibling's Care", value: "1042" },
- { label: "Sickly Characters", value: "787" },
- { label: "Skills", value: "1019" },
- { label: "Slave-harem", value: "1001" },
- { label: "Slime", value: "1020" },
- { label: "Smart-male-lead", value: "963" },
- { label: "Spirit Users", value: "739" },
- { label: "Straight Seme", value: "819" },
- { label: "Straight Uke", value: "818" },
- { label: "Strength-based-social-hierarchy", value: "974" },
- { label: "Strong-lead", value: "944" },
- { label: "Strong-male-lead", value: "964" },
- { label: "Student-teacher-relationship", value: "1026" },
- { label: "Suspense", value: "987" },
- { label: "Sword-and-sorcery", value: "875" },
- { label: "Threesome", value: "574" },
- { label: "Transformation Ability", value: "736" },
- { label: "Traumatising-content", value: "1040" },
- { label: "Underestimated-lead", value: "919" },
- { label: "Underestimated-male-lead", value: "966" },
- { label: "Unique-abilities", value: "1021" },
- { label: "Unique-skill", value: "1022" },
- { label: "Unique-skills", value: "1023" },
- { label: "Unlimited Flow", value: "1044" },
- { label: "Unrequited Love", value: "806" },
- { label: "Urban-fantasy", value: "1041" },
- { label: "Villainess Noble Girls", value: "719" },
- { label: "Weak-lead", value: "885" },
- { label: "Web-novel", value: "1024" },
- ],
- type: FilterTypes.ExcludableCheckboxGroup,
- },
- tags: {
- label: "Жанры",
- value: { include: [], exclude: [] },
- options: [
- { label: "Боевые искусства", value: "22" },
- { label: "Гарем", value: "114" },
- { label: "Гендер бендер", value: "246" },
- { label: "Дзёсэй", value: "216" },
- { label: "Для взрослых", value: "115" },
- { label: "Для взрослых", value: "258" },
- { label: "Драма", value: "7" },
- { label: "Исторический", value: "101" },
- { label: "Комедия", value: "17" },
- { label: "Лоликон", value: "638" },
- { label: "Магический реализм", value: "922" },
- { label: "Меха", value: "24" },
- { label: "Милитари", value: "12" },
- { label: "Мистика", value: "2" },
- { label: "Научная фантастика", value: "13" },
- { label: "Непристойность", value: "747" },
- { label: "Повседневность", value: "93" },
- { label: "Приключение", value: "11" },
- { label: "Психология", value: "18" },
- { label: "Романтика", value: "9" },
- { label: "Сверхъестественное", value: "20" },
- { label: "Сёдзё", value: "15" },
- { label: "Сёдзё-ай", value: "23" },
- { label: "Сёнэн", value: "189" },
- { label: "Сёнэн-ай", value: "680" },
- { label: "Спорт", value: "420" },
- { label: "Сэйнэн", value: "5" },
- { label: "Сюаньхуа", value: "242" },
- { label: "Сянься", value: "364" },
- { label: "Трагедия", value: "19" },
- { label: "Триллер", value: "3" },
- { label: "Ужасы", value: "1" },
- { label: "Уся", value: "720" },
- { label: "Фэнтези", value: "8" },
- { label: "Школьная жизнь", value: "21" },
- { label: "Экшн", value: "14" },
- { label: "Эччи", value: "327" },
- { label: "Юри", value: "691" },
- { label: "Яой", value: "682" },
- { label: "Eastern fantasy", value: "907" },
- { label: "Isekai", value: "999" },
- { label: "Video games", value: "993" },
- ],
- type: FilterTypes.ExcludableCheckboxGroup,
- },
- } satisfies Filters;
-}
-
-export default new RNBH();
-
-interface responseNovels {
- id: number;
- names: Names;
- rating: number;
- synopsis: string;
- url: string;
- poster: Poster;
- created_at: number;
- status: string;
- user?: User;
- counts: Counts;
-}
-interface Names {
- eng: string;
- rus?: string;
- original?: string;
-}
-interface Poster {
- medium: string;
- small: string;
- color: string;
-}
-interface User {
- status?: null;
- liked: boolean;
-}
-interface Counts {
- volumes: string;
- chapters: string;
-}
-
-interface responseNovel {
- id: number;
- names: Names;
- rating: number;
- year: number;
- synopsis: string;
- url: string;
- posters: Posters;
- isSpecial: boolean;
- liked: boolean;
- authors?: AuthorsEntity[] | null;
- translators?: TranslatorsEntity[] | null;
- description: string;
- status: Status;
- start_reading_url: string;
- html: string;
- tags: Tags;
-}
-interface Posters {
- big: string;
- medium: string;
- small: string;
- tiny: string;
- color: string;
-}
-interface AuthorsEntity {
- name_eng: string;
- pivot: Pivot;
-}
-interface Pivot {
- ranobe_id: number;
- author_id?: number;
- translator_id?: number;
-}
-interface TranslatorsEntity {
- name: string;
- pivot: Pivot;
-}
-interface Status {
- id: number;
- title: string;
-}
-interface Tags {
- events?: GenresOrEntity[] | null;
- genres?: GenresOrEntity[] | null;
-}
-interface GenresOrEntity {
- id: number;
- names: Names;
- url: string;
- title: string;
- description?: string | null;
-}
-
-interface responseChapters {
- marked_chapters_ids?: null[] | null;
- volumes?: VolumesEntity[] | null;
-}
-interface VolumesEntity {
- id: number;
- num: number;
- name: string;
- status: Status;
- chapters?: ChaptersEntity[] | null;
-}
-interface Status {
- id: number;
- name: string;
-}
-interface ChaptersEntity {
- id: number;
- name: string;
- num: number;
- url: string;
- is_new: boolean;
- has_images: boolean;
- changed_at: string;
- comments_count: string;
-}
-
-interface responseSearch {
- meta: Meta;
- collections?: DataEntity[] | null;
- data?: DataEntity[] | null;
-}
-interface Meta {
- key: string;
- title: string;
-}
-interface DataEntity {
- id: number;
- names?: Names | null;
- description?: string | null;
- url: string;
- image?: string | null;
- name?: string | null;
- level?: number | null;
- evolution_scheme?: null;
- roles?: null[] | null;
- avatar?: Avatar | null;
- has_plus?: boolean | null;
-}
-interface Avatar {
- big: string;
- color: string;
- thumb: string;
- is_default: boolean;
-}
+import { Plugin } from "@typings/plugin";
+import { FilterTypes, Filters } from "@libs/filterInputs";
+import { fetchApi, fetchFile } from "@libs/fetch";
+import { NovelStatus } from "@libs/novelStatus";
+import { load as parseHTML } from "cheerio";
+import dayjs from "dayjs";
+
+class RNBH implements Plugin.PluginBase {
+ id = "RNBH.org";
+ name = "RanobeHub";
+ version = "1.0.0";
+ site = "https://ranobehub.org";
+ icon = "src/ru/ranobehub/icon.png";
+
+ async popularNovels(
+ pageNo: number,
+ { showLatestNovels, filters }: Plugin.PopularNovelsOptions,
+ ): Promise {
+ let url = this.site + "/api/search?page=" + pageNo + "&sort=";
+ url += showLatestNovels
+ ? "last_chapter_at"
+ : filters?.sort?.value || "computed_rating";
+ url += "&status=" + (filters?.status?.value ? filters?.status?.value : "0");
+
+ if (filters) {
+ if (filters.country?.value?.length) {
+ url += "&country=" + filters.country.value.join(",");
+ }
+
+ const includeTags = [
+ filters.tags?.value?.include,
+ filters.events?.value?.include,
+ ].flat().filter((t) => t);
+
+ if (includeTags.length) {
+ url += "&tags:positive=" + includeTags.join(",");
+ }
+
+ const excludeTags = [
+ filters.tags?.value?.exclude,
+ filters.events?.value?.exclude,
+ ].flat().filter((t) => t);
+
+ if (excludeTags.length) {
+ url += "&tags:negative=" + excludeTags.join(",");
+ }
+ }
+ url += "&take=40";
+ const result = await fetchApi(url);
+ const body = (await result.json()) as { resource: responseNovels[] };
+
+ const novels: Plugin.NovelItem[] = [];
+ body.resource.forEach((novel) =>
+ novels.push({
+ name: novel.names.rus || novel.names.eng || novel.names.original,
+ cover: novel.poster.medium,
+ url: novel.url,
+ }),
+ );
+
+ return novels;
+ }
+
+ async parseNovelAndChapters(novelUrl: string): Promise {
+ const novelId = novelUrl
+ .substring("https://ranobehub.org/ranobe/".length)
+ .split("-")[0];
+ const result = await fetchApi(this.site + "/api/ranobe/" + novelId);
+ const json = (await result.json()) as { data: responseNovel };
+
+ const novel: Plugin.SourceNovel = {
+ url: json.data.url,
+ name: json.data.names?.rus || json.data.names.eng,
+ cover: json.data.posters.medium,
+ summary: json.data.description,
+ author: json.data?.authors?.[0]?.name_eng || "",
+ status: json.data.status.title.includes("процессе")
+ ? NovelStatus.Ongoing
+ : NovelStatus.Completed,
+ };
+
+ const tags = [json.data.tags.events, json.data.tags.genres]
+ .flat()
+ .map((tags) => tags?.names?.rus || tags?.names?.eng || tags?.title)
+ .filter((tags) => tags);
+
+ if (tags.length) {
+ novel.genres = tags.join(", ");
+ }
+
+ const chapters: Plugin.ChapterItem[] = [];
+ const chaptersRaw = await fetchApi(`${this.site}/api/ranobe/${novelId}/contents`);
+ const chaptersJSON = (await chaptersRaw.json()) as {
+ volumes: VolumesEntity[];
+ };
+
+ chaptersJSON.volumes.forEach((volume) =>
+ volume.chapters?.forEach((chapter) => {
+ chapters.push({
+ name: chapter.name,
+ url: chapter.url,
+ releaseTime: dayjs(parseInt(chapter.changed_at, 10) * 1000).format("LLL"),
+ chapterNumber: chapters.length + 1,
+ });
+ }),
+ );
+
+ novel.chapters = chapters;
+ return novel;
+ }
+
+ async parseChapter(chapterUrl: string): Promise {
+ const result = await fetchApi(chapterUrl);
+ const body = await result.text();
+
+ const loadedCheerio = parseHTML(body);
+ loadedCheerio(".chapter-hoticons").remove();
+ loadedCheerio("div.text:nth-child(1) img").each((index, element) => {
+ if (!loadedCheerio(element).attr("src")?.startsWith("http")) {
+ const dataMediaId = loadedCheerio(element).attr("data-media-id");
+ loadedCheerio(element).attr("src", this.site + "/api/media/" + dataMediaId);
+ }
+ });
+
+ let chapterText = loadedCheerio("div.text:nth-child(1)").html() || "";
+
+ // Remove script tags
+ chapterText = chapterText?.replace(
+ /<\s*script[^>]*>[\s\S]*?<\/script>/gim,
+ "",
+ );
+ return chapterText;
+ }
+
+ async searchNovels(
+ searchTerm: string,
+ //pageNo: number | undefined = 1,
+ ): Promise {
+ const url = `${this.site}/api/fulltext/global?query=${searchTerm}&take=10`;
+ const result = await fetchApi(url);
+ const data = (await result.json()) as responseSearch[];
+ const novels: Plugin.NovelItem[] = [];
+
+ data
+ ?.find((item) => item?.meta?.key === "ranobe")
+ ?.data?.forEach((novel) =>
+ novels.push({
+ name:
+ novel?.names?.rus ||
+ novel?.names?.eng ||
+ novel.name ||
+ novel?.names?.original ||
+ "",
+ url:
+ "https://ranobehub.org/ranobe/" +
+ novel?.url?.match(
+ /https:\/\/ranobehub\.org\/ranobe\/(.*?)\?utm_source=search_name&utm_medium=search&utm_campaign=search_using/,
+ )?.[1],
+ cover: novel?.image?.replace("/small", "/medium"),
+ }),
+ );
+
+ return novels;
+ }
+
+ fetchImage = fetchFile;
+
+ filters = {
+ sort: {
+ label: "Сортировка",
+ value: "computed_rating",
+ options: [
+ { label: "по рейтингу", value: "computed_rating" },
+ { label: "по дате обновления", value: "last_chapter_at" },
+ { label: "по дате добавления", value: "created_at" },
+ { label: "по названию", value: "name_rus" },
+ { label: "по просмотрам", value: "views" },
+ { label: "по количеству глав", value: "count_chapters" },
+ { label: "по объему перевода", value: "count_of_symbols" },
+ ],
+ type: FilterTypes.Picker,
+ },
+ status: {
+ label: "Статус перевода",
+ value: "",
+ options: [
+ { label: "Любой", value: "" },
+ { label: "В процессе", value: "1" },
+ { label: "Завершено", value: "2" },
+ { label: "Заморожено", value: "3" },
+ { label: "Неизвестно", value: "4" },
+ ],
+ type: FilterTypes.Picker,
+ },
+ country: {
+ label: "Тип",
+ value: [],
+ options: [
+ { label: "Китай", value: "2" },
+ { label: "Корея", value: "3" },
+ { label: "США", value: "4" },
+ { label: "Япония", value: "1" },
+ ],
+ type: FilterTypes.CheckboxGroup,
+ },
+ events: {
+ label: "События",
+ value: { include: [], exclude: [] },
+ options: [
+ { label: "[Награжденная работа]", value: "611" },
+ { label: "18+", value: "338" },
+ { label: "Авантюристы", value: "353" },
+ { label: "Автоматоны", value: "538" },
+ { label: "Агрессивные персонажи", value: "434" },
+ { label: "Ад", value: "509" },
+ { label: "Адаптация в радиопостановку", value: "522" },
+ { label: "Академия", value: "25" },
+ { label: "Актеры озвучки", value: "578" },
+ { label: "Активный главный герой", value: "132" },
+ { label: "Алхимия", value: "116" },
+ { label: "Альтернативный мир", value: "28" },
+ { label: "Амнезия/Потеря памяти", value: "247" },
+ { label: "Анабиоз", value: "657" },
+ { label: "Ангелы", value: "218" },
+ { label: "Андрогинные персонажи", value: "217" },
+ { label: "Андроиды", value: "82" },
+ { label: "Анти-магия", value: "471" },
+ { label: "Антигерой", value: "346" },
+ { label: "Антикварный магазин", value: "572" },
+ { label: "Антисоциальный главный герой", value: "562" },
+ { label: "Антиутопия", value: "663" },
+ { label: "Апатичный протагонист", value: "29" },
+ { label: "Апокалипсис", value: "314" },
+ { label: "Аранжированный брак", value: "285" },
+ { label: "Армия", value: "598" },
+ { label: "Артефакты", value: "117" },
+ { label: "Артисты", value: "460" },
+ { label: "Банды", value: "581" },
+ { label: "БДСМ", value: "676" },
+ { label: "Бедный главный герой", value: "309" },
+ { label: "Безжалостный главный герой", value: "144" },
+ { label: "Беззаботный главный герой", value: "355" },
+ { label: "Безусловная любовь", value: "650" },
+ { label: "Беременность", value: "131" },
+ { label: "Бесполый главный герой", value: "222" },
+ { label: "Бессмертные", value: "275" },
+ { label: "Бесстрашный протагонист", value: "619" },
+ { label: "Бесстыдный главный герой", value: "256" },
+ { label: "Бесчестный главный герой", value: "699" },
+ { label: "Библиотека", value: "342" },
+ { label: "Бизнесмен ", value: "813" },
+ { label: "Биочип", value: "120" },
+ { label: "Бисексуальный главный герой", value: "822" },
+ { label: "Близнецы", value: "148" },
+ { label: "Боги", value: "211" },
+ { label: "Богини", value: "356" },
+ { label: "Боевая академия", value: "369" },
+ { label: "Боевые духи", value: "347" },
+ { label: "Боевые соревнования", value: "422" },
+ { label: "Божественная защита", value: "336" },
+ { label: "Божественные силы", value: "224" },
+ { label: "Большая разница в возрасте между героем и его любовным интересом", value: "348" },
+ { label: "Борьба за власть", value: "544" },
+ { label: "Брак", value: "363" },
+ { label: "Брак по расчету", value: "65" },
+ { label: "Братский комплекс", value: "31" },
+ { label: "Братство", value: "413" },
+ { label: "Братья и сестры", value: "518" },
+ { label: "Буддизм", value: "742" },
+ { label: "Быстрая культивация", value: "273" },
+ { label: "Быстрообучаемый", value: "221" },
+ { label: "Валькирии", value: "667" },
+ { label: "Вампиры", value: "266" },
+ { label: "Ваншот", value: "679" },
+ { label: "Ведьмы", value: "169" },
+ { label: "Вежливый главный герой", value: "289" },
+ { label: "Верные подчиненные", value: "225" },
+ { label: "Взрослый главный герой", value: "183" },
+ { label: "Видит то, чего не видят другие", value: "636" },
+ { label: "Виртуальная реальность", value: "313" },
+ { label: "Владелец магазина", value: "653" },
+ { label: "Внезапная сила", value: "376" },
+ { label: "Внезапное богатство", value: "802" },
+ { label: "Внешний вид отличается от фактического возраста", value: "334" },
+ { label: "Военные Летописи", value: "740" },
+ { label: "Возвращение из другого мира", value: "673" },
+ { label: "Войны", value: "58" },
+ { label: "Вокалоид", value: "678" },
+ { label: "Волшебники/Волшебницы", value: "477" },
+ { label: "Волшебные звери", value: "201" },
+ { label: "Воображаемый друг", value: "614" },
+ { label: "Воры", value: "326" },
+ { label: "Воскрешение", value: "78" },
+ { label: "Враги становятся возлюбленными", value: "428" },
+ { label: "Враги становятся союзниками", value: "502" },
+ { label: "Врата в другой мир", value: "558" },
+ { label: "Врачи", value: "286" },
+ { label: "Временной парадокс", value: "163" },
+ { label: "Всемогущий главный герой", value: "42" },
+ { label: "Вторжение на землю", value: "77" },
+ { label: "Второй шанс", value: "112" },
+ { label: "Вуайеризм", value: "851" },
+ { label: "Выживание", value: "290" },
+ { label: "Высокомерные персонажи", value: "268" },
+ { label: "Гадание", value: "540" },
+ { label: "Гарем рабов", value: "828" },
+ { label: "Геймеры", value: "302" },
+ { label: "Генералы", value: "223" },
+ { label: "Генетические модификации", value: "620" },
+ { label: "Гениальный главный герой", value: "566" },
+ { label: "Герои", value: "173" },
+ { label: "Героиня — сорванец", value: "525" },
+ { label: "Герой влюбляется первым", value: "64" },
+ { label: "Гетерохромия", value: "510" },
+ { label: "Гильдии", value: "323" },
+ { label: "Гипнотизм", value: "768" },
+ { label: "Главный герой — бог", value: "486" },
+ { label: "Главный герой — гуманоид", value: "595" },
+ { label: "Главный герой — женщина", value: "63" },
+ { label: "Главный герой — мужчина", value: "39" },
+ { label: "Главный герой — наполовину человек", value: "362" },
+ { label: "Главный герой — отец", value: "859" },
+ { label: "Главный герой — раб", value: "832" },
+ { label: "Главный герой — ребенок", value: "415" },
+ { label: "Главный герой — рубака", value: "400" },
+ { label: "Главный герой — собиратель гарема", value: "439" },
+ { label: "Главный герой влюбляется первым", value: "655" },
+ { label: "Главный герой играет роль", value: "396" },
+ { label: "Главный герой носит очки", value: "637" },
+ { label: "Главный герой пацифист", value: "675" },
+ { label: "Главный герой с несколькими телами", value: "628" },
+ { label: "Главный герой силен с самого начала", value: "45" },
+ { label: "Гладиаторы", value: "549" },
+ { label: "Глуповатый главный герой", value: "295" },
+ { label: "Гоблины", value: "529" },
+ { label: "Големы", value: "569" },
+ { label: "Гомункул", value: "850" },
+ { label: "Горничные", value: "380" },
+ { label: "Госпиталь", value: "1043" },
+ { label: "Готовка", value: "193" },
+ { label: "Гриндинг", value: "303" },
+ { label: "Дао Компаньон", value: "384" },
+ { label: "Даосизм", value: "792" },
+ { label: "Дарк", value: "151" },
+ { label: "Дварфы", value: "220" },
+ { label: "Двойная личность", value: "601" },
+ { label: "Двойник", value: "547" },
+ { label: "Дворецкий", value: "623" },
+ { label: "Дворяне", value: "41" },
+ { label: "Дворянство/Аристократия", value: "354" },
+ { label: "Девушки-монстры", value: "634" },
+ { label: "Демоническая техника культивации", value: "706" },
+ { label: "Демоны", value: "6" },
+ { label: "Денежный долг", value: "841" },
+ { label: "Депрессия", value: "494" },
+ { label: "Детективы", value: "561" },
+ { label: "Дискриминация", value: "34" },
+ { label: "Добыча денег одно из основных стремлений главного героя", value: "307" },
+ { label: "Долгая разлука", value: "200" },
+ { label: "Домашние дела", value: "178" },
+ { label: "Домогательство", value: "394" },
+ { label: "Драконы", value: "195" },
+ { label: "Драконьи всадники", value: "555" },
+ { label: "Древние времена", value: "102" },
+ { label: "Древний Китай", value: "284" },
+ { label: "Дружба", value: "97" },
+ { label: "Друзья детства", value: "170" },
+ { label: "Друзья становятся врагами", value: "507" },
+ { label: "Друиды", value: "427" },
+ { label: "Дух лисы", value: "842" },
+ { label: "Духи/Призраки", value: "46" },
+ { label: "Духовный советник", value: "351" },
+ { label: "Душевность", value: "587" },
+ { label: "Души", value: "136" },
+ { label: "Европейская атмосфера", value: "457" },
+ { label: "Ёкаи", value: "516" },
+ { label: "Есть аниме-адаптация", value: "26" },
+ { label: "Есть видеоигра по мотивам", value: "491" },
+ { label: "Есть манга-адаптация", value: "27" },
+ { label: "Есть манхва-адаптация", value: "453" },
+ { label: "Есть маньхуа-адаптация", value: "298" },
+ { label: "Есть сериал-адаптация", value: "421" },
+ { label: "Есть фильм по мотивам", value: "47" },
+ { label: "Женища-наставник", value: "438" },
+ { label: "Жертва изнасилования влюбляется в насильника", value: "414" },
+ { label: "Жесткая, двуличная личность", value: "249" },
+ { label: "Жестокие персонажи", value: "436" },
+ { label: "Жестокое обращение с ребенком", value: "617" },
+ { label: "Жестокость", value: "127" },
+ { label: "Животноводство", value: "765" },
+ { label: "Животные черты", value: "466" },
+ { label: "Жизнь в квартире", value: "554" },
+ { label: "Жрицы", value: "564" },
+ { label: "Заботливый главный герой", value: "176" },
+ { label: "Забывчивый главный герой", value: "579" },
+ { label: "Заговоры", value: "177" },
+ { label: "Закалка тела", value: "269" },
+ { label: "Законники", value: "769" },
+ { label: "Замкнутый главный герой", value: "533" },
+ { label: "Запечатанная сила", value: "344" },
+ { label: "Застенчивые персонажи", value: "443" },
+ { label: "Звери", value: "119" },
+ { label: "Звери-компаньоны", value: "192" },
+ { label: "Злой протагонист", value: "125" },
+ { label: "Злые боги", value: "437" },
+ { label: "Злые организации", value: "503" },
+ { label: "Злые религии", value: "725" },
+ { label: "Знаменитости", value: "397" },
+ { label: "Знаменитый главный герой", value: "469" },
+ { label: "Знания современного мира", value: "185" },
+ { label: "Зомби", value: "321" },
+ { label: "Игра на выживание", value: "162" },
+ { label: "Игривый протагонист", value: "700" },
+ { label: "Игровая система рейтинга", value: "301" },
+ { label: "Игровые элементы", value: "152" },
+ { label: "Игрушки (18+)", value: "644" },
+ { label: "Из грязи в князи", value: "330" },
+ { label: "Из женщины в мужчину ", value: "688" },
+ { label: "Из мужчины в женщину", value: "698" },
+ { label: "Из полного в худого", value: "809" },
+ { label: "Из слабого в сильного", value: "81" },
+ { label: "Из страшно(го/й) в красиво(го/ю)", value: "810" },
+ { label: "Извращенный главный герой", value: "349" },
+ { label: "Изгои", value: "472" },
+ { label: "Изменение расы", value: "627" },
+ { label: "Изменения внешнего вида", value: "191" },
+ { label: "Изменения личности", value: "99" },
+ { label: "Изнасилование", value: "110" },
+ { label: "Изображения жестокости", value: "260" },
+ { label: "Империи", value: "749" },
+ { label: "Инвалидность", value: "656" },
+ { label: "Индустриализация", value: "180" },
+ { label: "Инженер", value: "35" },
+ { label: "Инцест", value: "463" },
+ { label: "Искусственный интеллект", value: "118" },
+ { label: "Исследования", value: "635" },
+ { label: "Каннибализм", value: "377" },
+ { label: "Карточные игры", value: "654" },
+ { label: "Киберспорт", value: "658" },
+ { label: "Кланы", value: "950" },
+ { label: "Класс безработного [Игровой класс в игре]", value: "727" },
+ { label: "Клоны", value: "365" },
+ { label: "Клубы", value: "96" },
+ { label: "Книги", value: "341" },
+ { label: "Книги навыков", value: "312" },
+ { label: "Книжный червь", value: "455" },
+ { label: "Коварство", value: "111" },
+ { label: "Коллеги", value: "683" },
+ { label: "Колледж/Университет", value: "712" },
+ { label: "Кома", value: "826" },
+ { label: "Командная работа", value: "426" },
+ { label: "Комедийный оттенок", value: "523" },
+ { label: "Комплекс неполноценности", value: "489" },
+ { label: "Комплекс семейных отношений", value: "104" },
+ { label: "Конкуренция", value: "746" },
+ { label: "Контракты", value: "483" },
+ { label: "Контроль разума/сознания", value: "262" },
+ { label: "Копейщик", value: "339" },
+ { label: "Королевская битва", value: "1025" },
+ { label: "Королевская власть", value: "53" },
+ { label: "Королевства", value: "141" },
+ { label: "Коррупция", value: "378" },
+ { label: "Космические войны", value: "674" },
+ { label: "Красивый герой", value: "107" },
+ { label: "Крафт", value: "287" },
+ { label: "Кризис личности", value: "599" },
+ { label: "Кругосветное путешествие", value: "257" },
+ { label: "Кудере", value: "440" },
+ { label: "Кузены", value: "701" },
+ { label: "Кузнец", value: "454" },
+ { label: "Кукловоды", value: "431" },
+ { label: "Куклы/марионетки", value: "573" },
+ { label: "Культивация", value: "123" },
+ { label: "Куннилингус", value: "632" },
+ { label: "Легенды", value: "430" },
+ { label: "Легкая жизнь", value: "604" },
+ { label: "Ленивый главный герой", value: "570" },
+ { label: "Лидерство", value: "424" },
+ { label: "Лоли", value: "92" },
+ { label: "Лотерея", value: "401" },
+ { label: "Любовный интерес влюбляется первым", value: "647" },
+ { label: "Любовный интерес главного героя носит очки", value: "576" },
+ { label: "Любовный треугольник", value: "98" },
+ { label: "Любовь детства", value: "500" },
+ { label: "Любовь с первого взгляда", value: "730" },
+ { label: "Магические надписи", value: "373" },
+ { label: "Магические печати", value: "277" },
+ { label: "Магические технологии", value: "357" },
+ { label: "Магическое пространство/измерение, доступное не всем персонажам", value: "244" },
+ { label: "Магия", value: "38" },
+ { label: "Магия призыва", value: "333" },
+ { label: "Мазохистские персонажи", value: "660" },
+ { label: "Манипулятивные персонажи", value: "130" },
+ { label: "Мания", value: "91" },
+ { label: "Мастер на все руки", value: "390" },
+ { label: "Мастурбация", value: "846" },
+ { label: "Махо-сёдзё", value: "496" },
+ { label: "Медицинские знания", value: "441" },
+ { label: "Медленная романтическая линия", value: "113" },
+ { label: "Медленное развитие на старте ", value: "670" },
+ { label: "Межпространственные путешествия", value: "316" },
+ { label: "Менеджмент", value: "182" },
+ { label: "Мертвый главный герой", value: "794" },
+ { label: "Месть", value: "88" },
+ { label: "Метаморфы", value: "234" },
+ { label: "Меч и магия", value: "55" },
+ { label: "Мечник", value: "607" },
+ { label: "Мечты", value: "733" },
+ { label: "Милая история", value: "709" },
+ { label: "Милое дитя", value: "596" },
+ { label: "Милый главный герой", value: "697" },
+ { label: "Мировое дерево", value: "385" },
+ { label: "Мистический ореол вокруг семьи", value: "409" },
+ { label: "Мифические звери", value: "418" },
+ { label: "Мифология", value: "468" },
+ { label: "Младшие братья", value: "843" },
+ { label: "Младшие сестры", value: "465" },
+ { label: "ММОРПГ (ЛитРПГ)", value: "306" },
+ { label: "Множество перемещенных людей", value: "488" },
+ { label: "Множество реальностей", value: "278" },
+ { label: "Множество реинкарнированных людей", value: "227" },
+ { label: "Модели", value: "649" },
+ { label: "Молчаливый персонаж", value: "705" },
+ { label: "Монстры", value: "69" },
+ { label: "Мужская гей-пара", value: "685" },
+ { label: "Мужчина-яндере", value: "155" },
+ { label: "Музыка", value: "589" },
+ { label: "Музыкальные группы", value: "588" },
+ { label: "Мутации", value: "668" },
+ { label: "Мутированные существа", value: "317" },
+ { label: "Навык кражи", value: "626" },
+ { label: "Навязчивая любовь", value: "85" },
+ { label: "Наемники", value: "324" },
+ { label: "Назойливый возлюбленный", value: "501" },
+ { label: "Наивный главный герой", value: "66" },
+ { label: "Наркотики", value: "661" },
+ { label: "Нарциссический главный герой", value: "470" },
+ { label: "Насилие сексуального характера", value: "824" },
+ { label: "Наследование", value: "372" },
+ { label: "Национализм", value: "318" },
+ { label: "Не блещущий внешне главный герой", value: "328" },
+ { label: "Не родные братья и сестры", value: "464" },
+ { label: "Небеса", value: "508" },
+ { label: "Небесное испытание", value: "274" },
+ { label: "Негуманоидный главный герой", value: "622" },
+ { label: "Недоверчивый главный герой", value: "485" },
+ { label: "Недооцененный главный герой", value: "140" },
+ { label: "Недоразумения", value: "202" },
+ { label: "Неизлечимая болезнь", value: "75" },
+ { label: "Некромант", value: "308" },
+ { label: "Нелинейная история", value: "157" },
+ { label: "Ненавистный главный герой", value: "487" },
+ { label: "Ненадежный рассказчик", value: "165" },
+ { label: "Нерезиденты", value: "821" },
+ { label: "Нерешительный главный герой", value: "741" },
+ { label: "Несерьезный главный герой", value: "294" },
+ { label: "Несколько временных линий", value: "517" },
+ { label: "Несколько главных героев", value: "475" },
+ { label: "Несколько идентичностей", value: "615" },
+ { label: "Несколько личностей", value: "474" },
+ { label: "Нетораре", value: "721" },
+ { label: "Нетори", value: "450" },
+ { label: "Неудачливый главный герой", value: "567" },
+ { label: "Ниндзя", value: "358" },
+ { label: "Обещание из детства", value: "738" },
+ { label: "Обманщик", value: "411" },
+ { label: "Обмен телами", value: "94" },
+ { label: "Обнаженка", value: "417" },
+ { label: "Обольщение", value: "718" },
+ { label: "Оборотни", value: "624" },
+ { label: "Обратный гарем", value: "255" },
+ { label: "Общество монстров", value: "226" },
+ { label: "Обязательство", value: "548" },
+ { label: "Огнестрельное оружие", value: "179" },
+ { label: "Ограниченная продолжительность жизни", value: "73" },
+ { label: "Одержимость", value: "447" },
+ { label: "Одинокий главный герой", value: "304" },
+ { label: "Одиночество", value: "199" },
+ { label: "Одиночное проживание", value: "207" },
+ { label: "Околосмертные переживания", value: "773" },
+ { label: "Оммёдзи", value: "542" },
+ { label: "Омоложение", value: "237" },
+ { label: "Организованная преступность", value: "478" },
+ { label: "Оргия", value: "825" },
+ { label: "Орки", value: "228" },
+ { label: "Освоение навыков", value: "235" },
+ { label: "Основано на аниме", value: "553" },
+ { label: "Основано на видео игре", value: "704" },
+ { label: "Основано на визуальной новелле ", value: "861" },
+ { label: "Основано на песне", value: "677" },
+ { label: "Основано на фильме", value: "552" },
+ { label: "Осторожный главный герой", value: "122" },
+ { label: "Отаку", value: "512" },
+ { label: "Открытый космос", value: "150" },
+ { label: "Отношения в сети", value: "713" },
+ { label: "Отношения между богом и человеком", value: "603" },
+ { label: "Отношения между людьми и нелюдьми", value: "205" },
+ { label: "Отношения на расстоянии", value: "852" },
+ { label: "Отношения начальник-подчиненный", value: "590" },
+ { label: "Отношения Сенпай-Коухай", value: "513" },
+ { label: "Отношения ученика и учителя", value: "451" },
+ { label: "Отношения учитель-ученик", value: "343" },
+ { label: "Отношения хозяин-слуга", value: "206" },
+ { label: "Отомэ игра", value: "723" },
+ { label: "Отсутствие здравого смысла", value: "605" },
+ { label: "Отсутствие родителей", value: "575" },
+ { label: "Офисный роман", value: "686" },
+ { label: "Официанты", value: "681" },
+ { label: "Охотники", value: "288" },
+ { label: "Очаровательный главный герой", value: "659" },
+ { label: "Падшее дворянство", value: "618" },
+ { label: "Падшие ангелы", value: "505" },
+ { label: "Пайзури", value: "630" },
+ { label: "Паразиты", value: "535" },
+ { label: "Параллельные миры", value: "86" },
+ { label: "Парк развлечений", value: "586" },
+ { label: "Пародия", value: "319" },
+ { label: "Певцы/Певицы", value: "734" },
+ { label: "Первая любовь", value: "716" },
+ { label: "Первоисточник новеллы — манга", value: "560" },
+ { label: "Первый раз", value: "845" },
+ { label: "Перемещение в другой мир, имея при себе современные достижения", value: "732" },
+ { label: "Перемещение в игровой мир", value: "532" },
+ { label: "Перемещение в иной мир", value: "754" },
+ { label: "Перерождение в ином мире", value: "755" },
+ { label: "Переселение души/Трансмиграция", value: "139" },
+ { label: "Персонаж использует щит", value: "631" },
+ { label: "Петля времени", value: "79" },
+ { label: "Пираты", value: "817" },
+ { label: "Писатели", value: "408" },
+ { label: "Питомцы", value: "253" },
+ { label: "Племенное общество", value: "291" },
+ { label: "Повелитель демонов", value: "171" },
+ { label: "Повествование от нескольких лиц/Несколько точек зрения", value: "156" },
+ { label: "Подземелья", value: "219" },
+ { label: "Пожелания", value: "166" },
+ { label: "Познание Дао", value: "360" },
+ { label: "Покинутое дитя", value: "534" },
+ { label: "Полигамия", value: "296" },
+ { label: "Политика", value: "43" },
+ { label: "Полиция", value: "801" },
+ { label: "Полулюди", value: "335" },
+ { label: "Пользователь уникального оружия", value: "432" },
+ { label: "Популярный любовный интерес", value: "241" },
+ { label: "Постапокалиптика", value: "60" },
+ { label: "Потерянные цивилизации", value: "751" },
+ { label: "Похищения людей", value: "707" },
+ { label: "Поэзия", value: "404" },
+ { label: "Правонарушители", value: "694" },
+ { label: "Прагматичный главный герой", value: "536" },
+ { label: "Преданный любовный интерес", value: "106" },
+ { label: "Предательство", value: "103" },
+ { label: "Предвидение", value: "52" },
+ { label: "Прекрасная героиня", value: "30" },
+ { label: "Преступники", value: "728" },
+ { label: "Преступность", value: "83" },
+ { label: "Призванный герой", value: "147" },
+ { label: "Призраки", value: "51" },
+ { label: "Принуждение к отношениям", value: "602" },
+ { label: "Принцессы", value: "933" },
+ { label: "Притворная пара", value: "600" },
+ { label: "Причудливые персонажи", value: "297" },
+ { label: "Пришельцы/Инопланетяне", value: "76" },
+ { label: "Программист", value: "666" },
+ { label: "Проклятия", value: "48" },
+ { label: "Промывание мозгов", value: "519" },
+ { label: "Пропуск времени", value: "138" },
+ { label: "Пророчества", value: "429" },
+ { label: "Проститутки", value: "844" },
+ { label: "Пространственное манипулирование", value: "375" },
+ { label: "Прошлое играет большую роль", value: "215" },
+ { label: "Прыжки между мирами", value: "737" },
+ { label: "Психические силы", value: "265" },
+ { label: "Психопаты", value: "158" },
+ { label: "Путешествие во времени", value: "80" },
+ { label: "Пытка", value: "168" },
+ { label: "Рабы", value: "829" },
+ { label: "Развод", value: "771" },
+ { label: "Разумные предметы", value: "174" },
+ { label: "Расизм", value: "320" },
+ { label: "Рассказ", value: "61" },
+ { label: "Расторжения помолвки", value: "243" },
+ { label: "Расы зооморфов", value: "209" },
+ { label: "Ревность", value: "717" },
+ { label: "Редакторы", value: "684" },
+ { label: "Реинкарнация", value: "281" },
+ { label: "Реинкарнация в монстра", value: "204" },
+ { label: "Реинкарнация в объект", value: "692" },
+ { label: "Религии", value: "565" },
+ { label: "Репортеры", value: "837" },
+ { label: "Ресторан", value: "652" },
+ { label: "Решительный главный герой", value: "124" },
+ { label: "Робкий главный герой", value: "800" },
+ { label: "Родитель одиночка", value: "687" },
+ { label: "Родительский комплекс", value: "531" },
+ { label: "Родословная", value: "121" },
+ { label: "Романтический подсюжет ", value: "159" },
+ { label: "Рост персонажа", value: "95" },
+ { label: "Рыцари", value: "142" },
+ { label: "Садистские персонажи", value: "642" },
+ { label: "Самоотверженный главный герой", value: "748" },
+ { label: "Самоубийства", value: "616" },
+ { label: "Самурай", value: "646" },
+ { label: "Сборник коротких историй", value: "456" },
+ { label: "Связанные сюжетные линии", value: "473" },
+ { label: "Святые", value: "761" },
+ { label: "Священники", value: "325" },
+ { label: "Сдержанный главный герой", value: "799" },
+ { label: "Секретные организации", value: "331" },
+ { label: "Секреты", value: "577" },
+ { label: "Секс рабы", value: "830" },
+ { label: "Семейный конфликт", value: "770" },
+ { label: "Семь добродетелей", value: "233" },
+ { label: "Семь смертных грехов", value: "134" },
+ { label: "Семья", value: "251" },
+ { label: "Сёнэн-ай подсюжет ", value: "664" },
+ { label: "Серийные убийцы", value: "497" },
+ { label: "Сестринский комплекс", value: "498" },
+ { label: "Сила духа", value: "282" },
+ { label: "Сила, требующая платы за пользование", value: "520" },
+ { label: "Сильная пара", value: "109" },
+ { label: "Сильный в сильнейшего", value: "359" },
+ { label: "Сильный любовный интерес", value: "161" },
+ { label: "Синдром восьмиклассника", value: "90" },
+ { label: "Сироты", value: "214" },
+ { label: "Система уровней", value: "198" },
+ { label: "Системный администратор", value: "476" },
+ { label: "Скрытие истинной личности", value: "371" },
+ { label: "Скрытие истинных способностей", value: "252" },
+ { label: "Скрытный главный герой", value: "133" },
+ { label: "Скрытые способности", value: "128" },
+ { label: "Скульпторы", value: "366" },
+ { label: "Слабо выраженная романтическая линия", value: "213" },
+ { label: "Слабый главный герой", value: "188" },
+ { label: "Слепой главный герой", value: "864" },
+ { label: "Слуги", value: "232" },
+ { label: "Смерть", value: "49" },
+ { label: "Смерть близких", value: "361" },
+ { label: "Собственнические персонажи", value: "108" },
+ { label: "Современность", value: "40" },
+ { label: "Сожительство", value: "482" },
+ { label: "Создание армии", value: "175" },
+ { label: "Создание артефактов", value: "292" },
+ { label: "Создание клана", value: "448" },
+ { label: "Создание королевства", value: "181" },
+ { label: "Создание навыков", value: "236" },
+ { label: "Создание секты", value: "393" },
+ { label: "Солдаты/Военные", value: "71" },
+ { label: "Сон", value: "571" },
+ { label: "Состоятельные персонажи", value: "67" },
+ { label: "Социальная иерархия на основе силы", value: "137" },
+ { label: "Социальные изгои", value: "480" },
+ { label: "Спасение мира", value: "597" },
+ { label: "Специальные способности", value: "54" },
+ { label: "Спокойный главный герой", value: "32" },
+ { label: "Справедливый главный герой", value: "702" },
+ { label: "Средневековье", value: "184" },
+ { label: "Ссорящаяся пара", value: "293" },
+ { label: "Сталкеры", value: "689" },
+ { label: "Старение", value: "190" },
+ { label: "Стоические персонажи", value: "444" },
+ { label: "Стокгольмский синдром", value: "643" },
+ { label: "Стратег", value: "425" },
+ { label: "Стратегические битвы", value: "160" },
+ { label: "Стратегия", value: "1038" },
+ { label: "Стрелки", value: "458" },
+ { label: "Стрельба из лука", value: "383" },
+ { label: "Студенческий совет", value: "490" },
+ { label: "Судьба", value: "271" },
+ { label: "Суккубы", value: "484" },
+ { label: "Супер герои", value: "1039" },
+ { label: "Суровая подготовка", value: "261" },
+ { label: "Таинственная болезнь", value: "74" },
+ { label: "Таинственное прошлое", value: "263" },
+ { label: "Тайная личность", value: "310" },
+ { label: "Тайные отношения", value: "812" },
+ { label: "Танцоры", value: "840" },
+ { label: "Телохранители", value: "452" },
+ { label: "Тентакли", value: "693" },
+ { label: "Террористы", value: "515" },
+ { label: "Технологический разрыв", value: "621" },
+ { label: "Тихие персонажи", value: "546" },
+ { label: "Толстый главный герой", value: "299" },
+ { label: "Торговцы", value: "416" },
+ { label: "Травля/Буллинг", value: "89" },
+ { label: "Травник", value: "708" },
+ { label: "Трагическое прошлое", value: "164" },
+ { label: "Трансплантация воспоминаний", value: "367" },
+ { label: "Трап (Путаница с гендером персонажа)", value: "582" },
+ { label: "Трудолюбивый главный герой", value: "37" },
+ { label: "Тюрьма", value: "479" },
+ { label: "Убийства", value: "84" },
+ { label: "Убийцы", value: "248" },
+ { label: "Убийцы драконов", value: "606" },
+ { label: "Уверенный главный герой", value: "270" },
+ { label: "Удачливый главный герой", value: "402" },
+ { label: "Укротитель монстров", value: "337" },
+ { label: "Умения из прошлой жизни", value: "280" },
+ { label: "Умная пара", value: "493" },
+ { label: "Умный главный герой", value: "33" },
+ { label: "Уникальная техника Культивации", value: "254" },
+ { label: "Уникальное оружие", value: "340" },
+ { label: "Управление бизнесом", value: "315" },
+ { label: "Управление временем", value: "167" },
+ { label: "Управление кровью", value: "764" },
+ { label: "Упрямый главный герой", value: "672" },
+ { label: "Уродливый главный герой", value: "803" },
+ { label: "Ускоренный рост", value: "300" },
+ { label: "Усыновленные дети", value: "481" },
+ { label: "Усыновленный главный герой", value: "412" },
+ { label: "Уход за детьми", value: "398" },
+ { label: "Учителя", value: "345" },
+ { label: "Фамильяры", value: "541" },
+ { label: "Фанатизм", value: "613" },
+ { label: "Фантастические существа", value: "322" },
+ { label: "Фанфикшн", value: "388" },
+ { label: "Фармацевт", value: "715" },
+ { label: "Фарминг", value: "379" },
+ { label: "Феи", value: "210" },
+ { label: "Фелляция", value: "584" },
+ { label: "Фениксы", value: "374" },
+ { label: "Фетиш груди", value: "499" },
+ { label: "Философия", value: "87" },
+ { label: "Фильмы", value: "403" },
+ { label: "Флэшбэки", value: "528" },
+ { label: "Фобии", value: "100" },
+ { label: "Фольклор", value: "467" },
+ { label: "Футанари", value: "568" },
+ { label: "Футуристический сеттинг", value: "382" },
+ { label: "Фэнтези мир", value: "126" },
+ { label: "Хакеры", value: "399" },
+ { label: "Харизматический герой", value: "391" },
+ { label: "Хикикомори/Затворники", value: "462" },
+ { label: "Хитроумный главный герой", value: "105" },
+ { label: "Хозяин подземелий", value: "557" },
+ { label: "Холодный главный герой", value: "259" },
+ { label: "Хорошие отношения с семьей", value: "506" },
+ { label: "Хранители могил", value: "68" },
+ { label: "Целители", value: "389" },
+ { label: "Цзянши", value: "735" },
+ { label: "Цундэрэ", value: "445" },
+ { label: "Чаты", value: "580" },
+ { label: "Человеческое оружие", value: "521" },
+ { label: "Честный главный герой", value: "240" },
+ { label: "Читы", value: "238" },
+ { label: "Шантаж", value: "526" },
+ { label: "Шеф-повар", value: "239" },
+ { label: "Шикигами", value: "543" },
+ { label: "Школа только для девочек", value: "633" },
+ { label: "Шота", value: "514" },
+ { label: "Шоу-бизнес", value: "407" },
+ { label: "Шпионы", value: "563" },
+ { label: "Эволюция", value: "196" },
+ { label: "Эгоистичный главный герой", value: "539" },
+ { label: "Эйдетическая память", value: "392" },
+ { label: "Экзорсизм", value: "504" },
+ { label: "Экономика", value: "492" },
+ { label: "Эксгибиционизм", value: "639" },
+ { label: "Эксперименты с людьми", value: "129" },
+ { label: "Элементальная магия", value: "395" },
+ { label: "Эльфы", value: "172" },
+ { label: "Эмоционально слабый главный герой", value: "816" },
+ { label: "Эпизодический", value: "612" },
+ { label: "Юный любовный интерес", value: "446" },
+ { label: "Яды", value: "410" },
+ { label: "Языкастые персонажи", value: "406" },
+ { label: "Языковой барьер", value: "59" },
+ { label: "Яндере", value: "208" },
+ { label: "Японские силы самообороны", value: "559" },
+ { label: "Ярко выраженная романтическая линия", value: "272" },
+ { label: "Abusive Characters", value: "625" },
+ { label: "Adapted to Visual Novel", value: "1046" },
+ { label: "Adopted-lead", value: "886" },
+ { label: "Adultery", value: "866" },
+ { label: "Affair", value: "645" },
+ { label: "Age-gap", value: "923" },
+ { label: "Almost-human-lead", value: "975" },
+ { label: "An*l", value: "780" },
+ { label: "Androgynous-male-lead", value: "1002" },
+ { label: "Anti-hero-lead", value: "976" },
+ { label: "Apathetic-lead", value: "967" },
+ { label: "Arms Dealers", value: "839" },
+ { label: "Army-commander", value: "1003" },
+ { label: "Artifact-refining", value: "924" },
+ { label: "Autism", value: "855" },
+ { label: "Awkward Protagonist", value: "669" },
+ { label: "Awkward-lead", value: "892" },
+ { label: "Bestiality", value: "796" },
+ { label: "Big-breasts", value: "908" },
+ { label: "Birth-of-a-nation", value: "1004" },
+ { label: "Bisexual-lead", value: "1027" },
+ { label: "Body-refining", value: "947" },
+ { label: "Body-swap/s", value: "1036" },
+ { label: "Boss-subordinate-relationship", value: "876" },
+ { label: "Bride-kidnapping", value: "948" },
+ { label: "Caring-lead", value: "879" },
+ { label: "Cautious-lead", value: "1032" },
+ { label: "Changed-man", value: "925" },
+ { label: "Charismatic-lead", value: "1005" },
+ { label: "Child-lead", value: "936" },
+ { label: "Clever-lead", value: "880" },
+ { label: "Clumsy Love Interests", value: "815" },
+ { label: "Cold Love Interests", value: "651" },
+ { label: "Coming of Age", value: "860" },
+ { label: "Confident-lead", value: "894" },
+ { label: "Confident-male-lead", value: "951" },
+ { label: "Confinement", value: "767" },
+ { label: "Conflicting Loyalties", value: "793" },
+ { label: "Couple Growth", value: "690" },
+ { label: "Court Official", value: "863" },
+ { label: "Cowardly Protagonist", value: "703" },
+ { label: "Cowardly-lead", value: "1000" },
+ { label: "Cross-dressing", value: "250" },
+ { label: "Cunnilingus", value: "867" },
+ { label: "Cunning-lead", value: "952" },
+ { label: "Cunning-male-lead", value: "953" },
+ { label: "Curious Protagonist", value: "849" },
+ { label: "Cute-lead", value: "887" },
+ { label: "Dense-lead", value: "868" },
+ { label: "Determined-lead", value: "972" },
+ { label: "Developing-technology", value: "1006" },
+ { label: "Devil/s", value: "1007" },
+ { label: "Different Social Status", value: "758" },
+ { label: "Disfigurement", value: "838" },
+ { label: "Doting Love Interests", value: "665" },
+ { label: "Doting Older Siblings", value: "609" },
+ { label: "Doting Parents", value: "530" },
+ { label: "Dungeon/s-exploring", value: "990" },
+ { label: "Elderly Protagonist", value: "774" },
+ { label: "Enlightenment", value: "729" },
+ { label: "Eunuch", value: "1047" },
+ { label: "Eye Powers", value: "386" },
+ { label: "Family Business", value: "785" },
+ { label: "Famous Parents", value: "790" },
+ { label: "Famous-lead", value: "897" },
+ { label: "Fanfic", value: "942" },
+ { label: "Fated Lovers", value: "797" },
+ { label: "Fellatio", value: "870" },
+ { label: "Female-lead", value: "888" },
+ { label: "First-time-intercourse", value: "871" },
+ { label: "Fleet Battles", value: "836" },
+ { label: "Forced Living Arrangements", value: "808" },
+ { label: "Forced Marriage", value: "835" },
+ { label: "Former Hero", value: "752" },
+ { label: "Fujoshi", value: "1045" },
+ { label: "Galge", value: "848" },
+ { label: "Gambling", value: "1031" },
+ { label: "Gamelit", value: "994" },
+ { label: "Genderless-lead", value: "1008" },
+ { label: "Glasses-wearing-lead", value: "995" },
+ { label: "Guardian Relationship", value: "197" },
+ { label: "H*ndjob", value: "629" },
+ { label: "Half-human-lead", value: "956" },
+ { label: "Hard-working-lead", value: "957" },
+ { label: "Hard-working-male-lead", value: "958" },
+ { label: "Hard-working-protagonist/s", value: "1030" },
+ { label: "Harem-seeking-lead", value: "929" },
+ { label: "Harem-subtext", value: "909" },
+ { label: "Helpful Protagonist", value: "760" },
+ { label: "Helpful-lead", value: "882" },
+ { label: "Hidden-gem", value: "998" },
+ { label: "High-fantasy", value: "991" },
+ { label: "Human-becomes-demon/monster", value: "1009" },
+ { label: "Human-nonhuman-relationship", value: "914" },
+ { label: "Humanoid-lead", value: "915" },
+ { label: "Imperial Harem", value: "805" },
+ { label: "Incubus", value: "1049" },
+ { label: "Insects", value: "831" },
+ { label: "Interspatial-storage", value: "959" },
+ { label: "Kind Love Interests", value: "757" },
+ { label: "Large-number-of-skills", value: "1010" },
+ { label: "Legendary-hero", value: "1011" },
+ { label: "Litrpg", value: "977" },
+ { label: "Love Rivals", value: "788" },
+ { label: "Lovers Reunited", value: "853" },
+ { label: "Low-fantasy", value: "1037" },
+ { label: "Master-disciple-relationship", value: "899" },
+ { label: "Matriarchy", value: "807" },
+ { label: "Mature-lead", value: "900" },
+ { label: "Mind Break", value: "862" },
+ { label: "Mismatched Couple", value: "695" },
+ { label: "Mob Protagonist", value: "648" },
+ { label: "Mob-lead", value: "902" },
+ { label: "Modern", value: "988" },
+ { label: "Monster-pov", value: "1012" },
+ { label: "Mpreg", value: "856" },
+ { label: "Multiple-povs", value: "1013" },
+ { label: "Mystery Solving", value: "710" },
+ { label: "Naive-lead", value: "1014" },
+ { label: "Near-death-experience", value: "996" },
+ { label: "Neet", value: "495" },
+ { label: "Nightmares", value: "833" },
+ { label: "Nobility", value: "1015" },
+ { label: "Non-human-lead", value: "978" },
+ { label: "Non-humanoid-lead", value: "1016" },
+ { label: "Not-so-secret-identity", value: "979" },
+ { label: "Omegaverse", value: "857" },
+ { label: "Online-game", value: "910" },
+ { label: "Online-gaming", value: "911" },
+ { label: "Outdoor Interc**rse", value: "847" },
+ { label: "Outdoor-intercourse", value: "903" },
+ { label: "Overprotective Siblings", value: "610" },
+ { label: "Part-Time Job", value: "865" },
+ { label: "Past Trauma", value: "726" },
+ { label: "Past-memories", value: "1017" },
+ { label: "Persistent Love Interests", value: "714" },
+ { label: "Perverted-lead", value: "932" },
+ { label: "Photography", value: "798" },
+ { label: "Pill Based Cultivation", value: "279" },
+ { label: "Pill Concocting", value: "245" },
+ { label: "Pilots", value: "820" },
+ { label: "Playboys", value: "795" },
+ { label: "Playful-lead", value: "989" },
+ { label: "Polyandry", value: "811" },
+ { label: "Portal-fantasy-/-isekai", value: "992" },
+ { label: "Pragmatic-lead", value: "884" },
+ { label: "Profanity", value: "980" },
+ { label: "Protagonist-loyal-to-love-interest", value: "905" },
+ { label: "R-15 (Японское возрастное ограничение)", value: "230" },
+ { label: "Rebellion", value: "834" },
+ { label: "Reincarnated in a Game World", value: "804" },
+ { label: "Reluctant Protagonist", value: "696" },
+ { label: "Reverse R*pe", value: "776" },
+ { label: "Reversible Couple", value: "854" },
+ { label: "Ruling-class", value: "943" },
+ { label: "S*x Friends", value: "750" },
+ { label: "S*xual Cultivation Technique", value: "823" },
+ { label: "Salaryman", value: "1035" },
+ { label: "Satire", value: "981" },
+ { label: "Schemes And Conspiracies", value: "745" },
+ { label: "Scientist/s", value: "997" },
+ { label: "Scientists", value: "1029" },
+ { label: "Secret Crush", value: "827" },
+ { label: "Seme Protagonist", value: "1034" },
+ { label: "Seme-lead", value: "1028" },
+ { label: "Sentimental Protagonist", value: "1048" },
+ { label: "Seven-heavenly-virtues", value: "1018" },
+ { label: "Sexual Cultivation Technique", value: "350" },
+ { label: "Sexual-content", value: "982" },
+ { label: "Sexuality", value: "983" },
+ { label: "Sharing A Body", value: "814" },
+ { label: "Shotacon", value: "858" },
+ { label: "Shoujo-Ai Subplot", value: "777" },
+ { label: "Sibling Rivalry", value: "766" },
+ { label: "Sibling's Care", value: "1042" },
+ { label: "Sickly Characters", value: "787" },
+ { label: "Skills", value: "1019" },
+ { label: "Slave-harem", value: "1001" },
+ { label: "Slime", value: "1020" },
+ { label: "Smart-male-lead", value: "963" },
+ { label: "Spirit Users", value: "739" },
+ { label: "Straight Seme", value: "819" },
+ { label: "Straight Uke", value: "818" },
+ { label: "Strength-based-social-hierarchy", value: "974" },
+ { label: "Strong-lead", value: "944" },
+ { label: "Strong-male-lead", value: "964" },
+ { label: "Student-teacher-relationship", value: "1026" },
+ { label: "Suspense", value: "987" },
+ { label: "Sword-and-sorcery", value: "875" },
+ { label: "Threesome", value: "574" },
+ { label: "Transformation Ability", value: "736" },
+ { label: "Traumatising-content", value: "1040" },
+ { label: "Underestimated-lead", value: "919" },
+ { label: "Underestimated-male-lead", value: "966" },
+ { label: "Unique-abilities", value: "1021" },
+ { label: "Unique-skill", value: "1022" },
+ { label: "Unique-skills", value: "1023" },
+ { label: "Unlimited Flow", value: "1044" },
+ { label: "Unrequited Love", value: "806" },
+ { label: "Urban-fantasy", value: "1041" },
+ { label: "Villainess Noble Girls", value: "719" },
+ { label: "Weak-lead", value: "885" },
+ { label: "Web-novel", value: "1024" },
+ ],
+ type: FilterTypes.ExcludableCheckboxGroup,
+ },
+ tags: {
+ label: "Жанры",
+ value: { include: [], exclude: [] },
+ options: [
+ { label: "Боевые искусства", value: "22" },
+ { label: "Гарем", value: "114" },
+ { label: "Гендер бендер", value: "246" },
+ { label: "Дзёсэй", value: "216" },
+ { label: "Для взрослых", value: "115" },
+ { label: "Для взрослых", value: "258" },
+ { label: "Драма", value: "7" },
+ { label: "Исторический", value: "101" },
+ { label: "Комедия", value: "17" },
+ { label: "Лоликон", value: "638" },
+ { label: "Магический реализм", value: "922" },
+ { label: "Меха", value: "24" },
+ { label: "Милитари", value: "12" },
+ { label: "Мистика", value: "2" },
+ { label: "Научная фантастика", value: "13" },
+ { label: "Непристойность", value: "747" },
+ { label: "Повседневность", value: "93" },
+ { label: "Приключение", value: "11" },
+ { label: "Психология", value: "18" },
+ { label: "Романтика", value: "9" },
+ { label: "Сверхъестественное", value: "20" },
+ { label: "Сёдзё", value: "15" },
+ { label: "Сёдзё-ай", value: "23" },
+ { label: "Сёнэн", value: "189" },
+ { label: "Сёнэн-ай", value: "680" },
+ { label: "Спорт", value: "420" },
+ { label: "Сэйнэн", value: "5" },
+ { label: "Сюаньхуа", value: "242" },
+ { label: "Сянься", value: "364" },
+ { label: "Трагедия", value: "19" },
+ { label: "Триллер", value: "3" },
+ { label: "Ужасы", value: "1" },
+ { label: "Уся", value: "720" },
+ { label: "Фэнтези", value: "8" },
+ { label: "Школьная жизнь", value: "21" },
+ { label: "Экшн", value: "14" },
+ { label: "Эччи", value: "327" },
+ { label: "Юри", value: "691" },
+ { label: "Яой", value: "682" },
+ { label: "Eastern fantasy", value: "907" },
+ { label: "Isekai", value: "999" },
+ { label: "Video games", value: "993" },
+ ],
+ type: FilterTypes.ExcludableCheckboxGroup,
+ },
+ } satisfies Filters;
+}
+
+export default new RNBH();
+
+interface responseNovels {
+ id: number;
+ names: Names;
+ rating: number;
+ synopsis: string;
+ url: string;
+ poster: Poster;
+ created_at: number;
+ status: string;
+ user?: User;
+ counts: Counts;
+}
+interface Names {
+ eng?: string;
+ rus?: string;
+ original: string;
+}
+interface Poster {
+ medium: string;
+ small: string;
+ color: string;
+}
+interface User {
+ status?: null;
+ liked: boolean;
+}
+interface Counts {
+ volumes: string;
+ chapters: string;
+}
+
+interface responseNovel {
+ id: number;
+ names: Names;
+ rating: number;
+ year: number;
+ synopsis: string;
+ url: string;
+ posters: Posters;
+ isSpecial: boolean;
+ liked: boolean;
+ authors?: AuthorsEntity[] | null;
+ translators?: TranslatorsEntity[] | null;
+ description: string;
+ status: Status;
+ start_reading_url: string;
+ html: string;
+ tags: Tags;
+}
+interface Posters {
+ big: string;
+ medium: string;
+ small: string;
+ tiny: string;
+ color: string;
+}
+interface AuthorsEntity {
+ name_eng: string;
+ pivot: Pivot;
+}
+interface Pivot {
+ ranobe_id: number;
+ author_id?: number;
+ translator_id?: number;
+}
+interface TranslatorsEntity {
+ name: string;
+ pivot: Pivot;
+}
+interface Status {
+ id: number;
+ title: string;
+}
+interface Tags {
+ events?: GenresOrEntity[] | null;
+ genres?: GenresOrEntity[] | null;
+}
+interface GenresOrEntity {
+ id: number;
+ names: Names;
+ url: string;
+ title: string;
+ description?: string | null;
+}
+
+interface responseChapters {
+ marked_chapters_ids?: null[] | null;
+ volumes?: VolumesEntity[] | null;
+}
+interface VolumesEntity {
+ id: number;
+ num: number;
+ name: string;
+ status: Status;
+ chapters?: ChaptersEntity[] | null;
+}
+interface Status {
+ id: number;
+ name: string;
+}
+interface ChaptersEntity {
+ id: number;
+ name: string;
+ num: number;
+ url: string;
+ is_new: boolean;
+ has_images: boolean;
+ changed_at: string;
+ comments_count: string;
+}
+
+interface responseSearch {
+ meta: Meta;
+ collections?: DataEntity[] | null;
+ data?: DataEntity[] | null;
+}
+interface Meta {
+ key: string;
+ title: string;
+}
+interface DataEntity {
+ id: number;
+ names?: Names | null;
+ description?: string | null;
+ url: string;
+ image?: string | null;
+ name?: string | null;
+ level?: number | null;
+ evolution_scheme?: null;
+ roles?: null[] | null;
+ avatar?: Avatar | null;
+ has_plus?: boolean | null;
+}
+interface Avatar {
+ big: string;
+ color: string;
+ thumb: string;
+ is_default: boolean;
+}
diff --git a/plugins/russian/ranobelib.ts b/plugins/russian/ranobelib.ts
index d566916..e64374e 100644
--- a/plugins/russian/ranobelib.ts
+++ b/plugins/russian/ranobelib.ts
@@ -1,512 +1,484 @@
-import { Plugin } from "@typings/plugin";
-import { FilterTypes, Filters } from "@libs/filterInputs";
-import { fetchApi, fetchFile } from "@libs/fetch";
-import { NovelStatus } from "@libs/novelStatus";
-import { load as parseHTML } from "cheerio";
-import dayjs from "dayjs";
-
-class RLIB implements Plugin.PluginBase {
- id = "RLIB";
- name = "RanobeLib";
- site = "https://ranobelib.me";
- version = "1.0.0";
- icon = "src/ru/ranobelib/icon.png";
- ui: string | number | undefined = undefined;
-
-
- async popularNovels(
- pageNo: number,
- {
- showLatestNovels,
- filters,
- }: Plugin.PopularNovelsOptions,
- ): Promise {
- let url = `${this.site}/manga-list?sort=`;
- url += showLatestNovels
- ? "last_chapter_at"
- : filters?.sort?.value || "rate";
- url += "&dir=" + (filters?.order?.value || "desc");
-
- if (filters.type?.value?.length) {
- url += filters.type.value.map((i) => "&types[]=" + i).join("");
- }
-
- if (filters.format?.value?.include?.length) {
- url += filters.format.value.include
- .map((i) => "&format[include][]=" + i).join("");
- }
-
- if (filters.format?.value?.exclude?.length) {
- url += filters.format.value.exclude
- .map((i) => "&format[exclude][]=" + i).join("");
- }
-
- if (filters.status?.value?.length) {
- url += filters.status.value.map((i) => "&status[]=" + i).join("");
- }
-
- if (filters.statuss?.value?.length) {
- url += filters.statuss.value.map((i) => "&manga_status[]=" + i).join("");
- }
-
- if (filters.genres?.value?.include?.length) {
- url += filters.genres.value.include
- .map((i) => "&genres[include][]=" + i).join("");
- }
-
- if (filters.genres?.value?.exclude?.length) {
- url += filters.genres.value.exclude
- .map((i) => "&genres[exclude][]=" + i).join("");
- }
-
- if (filters.tags?.value?.include?.length) {
- url += filters.tags.value.include
- .map((i) => "&tags[include][]=" + i).join("");
- }
-
- if (filters.tags?.value?.exclude?.length) {
- url += filters.tags.value.exclude
- .map((i) => "&tags[exclude][]=" + i).join("");
- }
-
- url += "&page=" + pageNo;
-
- const result = await fetchApi(url);
- const body = await result.text();
-
- const loadedCheerio = parseHTML(body);
- this.ui = loadedCheerio("a.header-right-menu__item")
- .attr("href")
- ?.replace?.(/[^0-9]/g, "");
-
- const novels: Plugin.NovelItem[] = [];
- loadedCheerio(".media-card-wrap").each(function () {
- const name = loadedCheerio(this).find(".media-card__title").text();
- const cover = loadedCheerio(this).find("a.media-card").attr("data-src");
- const url = loadedCheerio(this).find("a.media-card").attr("href");
- if (!url) return;
- novels.push({ name, cover, url });
- });
-
- return novels;
- }
-
- async parseNovelAndChapters(novelUrl: string): Promise {
- const result = await fetchApi(novelUrl);
- const body = await result.text();
-
- const loadedCheerio = parseHTML(body);
-
- const novel: Plugin.SourceNovel = {
- url: novelUrl,
- };
-
- novel.name = loadedCheerio(".media-name__main").text().trim();
-
- novel.cover = loadedCheerio(".media-sidebar__cover img").attr("src");
-
- novel.summary = loadedCheerio(".media-description__text").text().trim();
-
- novel.genres = loadedCheerio('div[class="media-tags"]')
- .text()
- .trim()
- .replace(/[\n\r]+/g, ", ")
- .replace(/ /g, "");
-
- loadedCheerio(
- 'div[class="media-info-list paper"] > [class="media-info-list__item"]',
- ).each(function () {
- let name = loadedCheerio(this)
- .find('div[class="media-info-list__title"]')
- .text();
-
- if (name === "Статус перевода") {
- novel.status =
- loadedCheerio(this).find("div:nth-child(2)").text().trim() ===
- "Продолжается"
- ? NovelStatus.Ongoing
- : NovelStatus.Completed;
- } else if (name === "Автор") {
- novel.author = loadedCheerio(this)
- .find("div:nth-child(2)")
- .text()
- .trim();
- }
- });
-
- const chapters: Plugin.ChapterItem[] = [];
-
- let chaptersRaw: any = body.match(
- /window.__DATA__ = [\s\S]*?window._SITE_COLOR_/gm,
- );
-
- chaptersRaw = chaptersRaw?.[0]
- ?.replace("window.__DATA__ = ", "")
- ?.replace("window._SITE_COLOR_", "")
- ?.trim()
- ?.slice(0, -1);
-
- let chaptersJson: responseBook = JSON.parse(chaptersRaw);
- this.ui = chaptersJson?.user?.id;
-
- chaptersJson.chapters?.list?.forEach((chapter) =>
- chapters.push({
- name: `Том ${chapter.chapter_volume} Глава ${chapter.chapter_number} ${chapter.chapter_name}`?.trim(),
- releaseTime: dayjs(chapter.chapter_created_at).format("LLL"),
- url:
- `${this.site}/${chaptersJson.manga.slug}/v${chapter.chapter_volume}/c${chapter.chapter_number}?bid=` +
- (chapter?.branch_id || ""),
- }),
- );
-
- novel.chapters = chapters.reverse();
- return novel;
- }
-
- async parseChapter(chapterUrl: string): Promise {
- const result = await fetchApi(
- chapterUrl + (this.ui ? "&ui=" + this.ui : ""),
- );
- const body = await result.text();
-
- const loadedCheerio = parseHTML(body);
-
- const baseUrl = this.site;
- loadedCheerio(".reader-container img").each(function () {
- const src =
- loadedCheerio(this).attr("data-src") || loadedCheerio(this).attr("src");
- if (!src?.startsWith("http")) {
- loadedCheerio(this).attr("src", baseUrl + src);
- } else {
- loadedCheerio(this).attr("src", src);
- }
- loadedCheerio(this).removeAttr("data-src");
- });
-
- const chapterText = loadedCheerio(".reader-container").html();
-
- return chapterText || "";
- }
-
- async searchNovels(
- searchTerm: string,
- //pageNo: number | undefined = 1,
- ): Promise {
- const result = await fetchApi(
- `${this.site}/search?q=${searchTerm}&type=manga`,
- );
- const body = (await result.json()) as Manga[];
- const novels: Plugin.NovelItem[] = [];
-
- body.forEach((novel) =>
- novels.push({
- name: novel?.rus_name || novel.name,
- cover: novel?.coverImage,
- url: novel?.href || this.site + "/" + novel.slug,
- }),
- );
-
- return novels;
- }
-
- fetchImage = fetchFile;
-
- filters = {
- sort: {
- label: "Сортировка",
- value: "",
- options: [
- { label: "Рейтинг", value: "rate" },
- { label: "Имя", value: "name" },
- { label: "Просмотры", value: "views" },
- { label: "Дате добавления", value: "created_at" },
- { label: "Дате обновления", value: "last_chapter_at" },
- { label: "Количество глав", value: "chap_count" },
- ],
- type: FilterTypes.Picker,
- },
- order: {
- label: "Порядок",
- value: "",
- options: [
- { label: "По убыванию", value: "desc" },
- { label: "По возрастанию", value: "asc" },
- ],
- type: FilterTypes.Picker,
- },
- type: {
- label: "Тип",
- value: [],
- options: [
- { label: "Авторский", value: "14" },
- { label: "Английский", value: "13" },
- { label: "Китай", value: "12" },
- { label: "Корея", value: "11" },
- { label: "Фанфик", value: "15" },
- { label: "Япония", value: "10" },
- ],
- type: FilterTypes.CheckboxGroup,
- },
- format: {
- label: "Формат выпуска",
- value: { include: [], exclude: [] },
- options: [
- { label: "4-кома (Ёнкома)", value: "1" },
- { label: "В цвете", value: "4" },
- { label: "Веб", value: "6" },
- { label: "Вебтун", value: "7" },
- { label: "Додзинси", value: "3" },
- { label: "Сборник", value: "2" },
- { label: "Сингл", value: "5" },
- ],
- type: FilterTypes.ExcludableCheckboxGroup,
- },
- status: {
- label: "Статус перевода",
- value: [],
- options: [
- { label: "Продолжается", value: "1" },
- { label: "Завершен", value: "2" },
- { label: "Заморожен", value: "3" },
- { label: "Заброшен", value: "4" },
- ],
- type: FilterTypes.CheckboxGroup,
- },
- statuss: {
- label: "Статус тайтла",
- value: [],
- options: [
- { label: "Онгоинг", value: "1" },
- { label: "Завершён", value: "2" },
- { label: "Анонс", value: "3" },
- { label: "Приостановлен", value: "4" },
- { label: "Выпуск прекращён", value: "5" },
- ],
- type: FilterTypes.CheckboxGroup,
- },
- genres: {
- label: "Жанры",
- value: { include: [], exclude: [] },
- options: [
- { label: "Арт", value: "32" },
- { label: "Безумие", value: "91" },
- { label: "Боевик", value: "34" },
- { label: "Боевые искусства", value: "35" },
- { label: "Вампиры", value: "36" },
- { label: "Военное", value: "89" },
- { label: "Гарем", value: "37" },
- { label: "Гендерная интрига", value: "38" },
- { label: "Героическое фэнтези", value: "39" },
- { label: "Демоны", value: "81" },
- { label: "Детектив", value: "40" },
- { label: "Детское", value: "88" },
- { label: "Дзёсэй", value: "41" },
- { label: "Драма", value: "43" },
- { label: "Игра", value: "44" },
- { label: "Исекай", value: "79" },
- { label: "История", value: "45" },
- { label: "Киберпанк", value: "46" },
- { label: "Кодомо", value: "76" },
- { label: "Комедия", value: "47" },
- { label: "Космос", value: "83" },
- { label: "Магия", value: "85" },
- { label: "Махо-сёдзё", value: "48" },
- { label: "Машины", value: "90" },
- { label: "Меха", value: "49" },
- { label: "Мистика", value: "50" },
- { label: "Музыка", value: "80" },
- { label: "Научная фантастика", value: "51" },
- { label: "Омегаверс", value: "77" },
- { label: "Пародия", value: "86" },
- { label: "Повседневность", value: "52" },
- { label: "Полиция", value: "82" },
- { label: "Постапокалиптика", value: "53" },
- { label: "Приключения", value: "54" },
- { label: "Психология", value: "55" },
- { label: "Романтика", value: "56" },
- { label: "Самурайский боевик", value: "57" },
- { label: "Сверхъестественное", value: "58" },
- { label: "Сёдзё", value: "59" },
- { label: "Сёдзё-ай", value: "60" },
- { label: "Сёнэн", value: "61" },
- { label: "Сёнэн-ай", value: "62" },
- { label: "Спорт", value: "63" },
- { label: "Супер сила", value: "87" },
- { label: "Сэйнэн", value: "64" },
- { label: "Трагедия", value: "65" },
- { label: "Триллер", value: "66" },
- { label: "Ужасы", value: "67" },
- { label: "Фантастика", value: "68" },
- { label: "Фэнтези", value: "69" },
- { label: "Школа", value: "70" },
- { label: "Эротика", value: "71" },
- { label: "Этти", value: "72" },
- { label: "Юри", value: "73" },
- { label: "Яой", value: "74" },
- ],
- type: FilterTypes.ExcludableCheckboxGroup,
- },
- tags: {
- label: "Теги",
- value: { include: [], exclude: [] },
- options: [
- { label: "Авантюристы", value: "328" },
- { label: "Антигерой", value: "176" },
- { label: "Бессмертные", value: "333" },
- { label: "Боги", value: "218" },
- { label: "Борьба за власть", value: "309" },
- { label: "Брат и сестра", value: "360" },
- { label: "Ведьма", value: "339" },
- { label: "Видеоигры", value: "204" },
- { label: "Виртуальная реальность", value: "214" },
- { label: "Владыка демонов", value: "349" },
- { label: "Военные", value: "198" },
- { label: "Воспоминания из другого мира", value: "310" },
- { label: "Выживание", value: "212" },
- { label: "ГГ женщина", value: "294" },
- { label: "ГГ имба", value: "292" },
- { label: "ГГ мужчина", value: "295" },
- { label: "ГГ не ояш", value: "325" },
- { label: "ГГ не человек", value: "331" },
- { label: "ГГ ояш", value: "326" },
- { label: "Главный герой бог", value: "324" },
- { label: "Глупый ГГ", value: "298" },
- { label: "Горничные", value: "171" },
- { label: "Гуро", value: "306" },
- { label: "Гяру", value: "197" },
- { label: "Демоны", value: "157" },
- { label: "Драконы", value: "313" },
- { label: "Древний мир", value: "317" },
- { label: "Зверолюди", value: "163" },
- { label: "Зомби", value: "155" },
- { label: "Исторические фигуры", value: "323" },
- { label: "Кулинария", value: "158" },
- { label: "Культивация", value: "161" },
- { label: "ЛГБТ", value: "344" },
- { label: "ЛитРПГ", value: "319" },
- { label: "Лоли", value: "206" },
- { label: "Магия", value: "170" },
- { label: "Машинный перевод", value: "345" },
- { label: "Медицина", value: "159" },
- { label: "Межгалактическая война", value: "330" },
- { label: "Монстр Девушки", value: "207" },
- { label: "Монстры", value: "208" },
- { label: "Мрачный мир", value: "316" },
- { label: "Музыка", value: "358" },
- { label: "Музыка", value: "209" },
- { label: "Ниндзя", value: "199" },
- { label: "Обратный Гарем", value: "210" },
- { label: "Офисные Работники", value: "200" },
- { label: "Пираты", value: "341" },
- { label: "Подземелья", value: "314" },
- { label: "Политика", value: "311" },
- { label: "Полиция", value: "201" },
- { label: "Преступники / Криминал", value: "205" },
- { label: "Призраки / Духи", value: "196" },
- { label: "Призыватели", value: "329" },
- { label: "Прыжки между мирами", value: "321" },
- { label: "Путешествие в другой мир", value: "318" },
- { label: "Путешествие во времени", value: "213" },
- { label: "Рабы", value: "355" },
- { label: "Ранги силы", value: "312" },
- { label: "Реинкарнация", value: "154" },
- { label: "Самураи", value: "202" },
- { label: "Скрытие личности", value: "315" },
- { label: "Средневековье", value: "174" },
- { label: "Традиционные игры", value: "203" },
- { label: "Умный ГГ", value: "303" },
- { label: "Характерный рост", value: "332" },
- { label: "Хикикомори", value: "167" },
- { label: "Эволюция", value: "322" },
- { label: "Элементы РПГ", value: "327" },
- { label: "Эльфы", value: "217" },
- { label: "Якудза", value: "165" },
- ],
- type: FilterTypes.ExcludableCheckboxGroup,
- },
- } satisfies Filters;
-}
-
-export default new RLIB();
-
-interface responseBook {
- hasStickyPermission: boolean;
- bookmark?: null;
- auth: boolean;
- comments_version: string;
- manga: Manga;
- chapters: Chapters;
- user?: User;
-}
-interface Manga {
- id: number;
- name: string;
- rusName?: string;
- rus_name?: string;
- engName?: string;
- slug: string;
- status: number;
- chapters_count: number;
- altNames?: string[] | null;
- coverImage?: string;
- href?: string;
-}
-interface Chapters {
- list?: ListEntity[] | null;
- teams?: TeamsEntity[] | null;
- branches?: BranchesEntity[] | null;
- is_paid?: null[] | null;
-}
-interface ListEntity {
- chapter_id: number;
- chapter_slug: string;
- chapter_name: string;
- chapter_number: string;
- chapter_volume: number;
- chapter_moderated: number;
- chapter_user_id: number;
- chapter_expired_at: string;
- chapter_scanlator_id: number;
- chapter_created_at: string;
- status?: null;
- price: number;
- branch_id: number;
- username: string;
-}
-interface TeamsEntity {
- name: string;
- alt_name: string;
- cover: string;
- slug: string;
- id: number;
- branch_id: number;
- sale: number;
- href: string;
- pivot: Pivot;
-}
-interface Pivot {
- manga_id: number;
- team_id: number;
-}
-interface BranchesEntity {
- id: number;
- manga_id: number;
- name: string;
- teams?: TeamsEntity1[] | null;
- is_subscribed: boolean;
-}
-interface TeamsEntity1 {
- id: number;
- name: string;
- slug: string;
- cover: string;
- branch_id: number;
- is_active: number;
-}
-interface User {
- id: number;
- avatar: string;
- access: boolean;
- isAdmin: boolean;
- paid: boolean;
-}
+import { Plugin } from "@typings/plugin";
+import { FilterTypes, Filters } from "@libs/filterInputs";
+import { fetchApi, fetchFile } from "@libs/fetch";
+import { NovelStatus } from "@libs/novelStatus";
+import { load as parseHTML } from "cheerio";
+import dayjs from "dayjs";
+
+const statusKey = [
+ NovelStatus.Ongoing,
+ NovelStatus.Completed,
+ NovelStatus.OnHiatus,
+ NovelStatus.Cancelled,
+];
+
+class RLIB implements Plugin.PluginBase {
+ id = "RLIB";
+ name = "RanobeLib";
+ site = "https://ranobelib.me";
+ version = "1.0.0";
+ icon = "src/ru/ranobelib/icon.png";
+ ui: string | undefined = undefined;
+
+ async popularNovels(
+ pageNo: number,
+ { showLatestNovels, filters }: Plugin.PopularNovelsOptions,
+ ): Promise {
+ let url = this.site + "/manga-list?sort=";
+ url += showLatestNovels ? "last_chapter_at" : filters?.sort?.value || "rate";
+ url += "&dir=" + (filters?.order?.value || "desc");
+
+ Object.entries(filters || {}).forEach(([type, { value }]: any) => {
+ if (value instanceof Array && value.length) {
+ url += "&" + type + "[]=" + value.join("&" + type + "[]=");
+ }
+ if (value?.include instanceof Array && value.include.length) {
+ url += "&" + type + "[include][]=" +
+ value.include.join("&" + type + "[include][]=");
+ }
+ if (value?.exclude instanceof Array && value.exclude.length) {
+ url += "&" + type + "[exclude][]=" +
+ value.exclude.join("&" + type + "[exclude][]=");
+ }
+ });
+
+ url += "&page=" + pageNo;
+
+ const result = await fetchApi(url).then((res) => res.text());
+ const loadedCheerio = parseHTML(result);
+ this.ui = loadedCheerio("a.header-right-menu__item")
+ .attr("href")
+ ?.replace?.(/[^0-9]/g, "");
+
+ const novels: Plugin.NovelItem[] = [];
+ loadedCheerio(".media-card-wrap").each(function () {
+ const name = loadedCheerio(this).find(".media-card__title").text();
+ const cover = loadedCheerio(this).find("a.media-card").attr("data-src");
+ const url = loadedCheerio(this).find("a.media-card").attr("href");
+ if (!url) return;
+ novels.push({ name, cover, url });
+ });
+
+ return novels;
+ }
+
+ async parseNovelAndChapters(novelUrl: string): Promise {
+ const body = await fetchApi(novelUrl).then((res) => res.text());
+ const loadedCheerio = parseHTML(body);
+
+ const novel: Plugin.SourceNovel = {
+ url: novelUrl,
+ };
+
+ novel.name = loadedCheerio(".media-name__main").text().trim();
+
+ novel.cover = loadedCheerio(".container_responsive img").attr("src");
+
+ novel.summary = loadedCheerio(".media-description__text").text().trim();
+
+ novel.genres = loadedCheerio('div[class="media-tags"]')
+ .text()
+ .trim()
+ .replace(/[\n\r]+/g, ", ")
+ .replace(/ /g, "");
+
+ loadedCheerio(
+ 'div[class="media-info-list paper"] > [class="media-info-list__item"]',
+ ).each(function () {
+ let name = loadedCheerio(this)
+ .find('div[class="media-info-list__title"]')
+ .text();
+
+ if (name === "Автор") {
+ novel.author = loadedCheerio(this)
+ .find('div[class="media-info-list__value"]')
+ .text()
+ .trim();
+ } else if (name === "Художник") {
+ novel.artist = loadedCheerio(this)
+ .find('div[class="media-info-list__value"]')
+ .text()
+ .trim();
+ }
+ });
+
+ const chapters: Plugin.ChapterItem[] = [];
+
+ let chaptersRaw: any = body.match(
+ /window.__DATA__ = [\s\S]*?window._SITE_COLOR_/gm,
+ );
+
+ chaptersRaw = chaptersRaw?.[0]
+ ?.replace("window.__DATA__ = ", "")
+ ?.replace("window._SITE_COLOR_", "")
+ ?.trim()
+ ?.slice(0, -1);
+
+ const chaptersJson: responseBook = JSON.parse(chaptersRaw);
+ const totalChapters = chaptersJson.chapters.list?.length || 0;
+ novel.status = statusKey[chaptersJson.manga.status - 1] || NovelStatus.Unknown;
+ this.ui = chaptersJson?.user?.id;
+
+ chaptersJson.chapters?.list?.forEach((chapter, chapterIndex) =>
+ chapters.push({
+ name:
+ "Том " + chapter.chapter_volume +
+ " Глава " + chapter.chapter_number +
+ (chapter.chapter_name ? " " + chapter.chapter_name.trim() : ""),
+ url:
+ this.site + "/" + chaptersJson.manga.slug +
+ "/v" + chapter.chapter_volume + "/c" + chapter.chapter_number +
+ "?bid=" + (chapter.branch_id || ""),
+ releaseTime: dayjs(chapter.chapter_created_at).format("LLL"),
+ chapterNumber: totalChapters - chapterIndex,
+ }),
+ );
+
+ novel.chapters = chapters.reverse();
+ return novel;
+ }
+
+ async parseChapter(chapterUrl: string): Promise {
+ const result = await fetchApi(
+ chapterUrl + (this.ui ? "&ui=" + this.ui : ""),
+ ).then((res) => res.text());
+
+ const loadedCheerio = parseHTML(result);
+ loadedCheerio(".reader-container img").each((index, element) => {
+ const src =
+ loadedCheerio(element).attr("data-src") ||
+ loadedCheerio(element).attr("src");
+ if (!src?.startsWith("http")) {
+ loadedCheerio(element).attr("src", this.site + src);
+ } else {
+ loadedCheerio(element).attr("src", src);
+ }
+ loadedCheerio(element).removeAttr("data-src");
+ });
+
+ const chapterText = loadedCheerio(".reader-container").html();
+ return chapterText || "";
+ }
+
+ async searchNovels(
+ searchTerm: string,
+ //pageNo: number | undefined = 1,
+ ): Promise {
+ const result = await fetchApi(
+ `${this.site}/search?q=${searchTerm}&type=manga`,
+ );
+ const body = (await result.json()) as Manga[];
+ const novels: Plugin.NovelItem[] = [];
+
+ body.forEach((novel) =>
+ novels.push({
+ name: novel?.rus_name || novel.name,
+ cover: novel?.coverImage,
+ url: novel?.href || this.site + "/" + novel.slug,
+ }),
+ );
+
+ return novels;
+ }
+
+ fetchImage = fetchFile;
+
+ filters = {
+ sort: {
+ label: "Сортировка",
+ value: "rate",
+ options: [
+ { label: "Рейтинг", value: "rate" },
+ { label: "Имя", value: "name" },
+ { label: "Просмотры", value: "views" },
+ { label: "Дате добавления", value: "created_at" },
+ { label: "Дате обновления", value: "last_chapter_at" },
+ { label: "Количество глав", value: "chap_count" },
+ ],
+ type: FilterTypes.Picker,
+ },
+ order: {
+ label: "Порядок",
+ value: "desc",
+ options: [
+ { label: "По убыванию", value: "desc" },
+ { label: "По возрастанию", value: "asc" },
+ ],
+ type: FilterTypes.Picker,
+ },
+ type: {
+ label: "Тип",
+ value: [],
+ options: [
+ { label: "Авторский", value: "14" },
+ { label: "Английский", value: "13" },
+ { label: "Китай", value: "12" },
+ { label: "Корея", value: "11" },
+ { label: "Фанфик", value: "15" },
+ { label: "Япония", value: "10" },
+ ],
+ type: FilterTypes.CheckboxGroup,
+ },
+ format: {
+ label: "Формат выпуска",
+ value: { include: [], exclude: [] },
+ options: [
+ { label: "4-кома (Ёнкома)", value: "1" },
+ { label: "В цвете", value: "4" },
+ { label: "Веб", value: "6" },
+ { label: "Вебтун", value: "7" },
+ { label: "Додзинси", value: "3" },
+ { label: "Сборник", value: "2" },
+ { label: "Сингл", value: "5" },
+ ],
+ type: FilterTypes.ExcludableCheckboxGroup,
+ },
+ status: {
+ label: "Статус перевода",
+ value: [],
+ options: [
+ { label: "Продолжается", value: "1" },
+ { label: "Завершен", value: "2" },
+ { label: "Заморожен", value: "3" },
+ { label: "Заброшен", value: "4" },
+ ],
+ type: FilterTypes.CheckboxGroup,
+ },
+ manga_status: {
+ label: "Статус тайтла",
+ value: [],
+ options: [
+ { label: "Онгоинг", value: "1" },
+ { label: "Завершён", value: "2" },
+ { label: "Анонс", value: "3" },
+ { label: "Приостановлен", value: "4" },
+ { label: "Выпуск прекращён", value: "5" },
+ ],
+ type: FilterTypes.CheckboxGroup,
+ },
+ genres: {
+ label: "Жанры",
+ value: { include: [], exclude: [] },
+ options: [
+ { label: "Арт", value: "32" },
+ { label: "Безумие", value: "91" },
+ { label: "Боевик", value: "34" },
+ { label: "Боевые искусства", value: "35" },
+ { label: "Вампиры", value: "36" },
+ { label: "Военное", value: "89" },
+ { label: "Гарем", value: "37" },
+ { label: "Гендерная интрига", value: "38" },
+ { label: "Героическое фэнтези", value: "39" },
+ { label: "Демоны", value: "81" },
+ { label: "Детектив", value: "40" },
+ { label: "Детское", value: "88" },
+ { label: "Дзёсэй", value: "41" },
+ { label: "Драма", value: "43" },
+ { label: "Игра", value: "44" },
+ { label: "Исекай", value: "79" },
+ { label: "История", value: "45" },
+ { label: "Киберпанк", value: "46" },
+ { label: "Кодомо", value: "76" },
+ { label: "Комедия", value: "47" },
+ { label: "Космос", value: "83" },
+ { label: "Магия", value: "85" },
+ { label: "Махо-сёдзё", value: "48" },
+ { label: "Машины", value: "90" },
+ { label: "Меха", value: "49" },
+ { label: "Мистика", value: "50" },
+ { label: "Музыка", value: "80" },
+ { label: "Научная фантастика", value: "51" },
+ { label: "Омегаверс", value: "77" },
+ { label: "Пародия", value: "86" },
+ { label: "Повседневность", value: "52" },
+ { label: "Полиция", value: "82" },
+ { label: "Постапокалиптика", value: "53" },
+ { label: "Приключения", value: "54" },
+ { label: "Психология", value: "55" },
+ { label: "Романтика", value: "56" },
+ { label: "Самурайский боевик", value: "57" },
+ { label: "Сверхъестественное", value: "58" },
+ { label: "Сёдзё", value: "59" },
+ { label: "Сёдзё-ай", value: "60" },
+ { label: "Сёнэн", value: "61" },
+ { label: "Сёнэн-ай", value: "62" },
+ { label: "Спорт", value: "63" },
+ { label: "Супер сила", value: "87" },
+ { label: "Сэйнэн", value: "64" },
+ { label: "Трагедия", value: "65" },
+ { label: "Триллер", value: "66" },
+ { label: "Ужасы", value: "67" },
+ { label: "Фантастика", value: "68" },
+ { label: "Фэнтези", value: "69" },
+ { label: "Школа", value: "70" },
+ { label: "Эротика", value: "71" },
+ { label: "Этти", value: "72" },
+ { label: "Юри", value: "73" },
+ { label: "Яой", value: "74" },
+ ],
+ type: FilterTypes.ExcludableCheckboxGroup,
+ },
+ tags: {
+ label: "Теги",
+ value: { include: [], exclude: [] },
+ options: [
+ { label: "Авантюристы", value: "328" },
+ { label: "Антигерой", value: "176" },
+ { label: "Бессмертные", value: "333" },
+ { label: "Боги", value: "218" },
+ { label: "Борьба за власть", value: "309" },
+ { label: "Брат и сестра", value: "360" },
+ { label: "Ведьма", value: "339" },
+ { label: "Видеоигры", value: "204" },
+ { label: "Виртуальная реальность", value: "214" },
+ { label: "Владыка демонов", value: "349" },
+ { label: "Военные", value: "198" },
+ { label: "Воспоминания из другого мира", value: "310" },
+ { label: "Выживание", value: "212" },
+ { label: "ГГ женщина", value: "294" },
+ { label: "ГГ имба", value: "292" },
+ { label: "ГГ мужчина", value: "295" },
+ { label: "ГГ не ояш", value: "325" },
+ { label: "ГГ не человек", value: "331" },
+ { label: "ГГ ояш", value: "326" },
+ { label: "Главный герой бог", value: "324" },
+ { label: "Глупый ГГ", value: "298" },
+ { label: "Горничные", value: "171" },
+ { label: "Гуро", value: "306" },
+ { label: "Гяру", value: "197" },
+ { label: "Демоны", value: "157" },
+ { label: "Драконы", value: "313" },
+ { label: "Древний мир", value: "317" },
+ { label: "Зверолюди", value: "163" },
+ { label: "Зомби", value: "155" },
+ { label: "Исторические фигуры", value: "323" },
+ { label: "Кулинария", value: "158" },
+ { label: "Культивация", value: "161" },
+ { label: "ЛГБТ", value: "344" },
+ { label: "ЛитРПГ", value: "319" },
+ { label: "Лоли", value: "206" },
+ { label: "Магия", value: "170" },
+ { label: "Машинный перевод", value: "345" },
+ { label: "Медицина", value: "159" },
+ { label: "Межгалактическая война", value: "330" },
+ { label: "Монстр Девушки", value: "207" },
+ { label: "Монстры", value: "208" },
+ { label: "Мрачный мир", value: "316" },
+ { label: "Музыка", value: "358" },
+ { label: "Музыка", value: "209" },
+ { label: "Ниндзя", value: "199" },
+ { label: "Обратный Гарем", value: "210" },
+ { label: "Офисные Работники", value: "200" },
+ { label: "Пираты", value: "341" },
+ { label: "Подземелья", value: "314" },
+ { label: "Политика", value: "311" },
+ { label: "Полиция", value: "201" },
+ { label: "Преступники / Криминал", value: "205" },
+ { label: "Призраки / Духи", value: "196" },
+ { label: "Призыватели", value: "329" },
+ { label: "Прыжки между мирами", value: "321" },
+ { label: "Путешествие в другой мир", value: "318" },
+ { label: "Путешествие во времени", value: "213" },
+ { label: "Рабы", value: "355" },
+ { label: "Ранги силы", value: "312" },
+ { label: "Реинкарнация", value: "154" },
+ { label: "Самураи", value: "202" },
+ { label: "Скрытие личности", value: "315" },
+ { label: "Средневековье", value: "174" },
+ { label: "Традиционные игры", value: "203" },
+ { label: "Умный ГГ", value: "303" },
+ { label: "Характерный рост", value: "332" },
+ { label: "Хикикомори", value: "167" },
+ { label: "Эволюция", value: "322" },
+ { label: "Элементы РПГ", value: "327" },
+ { label: "Эльфы", value: "217" },
+ { label: "Якудза", value: "165" },
+ ],
+ type: FilterTypes.ExcludableCheckboxGroup,
+ },
+ } satisfies Filters;
+}
+
+export default new RLIB();
+
+interface responseBook {
+ hasStickyPermission: boolean;
+ bookmark?: null;
+ auth: boolean;
+ comments_version: string;
+ manga: Manga;
+ chapters: Chapters;
+ user?: User;
+}
+interface Manga {
+ id: number;
+ name: string;
+ rusName?: string;
+ rus_name?: string;
+ engName?: string;
+ slug: string;
+ status: number;
+ chapters_count: number;
+ altNames?: string[] | null;
+ coverImage?: string;
+ href?: string;
+}
+interface Chapters {
+ list?: ListEntity[] | null;
+ teams?: TeamsEntity[] | null;
+ branches?: BranchesEntity[] | null;
+ is_paid?: null[] | null;
+}
+interface ListEntity {
+ chapter_id: number;
+ chapter_slug: string;
+ chapter_name: string;
+ chapter_number: string;
+ chapter_volume: number;
+ chapter_moderated: number;
+ chapter_user_id: number;
+ chapter_expired_at: string;
+ chapter_scanlator_id: number;
+ chapter_created_at: string;
+ status?: null;
+ price: number;
+ branch_id?: number;
+ username: string;
+}
+interface TeamsEntity {
+ name: string;
+ alt_name: string;
+ cover: string;
+ slug: string;
+ id: number;
+ branch_id: number;
+ sale: number;
+ href: string;
+ pivot: Pivot;
+}
+interface Pivot {
+ manga_id: number;
+ team_id: number;
+}
+interface BranchesEntity {
+ id: number;
+ manga_id: number;
+ name: string;
+ teams?: TeamsEntity1[] | null;
+ is_subscribed: boolean;
+}
+interface TeamsEntity1 {
+ id: number;
+ name: string;
+ slug: string;
+ cover: string;
+ branch_id: number;
+ is_active: number;
+}
+interface User {
+ id: string;
+ avatar: string;
+ access: boolean;
+ isAdmin: boolean;
+ paid: boolean;
+}
diff --git a/plugins/russian/ranoberf.ts b/plugins/russian/ranoberf.ts
index 3380e94..494ff75 100644
--- a/plugins/russian/ranoberf.ts
+++ b/plugins/russian/ranoberf.ts
@@ -1,408 +1,406 @@
-import { Plugin } from "@typings/plugin";
-import { FilterTypes, Filters } from "@libs/filterInputs";
-import { defaultCover } from "@libs/defaultCover";
-import { fetchApi, fetchFile } from "@libs/fetch";
-import { NovelStatus } from "@libs/novelStatus";
-import { load as parseHTML } from "cheerio";
-import dayjs from "dayjs";
-
-class RNRF implements Plugin.PluginBase {
- id = "RNRF";
- name = "РанобэРФ";
- site = "https://ранобэ.рф";
- version = "1.0.0";
- icon = "src/ru/ranoberf/icon.png";
-
-
- async popularNovels(
- pageNo: number,
- { showLatestNovels, filters }: Plugin.PopularNovelsOptions,
- ): Promise {
- let url = this.site + "/books?order=";
- url += showLatestNovels
- ? "lastPublishedChapter"
- : filters?.sort?.value || "popular";
- url += "&page=" + pageNo;
-
- const result = await fetchApi(url);
- const body = await result.text();
-
- const loadedCheerio = parseHTML(body);
- const jsonRaw = loadedCheerio("#__NEXT_DATA__").html();
- const json: response = JSON.parse(jsonRaw || "{}");
-
- const novels: Plugin.NovelItem[] = [];
- json.props.pageProps?.totalData?.items?.forEach((novel) =>
- novels.push({
- name: novel.title,
- cover: novel?.verticalImage?.url
- ? this.site + novel.verticalImage.url
- : defaultCover,
- url: this.site + "/" + novel.slug,
- }),
- );
-
- return novels;
- }
-
- async parseNovelAndChapters(novelUrl: string): Promise {
- const result = await fetchApi(novelUrl);
- const body = await result.text();
-
- const loadedCheerio = parseHTML(body);
- const jsonRaw = loadedCheerio("#__NEXT_DATA__").html();
- const book = (JSON.parse(jsonRaw || "{}") as response).props.pageProps.book;
-
- const novel: Plugin.SourceNovel = {
- url: novelUrl,
- name: book?.title,
- cover: book?.verticalImage?.url
- ? this.site + book.verticalImage.url
- : defaultCover,
- summary: book?.description,
- author: book?.author || "",
- genres: book?.genres.map((item) => item.title).join(", "),
- status: book?.additionalInfo.includes("Активен")
- ? NovelStatus.Ongoing
- : NovelStatus.Completed,
- };
-
- const chapters: Plugin.ChapterItem[] = [];
-
- book?.chapters?.forEach((chapter) => {
- if (!chapter.isDonate || chapter.isUserPaid) {
- chapters.push({
- name: chapter.title,
- releaseTime: dayjs(chapter.publishedAt).format("LLL"),
- url: this.site + chapter.url,
- });
- }
- });
-
- novel.chapters = chapters.reverse();
- return novel;
- }
-
- async parseChapter(chapterUrl: string): Promise {
- const result = await fetchApi(chapterUrl);
- const body = await result.text();
-
- let loadedCheerio = parseHTML(body);
- const jsonRaw = loadedCheerio("#__NEXT_DATA__").html();
- const json: response = JSON.parse(jsonRaw || "{}");
-
- loadedCheerio = parseHTML(
- json.props.pageProps?.chapter?.content?.text || "",
- );
-
- const baseUrl = this.site;
- loadedCheerio("img").each(function () {
- if (!loadedCheerio(this).attr("src")?.startsWith("http")) {
- const src = loadedCheerio(this).attr("src");
- loadedCheerio(this).attr("src", baseUrl + src);
- }
- });
-
- const chapterText = loadedCheerio.html();
- return chapterText;
- }
-
- async searchNovels(
- searchTerm: string,
- //pageNo: number | undefined = 1,
- ): Promise {
- const url = `${this.site}/v3/books?filter[or][0][title][like]=${searchTerm}&filter[or][1][titleEn][like]=${searchTerm}&filter[or][2][fullTitle][like]=${searchTerm}&filter[status][]=active&filter[status][]=abandoned&filter[status][]=completed&expand=verticalImage`;
- const result = await fetchApi(url);
- const body = (await result.json()) as { items: Item[] };
- const novels: Plugin.NovelItem[] = [];
-
- body.items.forEach((novel) =>
- novels.push({
- name: novel.title,
- cover: novel?.verticalImage?.url
- ? this.site + novel.verticalImage.url
- : defaultCover,
- url: this.site + "/" + novel.slug,
- }),
- );
-
- return novels;
- }
- fetchImage = fetchFile;
-
- filters = {
- sort: {
- label: "Сортировка",
- value: "",
- options: [
- { label: "Рейтинг", value: "popular" },
- { label: "Дате добавления", value: "new" },
- { label: "Дате обновления", value: "lastPublishedChapter" },
- { label: "Законченные", value: "completed" },
- ],
- type: FilterTypes.Picker,
- },
- } satisfies Filters;
-}
-export default new RNRF();
-
-interface response {
- props: Props;
- page: string;
- query: Query;
- buildId: string;
- isFallback: boolean;
- gssp: boolean;
- appGip: boolean;
- dynamicIds?: string[];
-}
-
-interface Props {
- pageProps: PageProps;
- isMobile: boolean;
- theme: string;
- __N_SSP: boolean;
-}
-
-interface PageProps {
- initialReduxState: InitialReduxState;
- book?: PagePropsBook;
- totalData?: TotalData;
- layoutViewCookies?: string;
- displayBanner?: boolean;
- chapter?: PagePropsChapter;
-}
-
-interface PagePropsBook {
- id: number;
- countryId: number;
- creatorId: number;
- lastChapterId: number;
- sourceId: number;
- imgVerticalId: number;
- imgHorizontalId: number;
- imgSquareId: number;
- imageVerticalId: number;
- imageHorizontalId: number;
- title: string;
- titleEn: string;
- fullTitle: string;
- fullTitleEn: string;
- description: string;
- slug: string;
- author: string;
- additionalInfo: string;
- importantInfo: string;
- status: string;
- views: number;
- likes: number;
- dislikes: number;
- intervalSec: number;
- intervalForNextFreeChapterSec: number;
- chapterCost: number;
- chapterPrice: number;
- chapterPriceCollected: number;
- maxSubscriptionChapters: number;
- maxDonateChapters: number;
- isDisplayOnMainPage: boolean;
- withoutSchedule: boolean;
- nextFreeChapterPublishedAt: null;
- createdAt: Date;
- updatedAt: Date;
- userRating: null;
- userBookmark: null;
- country: Country;
- genres: Genre[];
- timer: Timer;
- chapters: ChapterElement[];
- verticalImage: Image;
- horizontalImage: Image;
- squareImage: Image;
-}
-
-interface ChapterElement {
- id: number;
- bookId: number;
- title: string;
- url: string;
- numberChapter: string;
- tom: number | null;
- chapterShortNumber: number | null;
- isDonate: boolean;
- isSponsored: boolean;
- isSubscription: boolean;
- isEdited: boolean;
- publishedAt: Date;
- price: number;
- views: number;
- isUserPaid?: boolean;
-}
-
-interface Country {
- id: number;
- title: string;
- code: string;
-}
-
-interface Genre {
- id: number;
- title: string;
- slug: string;
-}
-
-interface Image {
- id: number;
- alt: string;
- path: string;
- name: string;
- url: string;
-}
-
-interface Timer {
- value: null;
- for: null;
- message: string;
-}
-
-interface PagePropsChapter {
- id: number;
- bookId: number;
- editorId: null;
- translatorId: number;
- parserChapterId: null;
- title: string;
- slug: string;
- status: string;
- tom: null;
- views: number;
- isSponsored: boolean;
- isSubscription: boolean;
- isDonate: boolean;
- isIndexing: boolean;
- publishedAt: Date;
- changeAvailabilityAt: null;
- createdAt: Date;
- updatedAt: Date;
- numberChapter: string;
- price: number;
- content: Content;
- book: ChapterBook;
- userBookmark: null;
- isUserPaid: boolean;
- nextChapter: null;
- previousChapter: PreviousChapter;
- corrections: null;
-}
-
-interface ChapterBook {
- id: number;
- title: string;
- titleEn: string;
- url: string;
-}
-
-interface Content {
- id: number;
- text: string;
- symbolsCount: number;
-}
-
-interface PreviousChapter {
- id: number;
- title: string;
- views: number;
- publishedAt: Date;
- url: string;
- numberChapter: string;
-}
-
-interface InitialReduxState {
- data?: Data;
- auth: Auth;
- banners?: Banners;
- corrections?: Corrections;
- readerSettings?: ReaderSettings;
-}
-
-interface Auth {
- isAuth: boolean;
- user: null;
-}
-
-interface Banners {
- displaySale: boolean;
-}
-
-interface Corrections {
- items: null;
- data: null;
-}
-
-interface Data {
- bookPage: BookPage | null;
- chapterPage: ChapterPage | null;
-}
-
-interface BookPage {
- bookId: number;
- bookmark: null;
-}
-
-interface ChapterPage {
- chapterId: number;
- bookId: number;
- bookmark: null;
-}
-
-interface ReaderSettings {
- fontSize: number;
- lineHeight: number;
- textIndent: number;
- sidebarHide: number;
- textAlign: string;
-}
-
-interface TotalData {
- items: Item[];
- _links: Links;
- pagesData: PagesData;
-}
-
-interface Links {
- self: First;
- first: First;
- last: First;
- next: First;
-}
-
-interface First {
- href: string;
-}
-
-interface Item {
- id: number;
- title: string;
- description: string;
- slug: string;
- url: string;
- status: string;
- dislikes: number;
- likes: number;
- userRating: null;
- lastChapter: ChapterElement;
- verticalImage: Image;
- horizontalImage: Image;
- squareImage: Image;
-}
-
-interface PagesData {
- totalCount: number;
- pageCount: number;
- currentPage: number;
- perPage: number;
-}
-
-interface Query {
- book?: string;
- chapter?: string;
-}
+import { Plugin } from "@typings/plugin";
+import { FilterTypes, Filters } from "@libs/filterInputs";
+import { defaultCover } from "@libs/defaultCover";
+import { fetchApi, fetchFile } from "@libs/fetch";
+import { NovelStatus } from "@libs/novelStatus";
+import { load as parseHTML } from "cheerio";
+import dayjs from "dayjs";
+
+class RNRF implements Plugin.PluginBase {
+ id = "RNRF";
+ name = "РанобэРФ";
+ site = "https://ранобэ.рф";
+ version = "1.0.0";
+ icon = "src/ru/ranoberf/icon.png";
+
+ async popularNovels(
+ pageNo: number,
+ { showLatestNovels, filters }: Plugin.PopularNovelsOptions,
+ ): Promise {
+ let url = this.site + "/books?order=";
+ url += showLatestNovels
+ ? "lastPublishedChapter"
+ : filters?.sort?.value || "popular";
+ url += "&page=" + pageNo;
+
+ const result = await fetchApi(url);
+ const body = await result.text();
+
+ const loadedCheerio = parseHTML(body);
+ const jsonRaw = loadedCheerio("#__NEXT_DATA__").html();
+ const json: response = JSON.parse(jsonRaw || "{}");
+
+ const novels: Plugin.NovelItem[] = [];
+ json.props.pageProps?.totalData?.items?.forEach((novel) =>
+ novels.push({
+ name: novel.title,
+ cover: novel?.verticalImage?.url
+ ? this.site + novel.verticalImage.url
+ : defaultCover,
+ url: this.site + "/" + novel.slug,
+ }),
+ );
+
+ return novels;
+ }
+
+ async parseNovelAndChapters(novelUrl: string): Promise {
+ const result = await fetchApi(novelUrl);
+ const body = await result.text();
+
+ const loadedCheerio = parseHTML(body);
+ const jsonRaw = loadedCheerio("#__NEXT_DATA__").html();
+ const book = (JSON.parse(jsonRaw || "{}") as response).props.pageProps.book;
+
+ const novel: Plugin.SourceNovel = {
+ url: novelUrl,
+ name: book?.title,
+ cover: book?.verticalImage?.url
+ ? this.site + book.verticalImage.url
+ : defaultCover,
+ summary: book?.description,
+ author: book?.author || "",
+ genres: book?.genres.map((item) => item.title).join(", "),
+ status: book?.additionalInfo.includes("Активен")
+ ? NovelStatus.Ongoing
+ : NovelStatus.Completed,
+ };
+
+ const chapters: Plugin.ChapterItem[] = [];
+
+ book?.chapters.forEach((chapter, chapterIndex) => {
+ if (!chapter.isDonate || chapter.isUserPaid) {
+ chapters.push({
+ name: chapter.title,
+ url: this.site + chapter.url,
+ releaseTime: dayjs(chapter.publishedAt).format("LLL"),
+ chapterNumber: book.chapters.length - chapterIndex,
+ });
+ }
+ });
+
+ novel.chapters = chapters.reverse();
+ return novel;
+ }
+
+ async parseChapter(chapterUrl: string): Promise {
+ const result = await fetchApi(chapterUrl).then((res) => res.text());
+
+ let loadedCheerio = parseHTML(result);
+ const jsonRaw = loadedCheerio("#__NEXT_DATA__").html();
+ const json: response = JSON.parse(jsonRaw || "{}");
+
+ loadedCheerio = parseHTML(
+ json.props.pageProps?.chapter?.content?.text || "",
+ );
+
+ loadedCheerio("img").each((index, element) => {
+ if (!loadedCheerio(element).attr("src")?.startsWith("http")) {
+ const src = loadedCheerio(element).attr("src");
+ loadedCheerio(element).attr("src", this.site + src);
+ }
+ });
+
+ const chapterText = loadedCheerio.html();
+ return chapterText;
+ }
+
+ async searchNovels(
+ searchTerm: string,
+ //pageNo: number | undefined = 1,
+ ): Promise {
+ const url = `${this.site}/v3/books?filter[or][0][title][like]=${searchTerm}&filter[or][1][titleEn][like]=${searchTerm}&filter[or][2][fullTitle][like]=${searchTerm}&filter[status][]=active&filter[status][]=abandoned&filter[status][]=completed&expand=verticalImage`;
+ const result = await fetchApi(url);
+ const body = (await result.json()) as { items: Item[] };
+ const novels: Plugin.NovelItem[] = [];
+
+ body.items.forEach((novel) =>
+ novels.push({
+ name: novel.title,
+ cover: novel?.verticalImage?.url
+ ? this.site + novel.verticalImage.url
+ : defaultCover,
+ url: this.site + "/" + novel.slug,
+ }),
+ );
+
+ return novels;
+ }
+ fetchImage = fetchFile;
+
+ filters = {
+ sort: {
+ label: "Сортировка",
+ value: "popular",
+ options: [
+ { label: "Рейтинг", value: "popular" },
+ { label: "Дате добавления", value: "new" },
+ { label: "Дате обновления", value: "lastPublishedChapter" },
+ { label: "Законченные", value: "completed" },
+ ],
+ type: FilterTypes.Picker,
+ },
+ } satisfies Filters;
+}
+export default new RNRF();
+
+interface response {
+ props: Props;
+ page: string;
+ query: Query;
+ buildId: string;
+ isFallback: boolean;
+ gssp: boolean;
+ appGip: boolean;
+ dynamicIds?: string[];
+}
+
+interface Props {
+ pageProps: PageProps;
+ isMobile: boolean;
+ theme: string;
+ __N_SSP: boolean;
+}
+
+interface PageProps {
+ initialReduxState: InitialReduxState;
+ book?: PagePropsBook;
+ totalData?: TotalData;
+ layoutViewCookies?: string;
+ displayBanner?: boolean;
+ chapter?: PagePropsChapter;
+}
+
+interface PagePropsBook {
+ id: number;
+ countryId: number;
+ creatorId: number;
+ lastChapterId: number;
+ sourceId: number;
+ imgVerticalId: number;
+ imgHorizontalId: number;
+ imgSquareId: number;
+ imageVerticalId: number;
+ imageHorizontalId: number;
+ title: string;
+ titleEn: string;
+ fullTitle: string;
+ fullTitleEn: string;
+ description: string;
+ slug: string;
+ author: string;
+ additionalInfo: string;
+ importantInfo: string;
+ status: string;
+ views: number;
+ likes: number;
+ dislikes: number;
+ intervalSec: number;
+ intervalForNextFreeChapterSec: number;
+ chapterCost: number;
+ chapterPrice: number;
+ chapterPriceCollected: number;
+ maxSubscriptionChapters: number;
+ maxDonateChapters: number;
+ isDisplayOnMainPage: boolean;
+ withoutSchedule: boolean;
+ nextFreeChapterPublishedAt: null;
+ createdAt: Date;
+ updatedAt: Date;
+ userRating: null;
+ userBookmark: null;
+ country: Country;
+ genres: Genre[];
+ timer: Timer;
+ chapters: ChapterElement[];
+ verticalImage: Image;
+ horizontalImage: Image;
+ squareImage: Image;
+}
+
+interface ChapterElement {
+ id: number;
+ bookId: number;
+ title: string;
+ url: string;
+ numberChapter: string;
+ tom: number | null;
+ chapterShortNumber: number | null;
+ isDonate: boolean;
+ isSponsored: boolean;
+ isSubscription: boolean;
+ isEdited: boolean;
+ publishedAt: Date;
+ price: number;
+ views: number;
+ isUserPaid?: boolean;
+}
+
+interface Country {
+ id: number;
+ title: string;
+ code: string;
+}
+
+interface Genre {
+ id: number;
+ title: string;
+ slug: string;
+}
+
+interface Image {
+ id: number;
+ alt: string;
+ path: string;
+ name: string;
+ url: string;
+}
+
+interface Timer {
+ value: null;
+ for: null;
+ message: string;
+}
+
+interface PagePropsChapter {
+ id: number;
+ bookId: number;
+ editorId: null;
+ translatorId: number;
+ parserChapterId: null;
+ title: string;
+ slug: string;
+ status: string;
+ tom: null;
+ views: number;
+ isSponsored: boolean;
+ isSubscription: boolean;
+ isDonate: boolean;
+ isIndexing: boolean;
+ publishedAt: Date;
+ changeAvailabilityAt: null;
+ createdAt: Date;
+ updatedAt: Date;
+ numberChapter: string;
+ price: number;
+ content: Content;
+ book: ChapterBook;
+ userBookmark: null;
+ isUserPaid: boolean;
+ nextChapter: null;
+ previousChapter: PreviousChapter;
+ corrections: null;
+}
+
+interface ChapterBook {
+ id: number;
+ title: string;
+ titleEn: string;
+ url: string;
+}
+
+interface Content {
+ id: number;
+ text: string;
+ symbolsCount: number;
+}
+
+interface PreviousChapter {
+ id: number;
+ title: string;
+ views: number;
+ publishedAt: Date;
+ url: string;
+ numberChapter: string;
+}
+
+interface InitialReduxState {
+ data?: Data;
+ auth: Auth;
+ banners?: Banners;
+ corrections?: Corrections;
+ readerSettings?: ReaderSettings;
+}
+
+interface Auth {
+ isAuth: boolean;
+ user: null;
+}
+
+interface Banners {
+ displaySale: boolean;
+}
+
+interface Corrections {
+ items: null;
+ data: null;
+}
+
+interface Data {
+ bookPage: BookPage | null;
+ chapterPage: ChapterPage | null;
+}
+
+interface BookPage {
+ bookId: number;
+ bookmark: null;
+}
+
+interface ChapterPage {
+ chapterId: number;
+ bookId: number;
+ bookmark: null;
+}
+
+interface ReaderSettings {
+ fontSize: number;
+ lineHeight: number;
+ textIndent: number;
+ sidebarHide: number;
+ textAlign: string;
+}
+
+interface TotalData {
+ items: Item[];
+ _links: Links;
+ pagesData: PagesData;
+}
+
+interface Links {
+ self: First;
+ first: First;
+ last: First;
+ next: First;
+}
+
+interface First {
+ href: string;
+}
+
+interface Item {
+ id: number;
+ title: string;
+ description: string;
+ slug: string;
+ url: string;
+ status: string;
+ dislikes: number;
+ likes: number;
+ userRating: null;
+ lastChapter: ChapterElement;
+ verticalImage: Image;
+ horizontalImage: Image;
+ squareImage: Image;
+}
+
+interface PagesData {
+ totalCount: number;
+ pageCount: number;
+ currentPage: number;
+ perPage: number;
+}
+
+interface Query {
+ book?: string;
+ chapter?: string;
+}
diff --git a/plugins/russian/renovels.ts b/plugins/russian/renovels.ts
index f707acc..8363309 100644
--- a/plugins/russian/renovels.ts
+++ b/plugins/russian/renovels.ts
@@ -1,1105 +1,1081 @@
-import { Plugin } from "@typings/plugin";
-import { FilterTypes, Filters } from "@libs/filterInputs";
-import { fetchApi, fetchFile } from "@libs/fetch";
-import { NovelStatus } from "@libs/novelStatus";
-import dayjs from "dayjs";
-
-class ReN implements Plugin.PluginBase {
- id = "ReN";
- name = "Renovels";
- site = "https://renovels.org";
- version = "1.0.0";
- icon = "src/ru/renovels/icon.png";
-
-
- async popularNovels(
- pageNo: number,
- {
- showLatestNovels,
- filters,
- }: Plugin.PopularNovelsOptions,
- ): Promise {
- let url = this.site + "/api/search/catalog/?count=30&ordering=";
- url += filters?.order?.value
- ? (filters.order.value as string).replace("+", "")
- : "-";
- url += showLatestNovels ? "chapter_date" : filters?.sort?.value || "rating";
-
- if (filters?.genres?.value?.include?.length) {
- url += filters.genres.value.include.map((i) => "&genres=" + i).join("");
- }
-
- if (filters?.genres?.value?.exclude?.length) {
- url += filters.genres.value.exclude
- .map((i) => "&exclude_genres=" + i).join("");
- }
-
- if (filters?.status?.value?.length) {
- url += filters.status.value.map((i) => "&status=" + i).join("");
- }
-
- if (filters?.types?.value?.length) {
- url += filters.types.value.map((i) => "&types=" + i).join("");
- }
-
- if (filters?.categories?.value?.include?.length) {
- url += filters.categories.value.include
- .map((i) => "&categories=" + i).join("");
- }
-
- if (filters?.categories?.value?.exclude?.length) {
- url += filters.categories.value.exclude
- .map((i) => "&exclude_categories=" + i).join("");
- }
-
- if (filters?.age_limit?.value?.length) {
- url += filters.age_limit.value.map((i) => "&age_limit=" + i).join("");
- }
-
- url += "&page=" + pageNo;
-
- const result = await fetchApi(url);
- const body = (await result.json()) as { content: responseNovels[] };
-
- const novels: Plugin.NovelItem[] = [];
-
- body.content.forEach((novel) =>
- novels.push({
- name: novel.main_name || novel.secondary_name,
- cover: this.site + (novel.img?.high || novel.img?.mid || novel.img.low),
- url: this.site + "/novel/" + novel.dir,
- }),
- );
-
- return novels;
- }
-
- async parseNovelAndChapters(novelUrl: string): Promise {
- const novelID = novelUrl.split("/")[4];
- const result = await fetchApi(this.site + "/api/titles/" + novelID);
- const body = (await result.json()) as { content: responseNovel };
-
- const novel: Plugin.SourceNovel = {
- url: novelUrl,
- name: body.content.main_name || body.content.secondary_name,
- summary: body.content.description,
- cover:
- this.site +
- (body.content.img?.high ||
- body.content.img?.mid ||
- body.content.img.low),
- status:
- body.content.status.name === "Продолжается"
- ? NovelStatus.Ongoing
- : NovelStatus.Completed,
- };
-
- const tags = [body.content?.genres, body.content?.categories]
- .flat()
- .map((tags) => tags?.name)
- .filter((tags) => tags);
-
- if (tags.length) {
- novel.genres = tags.join(",");
- }
-
- const all = Math.floor(body.content.count_chapters / 100 + 1);
- const branch_id = body.content.branches?.[0]?.id || body.content.id;
- const chapters: Plugin.ChapterItem[] = [];
-
- for (let i = 0; i < all; i++) {
- const chapterResult = await fetchApi(
- this.site +
- "/api/titles/chapters/?branch_id=" +
- branch_id +
- "&count=100&page=" +
- (i + 1),
- );
- const volumes = (await chapterResult.json()) as {
- content: responseСhapters[];
- };
-
- volumes.content.forEach((chapter) => {
- if (!chapter.is_paid || chapter.is_bought) {
- chapters.push({
- name: `Том ${chapter.tome} Глава ${chapter.chapter} ${chapter.name}`?.trim(),
- releaseTime: dayjs(chapter.upload_date).format("LLL"),
- url: `${this.site}/novel/${novelID}/${chapter.id}/`,
- });
- }
- });
- }
-
- novel.chapters = chapters.reverse();
- return novel;
- }
-
- async parseChapter(chapterUrl: string): Promise {
- const url = this.site + "/api/titles/chapters/" + chapterUrl.split("/")[5];
- const result = await fetchApi(url);
- const body = (await result.json()) as { content: responseСhapter };
-
- return body.content.content;
- }
-
- async searchNovels(
- searchTerm: string,
- pageNo: number | undefined = 1,
- ): Promise {
- const url = `${this.site}/api/search/?query=${searchTerm}&count=100&field=titles&page=${pageNo}`;
- const result = await fetchApi(url);
- const body = (await result.json()) as { content: responseNovels[] };
- const novels: Plugin.NovelItem[] = [];
-
- body.content.forEach((novel) =>
- novels.push({
- name: novel.main_name || novel.secondary_name,
- cover: this.site + (novel.img?.high || novel.img?.mid || novel.img.low),
- url: this.site + "/novel/" + novel.dir,
- }),
- );
-
- return novels;
- }
-
- fetchImage = fetchFile;
-
- filters = {
- sort: {
- label: "Сортировка",
- value: "",
- options: [
- { label: "Рейтинг", value: "rating" },
- { label: "Просмотры", value: "views" },
- { label: "Лайкам", value: "votes" },
- { label: "Дате добавления", value: "id" },
- { label: "Дате обновления", value: "chapter_date" },
- { label: "Количество глав", value: "count_chapters" },
- ],
- type: FilterTypes.Picker,
- },
- order: {
- label: "Порядок",
- value: "",
- options: [
- { label: "По убыванию", value: "-" },
- { label: "По возрастанию", value: "+" },
- ],
- type: FilterTypes.Picker,
- },
- genres: {
- label: "Жанры:",
- value: { include: [], exclude: [] },
- options: [
- { label: "Боевик", value: "112" },
- { label: "Война", value: "123" },
- { label: "Детектив", value: "114" },
- { label: "Драма", value: "125" },
- { label: "Историческая проза", value: "115" },
- { label: "ЛитРПГ", value: "109" },
- { label: "Любовные романы", value: "116" },
- { label: "Мистика", value: "103" },
- { label: "Научная фантастика", value: "121" },
- { label: "Повседневность", value: "128" },
- { label: "Подростковая проза", value: "113" },
- { label: "Политический роман", value: "119" },
- { label: "Попаданцы", value: "108" },
- { label: "Поэзия", value: "105" },
- { label: "Разное", value: "111" },
- { label: "РеалРПГ", value: "117" },
- { label: "Романтика", value: "126" },
- { label: "Современная проза", value: "102" },
- { label: "Современная фантастика", value: "127" },
- { label: "Спорт", value: "122" },
- { label: "Трагедия", value: "129" },
- { label: "Триллер", value: "110" },
- { label: "Триллер и саспенс", value: "124" },
- { label: "Ужасы", value: "106" },
- { label: "Фантастика", value: "101" },
- { label: "Фанфик", value: "107" },
- { label: "Фьюжн роман", value: "120" },
- { label: "Фэнтези", value: "100" },
- { label: "Эротика", value: "118" },
- { label: "Юмор", value: "104" },
- ],
- type: FilterTypes.ExcludableCheckboxGroup,
- },
- categories: {
- label: "Тэги:",
- value: { include: [], exclude: [] },
- options: [
- { label: "[Награжденная работа]", value: "648" },
- { label: "18+", value: "423" },
- { label: "Абьюзеры", value: "663" },
- { label: "Авантюристы", value: "436" },
- { label: "Автоматоны", value: "593" },
- { label: "Агрессивные персонажи", value: "502" },
- { label: "Ад", value: "569" },
- { label: "Адаптация в радиопостановку", value: "581" },
- { label: "Академия", value: "153" },
- { label: "Актеры озвучки", value: "627" },
- { label: "Активный главный герой", value: "251" },
- { label: "Алхимия", value: "233" },
- { label: "Альтернативная история", value: "147" },
- { label: "Альтернативный мир", value: "156" },
- { label: "Амнезия/Потеря памяти", value: "344" },
- { label: "Анабиоз", value: "685" },
- { label: "Ангелы", value: "183" },
- { label: "Андрогинные персонажи", value: "321" },
- { label: "Андроиды", value: "203" },
- { label: "Анти-магия", value: "533" },
- { label: "Антигерой", value: "432" },
- { label: "Антикварный магазин", value: "623" },
- { label: "Антисоциальный главный герой", value: "613" },
- { label: "Антиутопия", value: "142" },
- { label: "Апатичный протагонист", value: "157" },
- { label: "Апокалипсис", value: "402" },
- { label: "Аранжированный брак", value: "375" },
- { label: "Армия", value: "639" },
- { label: "Артефакты", value: "234" },
- { label: "Артисты", value: "523" },
- { label: "Банды", value: "630" },
- { label: "БДСМ", value: "699" },
- { label: "Бедный главный герой", value: "398" },
- { label: "Безжалостный главный герой", value: "261" },
- { label: "Беззаботный главный герой", value: "438" },
- { label: "Безусловная любовь", value: "679" },
- { label: "Беременность", value: "250" },
- { label: "Бесполый главный герой", value: "325" },
- { label: "Бессмертные", value: "368" },
- { label: "Бесстрашный протагонист", value: "656" },
- { label: "Бесстыдный главный герой", value: "352" },
- { label: "Бесчестный главный герой", value: "716" },
- { label: "Библиотека", value: "428" },
- { label: "Бизнес-литература", value: "121" },
- { label: "Бизнесмен", value: "769" },
- { label: "Биочип", value: "238" },
- { label: "Бисексуальный главный герой", value: "773" },
- { label: "Близнецы", value: "263" },
- { label: "Боги", value: "317" },
- { label: "Богини", value: "439" },
- { label: "Боевая академия", value: "450" },
- { label: "Боевая фантастика", value: "149" },
- { label: "Боевое фэнтези", value: "104" },
- { label: "Боевые духи", value: "433" },
- { label: "Боевые соревнования", value: "493" },
- { label: "Божественная защита", value: "421" },
- { label: "Божественные силы", value: "327" },
- { label: "Борьба за власть", value: "599" },
- { label: "Брак", value: "446" },
- { label: "Брак по расчету", value: "188" },
- { label: "Братский комплекс", value: "159" },
- { label: "Братство", value: "487" },
- { label: "Братья и сестры", value: "577" },
- { label: "Буддизм", value: "745" },
- { label: "Быстрая культивация", value: "366" },
- { label: "Быстрообучаемый", value: "324" },
- { label: "Валькирии", value: "692" },
- { label: "Вампиры", value: "360" },
- { label: "Ваншот", value: "702" },
- { label: "Ведьмы", value: "281" },
- { label: "Вежливый главный герой", value: "379" },
- { label: "Верные подчиненные", value: "328" },
- { label: "Взрослый главный герой", value: "295" },
- { label: "Видит то, чего не видят другие", value: "671" },
- { label: "Виртуальная реальность", value: "401" },
- { label: "Владелец магазина", value: "681" },
- { label: "Внезапная сила", value: "455" },
- { label: "Внезапное богатство", value: "765" },
- { label: "Внешний вид отличается от факт", value: "419" },
- { label: "Военные Летописи", value: "743" },
- { label: "Возвращение из другого мира", value: "696" },
- { label: "Войны", value: "181" },
- { label: "Вокалоид", value: "701" },
- { label: "Волшебники/Волшебницы", value: "539" },
- { label: "Волшебные звери", value: "308" },
- { label: "Воображаемый друг", value: "651" },
- { label: "Воры", value: "414" },
- { label: "Воскрешение", value: "199" },
- { label: "Враги становятся возлюбленными", value: "498" },
- { label: "Враги становятся союзниками", value: "562" },
- { label: "Врата в другой мир", value: "609" },
- { label: "Врачи", value: "376" },
- { label: "Временной парадокс", value: "275" },
- { label: "Всемогущий главный герой", value: "169" },
- { label: "Вторжение на землю", value: "198" },
- { label: "Второй шанс", value: "231" },
- { label: "Вуайеризм", value: "790" },
- { label: "Выживание", value: "380" },
- { label: "Высокомерные персонажи", value: "361" },
- { label: "Гадание", value: "595" },
- { label: "Гарем рабов", value: "777" },
- { label: "Гг - женщина", value: "186" },
- { label: "Гг - мужчина", value: "166" },
- { label: "Гг силен с самого начала", value: "171" },
- { label: "Геймеры", value: "392" },
- { label: "Генералы", value: "326" },
- { label: "Генетические модификации", value: "657" },
- { label: "Гениальный главный герой", value: "617" },
- { label: "Герои", value: "285" },
- { label: "Героиня — сорванец", value: "583" },
- { label: "Героическая фантастика", value: "140" },
- { label: "Героическое фэнтези", value: "107" },
- { label: "Герой влюбляется первым", value: "187" },
- { label: "Гетерохромия", value: "570" },
- { label: "Гильдии", value: "411" },
- { label: "Гипнотизм", value: "755" },
- { label: "Главный герой — бог", value: "547" },
- { label: "Главный герой — гуманоид", value: "636" },
- { label: "Главный герой — наполовину чел", value: "445" },
- { label: "Главный герой — отец", value: "792" },
- { label: "Главный герой — раб", value: "780" },
- { label: "Главный герой — ребенок", value: "488" },
- { label: "Главный герой — рубака", value: "476" },
- { label: "Главный герой влюбляется первы", value: "683" },
- { label: "Главный герой играет роль", value: "472" },
- { label: "Главный герой носит очки", value: "672" },
- { label: "Главный герой пацифист", value: "698" },
- { label: "Гладиаторы", value: "603" },
- { label: "Глуповатый главный герой", value: "385" },
- { label: "Гоблины", value: "586" },
- { label: "Големы", value: "620" },
- { label: "Гомункул", value: "789" },
- { label: "Горничные", value: "459" },
- { label: "Городское фэнтези", value: "105" },
- { label: "Госпиталь", value: "800" },
- { label: "Готовка", value: "302" },
- { label: "Гриндинг", value: "393" },
- { label: "Дао Компаньон", value: "462" },
- { label: "Даосизм", value: "760" },
- { label: "Дварфы", value: "323" },
- { label: "Двойная личность", value: "642" },
- { label: "Двойник", value: "601" },
- { label: "Дворецкий", value: "660" },
- { label: "Дворяне", value: "168" },
- { label: "Дворянство/Аристократия", value: "437" },
- { label: "Девушки-монстры", value: "669" },
- { label: "Демоническая техника культивац", value: "722" },
- { label: "Демоны", value: "152" },
- { label: "Денежный долг", value: "783" },
- { label: "Депрессия", value: "555" },
- { label: "Детектив", value: "116" },
- { label: "Детективы", value: "612" },
- { label: "Детская литература", value: "123" },
- { label: "Дискриминация", value: "162" },
- { label: "Добыча денег в приоритете", value: "396" },
- { label: "Документальная проза", value: "122" },
- { label: "Долгая разлука", value: "307" },
- { label: "Домашние дела", value: "290" },
- { label: "Домогательство", value: "470" },
- { label: "Драконы", value: "303" },
- { label: "Драконьи всадники", value: "607" },
- { label: "Древние времена", value: "221" },
- { label: "Древний Китай", value: "374" },
- { label: "Дружба", value: "217" },
- { label: "Друзья детства", value: "282" },
- { label: "Друзья становятся врагами", value: "567" },
- { label: "Друиды", value: "497" },
- { label: "Дух лисы", value: "784" },
- { label: "Духи/призраки", value: "172" },
- { label: "Духовный советник", value: "435" },
- { label: "Душевность", value: "633" },
- { label: "Души", value: "254" },
- { label: "Европейская атмосфера", value: "521" },
- { label: "Ёкаи", value: "575" },
- { label: "Есть аниме-адаптация", value: "154" },
- { label: "Есть видеоигра по мотивам", value: "552" },
- { label: "Есть манга", value: "155" },
- { label: "Есть манхва-адаптация", value: "517" },
- { label: "Есть маньхуа-адаптация", value: "388" },
- { label: "Есть сериал-адаптация", value: "492" },
- { label: "Есть фильм", value: "173" },
- { label: "Женища-наставник", value: "505" },
- { label: "Жесткая, двуличная личность", value: "346" },
- { label: "Жестокие персонажи", value: "503" },
- { label: "Жестокое обращение с ребенком", value: "654" },
- { label: "Жестокость", value: "245" },
- { label: "Животноводство", value: "754" },
- { label: "Животные черты", value: "528" },
- { label: "Жизнь в квартире", value: "606" },
- { label: "Жрицы", value: "615" },
- { label: "Заботливый главный герой", value: "288" },
- { label: "Забывчивый главный герой", value: "628" },
- { label: "Заговоры", value: "289" },
- { label: "Закалка тела", value: "362" },
- { label: "Законники", value: "756" },
- { label: "Замкнутый главный герой", value: "589" },
- { label: "Запечатанная сила", value: "430" },
- { label: "Застенчивые персонажи", value: "508" },
- { label: "Звери", value: "237" },
- { label: "Звери-компаньоны", value: "301" },
- { label: "Злой протагонист", value: "243" },
- { label: "Злые боги", value: "504" },
- { label: "Злые организации", value: "563" },
- { label: "Злые религии", value: "734" },
- { label: "Знаменитости", value: "473" },
- { label: "Знаменитый главный герой", value: "531" },
- { label: "Знания современного мира", value: "297" },
- { label: "Зомби", value: "409" },
- { label: "Игра на выживание", value: "274" },
- { label: "Игривый протагонист", value: "717" },
- { label: "Игровая система рейтинга", value: "391" },
- { label: "Игровые элементы", value: "266" },
- { label: "Игрушки (18+)", value: "676" },
- { label: "Из грязи в князи", value: "416" },
- { label: "Из женщины в мужчину", value: "709" },
- { label: "Из мужчины в женщину", value: "715" },
- { label: "Из полного в худого", value: "767" },
- { label: "Из слабого в сильного", value: "202" },
- { label: "Извращенный главный герой", value: "434" },
- { label: "Изгои", value: "534" },
- { label: "Изменение расы", value: "664" },
- { label: "Изменения внешнего вида", value: "300" },
- { label: "Изменения личности", value: "219" },
- { label: "Изнасилование", value: "229" },
- { label: "Изображения жестокости", value: "355" },
- { label: "ИИ", value: "235" },
- { label: "Империи", value: "748" },
- { label: "Инвалидность", value: "684" },
- { label: "Индустриализация", value: "292" },
- { label: "Инженер", value: "163" },
- { label: "Инцест", value: "525" },
- { label: "Искусственный интеллект", value: "236" },
- { label: "Исследования", value: "670" },
- { label: "Историческая проза", value: "119" },
- { label: "Исторические приключения", value: "120" },
- { label: "Исторический детектив", value: "117" },
- { label: "Исторический любовный роман", value: "138" },
- { label: "Историческое фэнтези", value: "110" },
- { label: "Каннибализм", value: "456" },
- { label: "Карточные игры", value: "682" },
- { label: "Киберпанк", value: "141" },
- { label: "Киберспорт", value: "686" },
- { label: "Кланы", value: "796" },
- { label: "Класс безработного", value: "735" },
- { label: "Клоны", value: "447" },
- { label: "Клубы", value: "216" },
- { label: "Книги", value: "427" },
- { label: "Книги навыков", value: "400" },
- { label: "Книжный червь", value: "519" },
- { label: "Коварство", value: "230" },
- { label: "Коллеги", value: "704" },
- { label: "Колледж/Университет", value: "726" },
- { label: "Кома", value: "776" },
- { label: "Командная работа", value: "496" },
- { label: "Комедийный оттенок", value: "582" },
- { label: "Комплекс неполноценности", value: "550" },
- { label: "Комплекс семейных отношений", value: "223" },
- { label: "Конкуренция", value: "746" },
- { label: "Контроль разума/сознания", value: "357" },
- { label: "Копейщик", value: "425" },
- { label: "Королевская битва", value: "797" },
- { label: "Королевская власть", value: "178" },
- { label: "Королевства", value: "259" },
- { label: "Короткий любовный роман", value: "136" },
- { label: "Коррупция", value: "457" },
- { label: "Космическая фантастика", value: "146" },
- { label: "Космические войны", value: "697" },
- { label: "Красивый герой", value: "226" },
- { label: "Крафт", value: "377" },
- { label: "Кризис личности", value: "640" },
- { label: "Кругосветное путешествие", value: "353" },
- { label: "Кудере", value: "506" },
- { label: "Кузены", value: "718" },
- { label: "Кузнец", value: "518" },
- { label: "Кукловоды", value: "501" },
- { label: "Куклы/марионетки", value: "624" },
- { label: "Культивация", value: "241" },
- { label: "Куннилингус", value: "667" },
- { label: "Легенды", value: "500" },
- { label: "Легкая жизнь", value: "644" },
- { label: "Ленивый главный герой", value: "621" },
- { label: "Лидерство", value: "494" },
- { label: "Лоли", value: "213" },
- { label: "Лотерея", value: "477" },
- { label: "Любовное фэнтези", value: "135" },
- { label: "Любовный треугольник", value: "218" },
- { label: "Любовь детства", value: "560" },
- { label: "Любовь с первого взгляда", value: "737" },
- { label: "Магические надписи", value: "453" },
- { label: "Магические печати", value: "369" },
- { label: "Магические технологии", value: "440" },
- { label: "Магия", value: "165" },
- { label: "Магия призыва", value: "418" },
- { label: "Мазохистские персонажи", value: "688" },
- { label: "Манипулятивные персонажи", value: "249" },
- { label: "Мания", value: "212" },
- { label: "Мастер на все руки", value: "466" },
- { label: "Мастурбация", value: "788" },
- { label: "Махо-сёдзё", value: "556" },
- { label: "Медицинские знания", value: "507" },
- { label: "Медленная романтическая линия", value: "232" },
- { label: "Медленное развитие на старте", value: "694" },
- { label: "Межпространственные путешестви", value: "404" },
- { label: "Менеджмент", value: "294" },
- { label: "Мертвый главный герой", value: "761" },
- { label: "Месть", value: "209" },
- { label: "Метаморфы", value: "335" },
- { label: "Меч и магия", value: "180" },
- { label: "Мечник", value: "647" },
- { label: "Мечты", value: "738" },
- { label: "Милая история", value: "725" },
- { label: "Милое дитя", value: "637" },
- { label: "Милый главный герой", value: "714" },
- { label: "Мировое дерево", value: "463" },
- { label: "Мистика", value: "151" },
- { label: "Мистический ореол вокруг семьи", value: "483" },
- { label: "Мифические звери", value: "491" },
- { label: "Мифология", value: "530" },
- { label: "Младшие братья", value: "785" },
- { label: "Младшие сестры", value: "527" },
- { label: "ММОРПГ (ЛитРПГ)", value: "395" },
- { label: "Множество перемещенных людей", value: "549" },
- { label: "Множество реальностей", value: "370" },
- { label: "Множество реинкарнированных лю", value: "330" },
- { label: "Модели", value: "678" },
- { label: "Молчаливый персонаж", value: "721" },
- { label: "Монстры", value: "192" },
- { label: "Мужская гей-пара", value: "706" },
- { label: "Мужчина-яндере", value: "267" },
- { label: "Музыка", value: "635" },
- { label: "Музыкальные группы", value: "634" },
- { label: "Мутации", value: "693" },
- { label: "Мутированные существа", value: "405" },
- { label: "Навык кражи", value: "662" },
- { label: "Навязчивая любовь", value: "206" },
- { label: "Наемники", value: "412" },
- { label: "Назойливый возлюбленный", value: "561" },
- { label: "Наивный главный герой", value: "189" },
- { label: "Наркотики", value: "689" },
- { label: "Нарциссический главный герой", value: "532" },
- { label: "Насилие сексуального характера", value: "774" },
- { label: "Наследование", value: "452" },
- { label: "Научная фантастика", value: "144" },
- { label: "Национализм", value: "406" },
- { label: "Не блещущий внешне главный гер", value: "415" },
- { label: "Не родные братья и сестры", value: "526" },
- { label: "Небеса", value: "568" },
- { label: "Небесное испытание", value: "367" },
- { label: "Негуманоидный главный герой", value: "659" },
- { label: "Недоверчивый главный герой", value: "546" },
- { label: "Недооцененный главный герой", value: "258" },
- { label: "Недоразумения", value: "309" },
- { label: "Неизлечимая болезнь", value: "196" },
- { label: "Некромант", value: "397" },
- { label: "Нелинейная история", value: "269" },
- { label: "Ненавистный главный герой", value: "548" },
- { label: "Ненадежный рассказчик", value: "277" },
- { label: "Нерезиденты", value: "772" },
- { label: "Нерешительный главный герой", value: "744" },
- { label: "Несерьезный главный герой", value: "384" },
- { label: "Несколько временных линий", value: "576" },
- { label: "Несколько гг", value: "268" },
- { label: "Несколько главных героев", value: "537" },
- { label: "Несколько идентичностей", value: "652" },
- { label: "Несколько личностей", value: "536" },
- { label: "Нетораре", value: "732" },
- { label: "Нетори", value: "514" },
- { label: "Неудачливый главный герой", value: "618" },
- { label: "Ниндзя", value: "441" },
- { label: "Новелла", value: "103" },
- { label: "Обещание из детства", value: "742" },
- { label: "Обманщик", value: "485" },
- { label: "Обмен телами", value: "214" },
- { label: "Обнаженка", value: "490" },
- { label: "Обольщение", value: "731" },
- { label: "Оборотни", value: "661" },
- { label: "Обратный гарем", value: "351" },
- { label: "Общество монстров", value: "329" },
- { label: "Обязательство", value: "602" },
- { label: "Огнестрельное оружие", value: "291" },
- { label: "Ограниченное время жизни", value: "194" },
- { label: "Одержимость", value: "512" },
- { label: "Одинокий главный герой", value: "394" },
- { label: "Одиночество", value: "306" },
- { label: "Одиночное проживание", value: "313" },
- { label: "Околосмертные переживания", value: "759" },
- { label: "Оммёдзи", value: "597" },
- { label: "Омоложение", value: "338" },
- { label: "Организованная преступность", value: "540" },
- { label: "Оргия", value: "775" },
- { label: "Орки", value: "331" },
- { label: "Освоение навыков", value: "336" },
- { label: "Основано на аниме", value: "605" },
- { label: "Основано на видео игре", value: "720" },
- { label: "Основано на визуальной новелле", value: "793" },
- { label: "Основано на песне", value: "700" },
- { label: "Основано на фильме", value: "604" },
- { label: "Осторожный главный герой", value: "240" },
- { label: "Отаку", value: "571" },
- { label: "Открытый космос", value: "264" },
- { label: "Отношения в сети", value: "727" },
- { label: "Отношения между людьми и нелюд", value: "311" },
- { label: "Отношения на расстоянии", value: "791" },
- { label: "Отношения Сенпай-Коухай", value: "572" },
- { label: "Отношения ученика и учителя", value: "515" },
- { label: "Отношения учитель-ученик", value: "429" },
- { label: "Отношения хозяин-слуга", value: "312" },
- { label: "Отомэ игра", value: "733" },
- { label: "Отсутствие здравого смысла", value: "645" },
- { label: "Отсутствие родителей", value: "625" },
- { label: "Офисный роман", value: "707" },
- { label: "Официанты", value: "703" },
- { label: "Охотники", value: "378" },
- { label: "Очаровательный главный герой", value: "687" },
- { label: "Падшее дворянство", value: "655" },
- { label: "Падшие ангелы", value: "565" },
- { label: "Пайзури", value: "665" },
- { label: "Паразиты", value: "591" },
- { label: "Параллельные миры", value: "207" },
- { label: "Парк", value: "265" },
- { label: "Парк развлечений", value: "632" },
- { label: "Пародия", value: "407" },
- { label: "Певцы/Певицы", value: "739" },
- { label: "Первая любовь", value: "729" },
- { label: "Первоисточник новеллы — манга", value: "611" },
- { label: "Первый раз", value: "787" },
- { label: "Перемещение в игровой мир", value: "588" },
- { label: "Перемещение в иной мир", value: "750" },
- { label: "Перерождение в ином мире", value: "751" },
- { label: "Переселение души/трансмиграция", value: "257" },
- { label: "Персонаж использует щит", value: "666" },
- { label: "Петля времени", value: "200" },
- { label: "Пираты", value: "771" },
- { label: "Писатели", value: "482" },
- { label: "Питомцы", value: "349" },
- { label: "Племенное общество", value: "381" },
- { label: "Повелитель демонов", value: "283" },
- { label: "Подземелья", value: "322" },
- { label: "Подростковая проза", value: "114" },
- { label: "Пожелания", value: "278" },
- { label: "Познание Дао", value: "443" },
- { label: "Покинутое дитя", value: "590" },
- { label: "Полигамия", value: "386" },
- { label: "Политика", value: "170" },
- { label: "Политический роман", value: "133" },
- { label: "Полиция", value: "764" },
- { label: "Полулюди", value: "420" },
- { label: "Популярный любовный интерес", value: "342" },
- { label: "Постапокалипсис", value: "145" },
- { label: "Постапокалиптика", value: "184" },
- { label: "Потерянные цивилизации", value: "749" },
- { label: "Похищения людей", value: "723" },
- { label: "Поэзия", value: "111" },
- { label: "Правонарушители", value: "713" },
- { label: "Прагматичный главный герой", value: "592" },
- { label: "Преданный любовный интерес", value: "225" },
- { label: "Предательство", value: "222" },
- { label: "Предвидение", value: "177" },
- { label: "Прекрасная героиня", value: "158" },
- { label: "Преступники", value: "736" },
- { label: "Преступность", value: "204" },
- { label: "Призванный герой", value: "262" },
- { label: "Призраки", value: "176" },
- { label: "Принуждение к отношениям", value: "643" },
- { label: "Принцессы", value: "795" },
- { label: "Притворная пара", value: "641" },
- { label: "Причудливые персонажи", value: "387" },
- { label: "Пришельцы/инопланетяне", value: "197" },
- { label: "Программист", value: "691" },
- { label: "Проклятия", value: "174" },
- { label: "Промывание мозгов", value: "578" },
- { label: "Пропуск времени", value: "256" },
- { label: "Пророчества", value: "499" },
- { label: "Проститутки", value: "786" },
- { label: "Прошлое играет большую роль", value: "320" },
- { label: "Прыжки между мирами", value: "741" },
- { label: "Психические силы", value: "359" },
- { label: "Психопаты", value: "270" },
- { label: "Публицистика", value: "124" },
- { label: "Путешествие во времени", value: "201" },
- { label: "Пытка", value: "280" },
- { label: "Рабы", value: "778" },
- { label: "Развитие личности", value: "125" },
- { label: "Развод", value: "758" },
- { label: "Разумные предметы", value: "286" },
- { label: "Расизм", value: "408" },
- { label: "Рассказ", value: "185" },
- { label: "Расторжения помолвки", value: "343" },
- { label: "Расы зооморфов", value: "315" },
- { label: "Реализм", value: "246" },
- { label: "Ревность", value: "730" },
- { label: "Редакторы", value: "705" },
- { label: "Реинкарнация", value: "372" },
- { label: "Реинкарнация в монстра", value: "310" },
- { label: "Реинкарнация в объект", value: "711" },
- { label: "Религии", value: "616" },
- { label: "Репортеры", value: "781" },
- { label: "Ресторан", value: "680" },
- { label: "Решительный главный герой", value: "242" },
- { label: "Робкий главный герой", value: "763" },
- { label: "Родитель одиночка", value: "708" },
- { label: "Родительский комплекс", value: "587" },
- { label: "Родословная", value: "239" },
- { label: "Романтическая эротика", value: "132" },
- { label: "Романтический подсюжет", value: "271" },
- { label: "Рост персонажа", value: "215" },
- { label: "Рыцари", value: "260" },
- { label: "Садистские персонажи", value: "674" },
- { label: "Самоотверженный главный герой", value: "747" },
- { label: "Самурай", value: "677" },
- { label: "Сборник коротких историй", value: "520" },
- { label: "Связанные сюжетные линии", value: "535" },
- { label: "Святые", value: "752" },
- { label: "Священники", value: "413" },
- { label: "Сдержанный главный герой", value: "762" },
- { label: "Секретные организации", value: "417" },
- { label: "Секреты", value: "626" },
- { label: "Секс рабы", value: "779" },
- { label: "Семейный конфликт", value: "757" },
- { label: "Семь добродетелей", value: "334" },
- { label: "Семь смертных грехов", value: "253" },
- { label: "Семья", value: "347" },
- { label: "Сёнэн-ай подсюжет", value: "690" },
- { label: "Серийные убийцы", value: "557" },
- { label: "Сестринский комплекс", value: "558" },
- { label: "Сила духа", value: "373" },
- { label: "Сила, требующая платы за польз", value: "579" },
- { label: "Сильная пара", value: "228" },
- { label: "Сильный в сильнейшего", value: "442" },
- { label: "Сильный любовный интерес", value: "273" },
- { label: "Синдром восьмиклассника", value: "211" },
- { label: "Сироты", value: "319" },
- { label: "Система уровней", value: "305" },
- { label: "Системный администратор", value: "538" },
- { label: "Сказка", value: "126" },
- { label: "Скрытие истинной личности", value: "451" },
- { label: "Скрытие истинных способностей", value: "348" },
- { label: "Скрытный главный герой", value: "252" },
- { label: "Скрытые способности", value: "247" },
- { label: "Скульпторы", value: "448" },
- { label: "Слабо выраженная романтическая", value: "318" },
- { label: "Слабый главный герой", value: "298" },
- { label: "Слепой главный герой", value: "794" },
- { label: "Слуги", value: "333" },
- { label: "Слэш", value: "131" },
- { label: "Смерть", value: "175" },
- { label: "Смерть близких", value: "444" },
- { label: "Собственнические персонажи", value: "227" },
- { label: "Современная проза", value: "150" },
- { label: "Современность", value: "167" },
- { label: "Современный любовный роман", value: "137" },
- { label: "Сожительство", value: "544" },
- { label: "Создание армии", value: "287" },
- { label: "Создание артефактов", value: "382" },
- { label: "Создание клана", value: "513" },
- { label: "Создание королевства", value: "293" },
- { label: "Создание навыков", value: "337" },
- { label: "Создание секты", value: "469" },
- { label: "Солдаты/военные", value: "193" },
- { label: "Сон", value: "622" },
- { label: "Состоятельные персонажи", value: "190" },
- { label: "Социальная иерархия по силе", value: "255" },
- { label: "Социальная фантастика", value: "148" },
- { label: "Социальные изгои", value: "542" },
- { label: "Спасение мира", value: "638" },
- { label: "Специальные способности", value: "179" },
- { label: "Спокойный главный герой", value: "160" },
- { label: "Справедливый главный герой", value: "719" },
- { label: "Средневековье", value: "296" },
- { label: "Ссорящаяся пара", value: "383" },
- { label: "Сталкеры", value: "710" },
- { label: "Старение", value: "299" },
- { label: "Стимпанк", value: "139" },
- { label: "Стоические персонажи", value: "509" },
- { label: "Стокгольмский синдром", value: "675" },
- { label: "Стратег", value: "495" },
- { label: "Стратегические битвы", value: "272" },
- { label: "Стратегия", value: "798" },
- { label: "Стрелки", value: "522" },
- { label: "Стрельба из лука", value: "461" },
- { label: "Студенческий совет", value: "551" },
- { label: "Судьба", value: "364" },
- { label: "Суккубы", value: "545" },
- { label: "Супер герои", value: "799" },
- { label: "Суровая подготовка", value: "356" },
- { label: "Таинственная болезнь", value: "195" },
- { label: "Таинственное прошлое", value: "358" },
- { label: "Тайная личность", value: "399" },
- { label: "Тайные отношения", value: "768" },
- { label: "Танцоры", value: "782" },
- { label: "Телохранители", value: "516" },
- { label: "Темное фэнтези", value: "106" },
- { label: "Тентакли", value: "712" },
- { label: "Террористы", value: "574" },
- { label: "Технологический разрыв", value: "658" },
- { label: "Тихие персонажи", value: "600" },
- { label: "Толстый главный герой", value: "389" },
- { label: "Торговцы", value: "489" },
- { label: "Травля/буллинг", value: "210" },
- { label: "Травник", value: "724" },
- { label: "Трагическое прошлое", value: "276" },
- { label: "Трансплантация воспоминаний", value: "449" },
- { label: "Триллер", value: "134" },
- { label: "Трудолюбивый главный герой", value: "164" },
- { label: "Тюрьма", value: "541" },
- { label: "Убийства", value: "205" },
- { label: "Убийцы", value: "345" },
- { label: "Убийцы драконов", value: "646" },
- { label: "Уверенный главный герой", value: "363" },
- { label: "Удачливый главный герой", value: "478" },
- { label: "Ужасы", value: "112" },
- { label: "Укротитель монстров", value: "422" },
- { label: "Умения из прошлой жизни", value: "371" },
- { label: "Умная пара", value: "554" },
- { label: "Умный главный герой", value: "161" },
- { label: "Уникальная техника Культивации", value: "350" },
- { label: "Уникальное оружие", value: "426" },
- { label: "Управление бизнесом", value: "403" },
- { label: "Управление временем", value: "279" },
- { label: "Управление кровью", value: "753" },
- { label: "Упрямый главный герой", value: "695" },
- { label: "Уродливый главный герой", value: "766" },
- { label: "Ускоренный рост", value: "390" },
- { label: "Усыновленные дети", value: "543" },
- { label: "Усыновленный главный герой", value: "486" },
- { label: "Уход за детьми", value: "474" },
- { label: "Учителя", value: "431" },
- { label: "Фамильяры", value: "596" },
- { label: "Фанатизм", value: "650" },
- { label: "Фантастические существа", value: "410" },
- { label: "Фантастический детектив", value: "115" },
- { label: "Фанфик", value: "113" },
- { label: "Фанфикшн", value: "464" },
- { label: "Фармацевт", value: "728" },
- { label: "Фарминг", value: "458" },
- { label: "Феи", value: "316" },
- { label: "Фелляция", value: "631" },
- { label: "Фемслэш", value: "127" },
- { label: "Фениксы", value: "454" },
- { label: "Фетиш груди", value: "559" },
- { label: "Философия", value: "208" },
- { label: "Фильмы", value: "479" },
- { label: "Флэшбэки", value: "585" },
- { label: "Фобии", value: "220" },
- { label: "Фольклор", value: "529" },
- { label: "Футанари", value: "619" },
- { label: "Футуристический сеттинг", value: "460" },
- { label: "Фэнтези мир", value: "244" },
- { label: "Хакеры", value: "475" },
- { label: "Харизматический герой", value: "467" },
- { label: "Хикикомори/Затворники", value: "524" },
- { label: "Хитроумный главный герой", value: "224" },
- { label: "Хозяин подземелий", value: "608" },
- { label: "Холодный главный герой", value: "354" },
- { label: "Хорошие отношения с семьей", value: "566" },
- { label: "Хранители могил", value: "191" },
- { label: "Целители", value: "465" },
- { label: "Цзянши", value: "740" },
- { label: "Цундэрэ", value: "510" },
- { label: "Чаты", value: "629" },
- { label: "Человеческое оружие", value: "580" },
- { label: "Честный главный герой", value: "341" },
- { label: "Читы", value: "339" },
- { label: "Шантаж", value: "584" },
- { label: "Шеф-повар", value: "340" },
- { label: "Шикигами", value: "598" },
- { label: "Школа только для девочек", value: "668" },
- { label: "Шота", value: "573" },
- { label: "Шоу-бизнес", value: "481" },
- { label: "Шпионский детектив", value: "118" },
- { label: "Шпионы", value: "614" },
- { label: "Эволюция", value: "304" },
- { label: "Эгоистичный главный герой", value: "594" },
- { label: "Эйдетическая память", value: "468" },
- { label: "Экзорсизм", value: "564" },
- { label: "Экономика", value: "553" },
- { label: "Эксгибиционизм", value: "673" },
- { label: "Эксперименты с людьми", value: "248" },
- { label: "Элементальная магия", value: "471" },
- { label: "Эльфы", value: "284" },
- { label: "Эмоционально слабый гг", value: "770" },
- { label: "Эпизодический", value: "649" },
- { label: "Эпическое фэнтези", value: "109" },
- { label: "Эротическая фантастика", value: "129" },
- { label: "Эротический фанфик", value: "128" },
- { label: "Эротическое фэнтези", value: "130" },
- { label: "Юмористическая фантастика", value: "143" },
- { label: "Юмористическое фэнтези", value: "108" },
- { label: "Юный любовный интерес", value: "511" },
- { label: "Яды", value: "484" },
- { label: "Языкастые персонажи", value: "480" },
- { label: "Языковой барьер", value: "182" },
- { label: "Яндере", value: "314" },
- { label: "Японские силы самообороны", value: "610" },
- { label: "Ярко выраженная романтика", value: "365" },
- { label: "R-15 Японское возрастное огр.", value: "332" },
- { label: "R-18", value: "424" },
- ],
- type: FilterTypes.ExcludableCheckboxGroup,
- },
- types: {
- label: "Типы:",
- value: [],
- options: [
- { label: "Авторское", value: "1" },
- { label: "Другое", value: "7" },
- { label: "Запад", value: "5" },
- { label: "Китай", value: "4" },
- { label: "Корея", value: "3" },
- { label: "Фанфики", value: "6" },
- { label: "Япония", value: "2" },
- ],
- type: FilterTypes.CheckboxGroup,
- },
- status: {
- label: "Статус проекта:",
- value: [],
- options: [
- { label: "Анонс", value: "4" },
- { label: "Закончен", value: "0" },
- { label: "Заморожен", value: "2" },
- { label: "Лицензировано", value: "5" },
- { label: "Нет переводчика", value: "3" },
- { label: "Продолжается", value: "1" },
- ],
- type: FilterTypes.CheckboxGroup,
- },
- age_limit: {
- label: "Возрастной рейтинг:",
- value: [],
- options: [
- { label: "16+", value: "1" },
- { label: "18+", value: "2" },
- { label: "Для всех", value: "0" },
- ],
- type: FilterTypes.CheckboxGroup,
- },
- } satisfies Filters;
-}
-
-export default new ReN();
-
-interface responseNovels {
- id: number;
- secondary_name: string;
- main_name: string;
- dir: string;
- is_licensed: boolean;
- issue_year: number;
- avg_rating: string;
- admin_rating: string;
- type: string;
- total_views: number;
- total_votes: number;
- cover_high: string;
- cover_mid: string;
- cover_low: string;
- is_yaoi: boolean;
- is_erotic: boolean;
- bookmark_type?: null;
- genres?: ItemEntity[] | null;
- img: Img;
- categories?: ItemEntity[] | null;
- rus_name?: string;
- en_name?: string;
-}
-
-interface Img {
- high?: string;
- mid?: string;
- low: string;
-}
-
-interface responseNovel {
- id: number;
- img: Img;
- secondary_name: string;
- main_name: string;
- another_name: string;
- dir: string;
- description: string;
- issue_year: number;
- avg_rating: string;
- admin_rating: string;
- count_rating: number;
- age_limit: number;
- status: ItemEntity;
- count_bookmarks: number;
- total_votes: number;
- total_views: number;
- type: ItemEntity;
- genres?: ItemEntity[] | null;
- categories?: ItemEntity[] | null;
- publishers?: PublishersEntity[] | null;
- bookmark_type?: null;
- branches?: BranchesEntity[] | null;
- count_chapters: number;
- first_chapter: FirstChapter;
- continue_reading?: null;
- is_licensed: boolean;
- newlate_id?: null;
- newlate_title?: null;
- related?: null;
- uploaded: number;
- can_post_comments: boolean;
- adaptation: Adaptation | null;
-}
-
-interface Adaptation {
- main_name: string;
- secondary_name: string;
- dir: string;
- img: string;
-}
-
-interface ItemEntity {
- id: number;
- name: string;
-}
-interface PublishersEntity {
- id: number;
- name: string;
- img: string;
- dir: string;
- tagline: string;
- type: string;
-}
-interface BranchesEntity {
- id: number;
- img: string;
- publishers?: PublishersEntity[] | null;
- subscribed: boolean;
- total_votes: number;
- count_chapters: number;
-}
-interface FirstChapter {
- id: number;
- tome: number;
- chapter: string;
-}
-
-interface responseСhapters {
- id: number;
- rated?: null;
- viewed?: null;
- is_bought?: boolean | null;
- publishers?: PublishersEntity[] | null;
- tome: number;
- index: number;
- chapter: string;
- name: string;
- price?: null | number;
- score: number;
- pub_date?: null;
- upload_date: string;
- is_paid: boolean;
-}
-
-interface responseСhapter {
- id: number;
- chapter: string;
- name: string;
- content: string;
- score: number;
- upload_date: string;
- is_paid: boolean;
- title_id: number;
- volume_id: number;
- branch_id: number;
- price?: null;
- pub_date?: null;
- index: number;
- publishers?: PublishersEntity[] | null;
- tome: number;
-}
+import { Plugin } from "@typings/plugin";
+import { FilterTypes, Filters } from "@libs/filterInputs";
+import { fetchApi, fetchFile } from "@libs/fetch";
+import { NovelStatus } from "@libs/novelStatus";
+import dayjs from "dayjs";
+
+class ReN implements Plugin.PluginBase {
+ id = "ReN";
+ name = "Renovels";
+ site = "https://renovels.org";
+ version = "1.0.0";
+ icon = "src/ru/renovels/icon.png";
+
+ async popularNovels(
+ pageNo: number,
+ { showLatestNovels, filters }: Plugin.PopularNovelsOptions,
+ ): Promise {
+ let url = this.site + "/api/search/catalog/?count=30&ordering=";
+ url += filters?.order?.value ? "-" : "";
+ url += showLatestNovels ? "chapter_date" : filters?.sort?.value || "rating";
+
+ Object.entries(filters || {}).forEach(([type, { value }]: any) => {
+ if (value instanceof Array && value.length) {
+ url += "&" + type + "=" +
+ value.join("&" + type + "=");
+ }
+ if (value?.include instanceof Array && value.include.length) {
+ url += "&" + type + "=" +
+ value.include.join("&" + type + "=");
+ }
+ if (value?.exclude instanceof Array && value.exclude.length) {
+ url += "&exclude_" + type + "=" +
+ value.exclude.join("&exclude_" + type + "=");
+ }
+ });
+
+ url += "&page=" + pageNo;
+
+ const result = await fetchApi(url);
+ const body = (await result.json()) as { content: responseNovels[] };
+
+ const novels: Plugin.NovelItem[] = body.content.map((novel) => ({
+ name: novel.main_name || novel.secondary_name,
+ cover: this.site + (novel.img.high || novel.img.mid || novel.img.low),
+ url: this.site + "/novel/" + novel.dir,
+ }));
+
+ return novels;
+ }
+
+ async parseNovelAndChapters(novelUrl: string): Promise {
+ const novelID = novelUrl.split("/")[4];
+ const result = await fetchApi(this.site + "/api/titles/" + novelID);
+ const body = (await result.json()) as { content: responseNovel };
+
+ const novel: Plugin.SourceNovel = {
+ url: novelUrl,
+ name: body.content.main_name || body.content.secondary_name || body.content.another_name,
+ summary: body.content.description,
+ cover:
+ this.site +
+ (body.content.img.high ||
+ body.content.img.mid ||
+ body.content.img.low),
+ status:
+ body.content.status.name === "Продолжается"
+ ? NovelStatus.Ongoing
+ : NovelStatus.Completed,
+ };
+
+ const tags = [body.content?.genres, body.content?.categories]
+ .flat()
+ .map((tags) => tags?.name)
+ .filter((tags) => tags);
+
+ if (tags.length) {
+ novel.genres = tags.join(",");
+ }
+
+ const all = body.content.count_chapters / 100 + 1;
+ const branch_id = body.content.branches?.[0]?.id || body.content.id;
+ const chapters: Plugin.ChapterItem[] = [];
+
+ for (let i = 0; i < all; i++) {
+ const chapterResult = await fetchApi(
+ this.site +
+ "/api/titles/chapters/?branch_id=" + branch_id +
+ "&count=100&page=" + (i + 1),
+ );
+ const volumes = (await chapterResult.json()) as {
+ content: responseСhapters[];
+ };
+
+ volumes.content.forEach((chapter) => {
+ if (!chapter.is_paid || chapter.is_bought) {
+ chapters.push({
+ name:
+ "Том " + chapter.tome +
+ " Глава " + chapter.chapter +
+ (chapter.name ? " " + chapter.name.trim() : ""),
+ url: `${this.site}/novel/${novelID}/${chapter.id}/`,
+ releaseTime: dayjs(chapter.upload_date).format("LLL"),
+ chapterNumber: chapter.index,
+ });
+ }
+ });
+ }
+
+ novel.chapters = chapters.reverse();
+ return novel;
+ }
+
+ async parseChapter(chapterUrl: string): Promise {
+ const url = this.site + "/api/titles/chapters/" + chapterUrl.split("/")[5];
+ const result = await fetchApi(url);
+ const body = (await result.json()) as { content: responseСhapter };
+
+ return body.content.content;
+ }
+
+ async searchNovels(
+ searchTerm: string,
+ pageNo: number | undefined = 1,
+ ): Promise {
+ const url = `${this.site}/api/search/?query=${searchTerm}&count=100&field=titles&page=${pageNo}`;
+ const result = await fetchApi(url);
+ const body = (await result.json()) as { content: responseNovels[] };
+ const novels: Plugin.NovelItem[] = [];
+
+ body.content.forEach((novel) =>
+ novels.push({
+ name: novel.main_name || novel.secondary_name,
+ cover: this.site + (novel.img.high || novel.img.mid || novel.img.low),
+ url: this.site + "/novel/" + novel.dir,
+ }),
+ );
+
+ return novels;
+ }
+
+ fetchImage = fetchFile;
+
+ filters = {
+ sort: {
+ label: "Сортировка",
+ value: "rating",
+ options: [
+ { label: "Рейтинг", value: "rating" },
+ { label: "Просмотры", value: "views" },
+ { label: "Лайкам", value: "votes" },
+ { label: "Дате добавления", value: "id" },
+ { label: "Дате обновления", value: "chapter_date" },
+ { label: "Количество глав", value: "count_chapters" },
+ ],
+ type: FilterTypes.Picker,
+ },
+ order: {
+ label: "Порядок",
+ value: "",
+ options: [
+ { label: "По убыванию", value: "-" },
+ { label: "По возрастанию", value: "" },
+ ],
+ type: FilterTypes.Picker,
+ },
+ genres: {
+ label: "Жанры:",
+ value: { include: [], exclude: [] },
+ options: [
+ { label: "Боевик", value: "112" },
+ { label: "Война", value: "123" },
+ { label: "Детектив", value: "114" },
+ { label: "Драма", value: "125" },
+ { label: "Историческая проза", value: "115" },
+ { label: "ЛитРПГ", value: "109" },
+ { label: "Любовные романы", value: "116" },
+ { label: "Мистика", value: "103" },
+ { label: "Научная фантастика", value: "121" },
+ { label: "Повседневность", value: "128" },
+ { label: "Подростковая проза", value: "113" },
+ { label: "Политический роман", value: "119" },
+ { label: "Попаданцы", value: "108" },
+ { label: "Поэзия", value: "105" },
+ { label: "Разное", value: "111" },
+ { label: "РеалРПГ", value: "117" },
+ { label: "Романтика", value: "126" },
+ { label: "Современная проза", value: "102" },
+ { label: "Современная фантастика", value: "127" },
+ { label: "Спорт", value: "122" },
+ { label: "Трагедия", value: "129" },
+ { label: "Триллер", value: "110" },
+ { label: "Триллер и саспенс", value: "124" },
+ { label: "Ужасы", value: "106" },
+ { label: "Фантастика", value: "101" },
+ { label: "Фанфик", value: "107" },
+ { label: "Фьюжн роман", value: "120" },
+ { label: "Фэнтези", value: "100" },
+ { label: "Эротика", value: "118" },
+ { label: "Юмор", value: "104" },
+ ],
+ type: FilterTypes.ExcludableCheckboxGroup,
+ },
+ categories: {
+ label: "Тэги:",
+ value: { include: [], exclude: [] },
+ options: [
+ { label: "[Награжденная работа]", value: "648" },
+ { label: "18+", value: "423" },
+ { label: "Абьюзеры", value: "663" },
+ { label: "Авантюристы", value: "436" },
+ { label: "Автоматоны", value: "593" },
+ { label: "Агрессивные персонажи", value: "502" },
+ { label: "Ад", value: "569" },
+ { label: "Адаптация в радиопостановку", value: "581" },
+ { label: "Академия", value: "153" },
+ { label: "Актеры озвучки", value: "627" },
+ { label: "Активный главный герой", value: "251" },
+ { label: "Алхимия", value: "233" },
+ { label: "Альтернативная история", value: "147" },
+ { label: "Альтернативный мир", value: "156" },
+ { label: "Амнезия/Потеря памяти", value: "344" },
+ { label: "Анабиоз", value: "685" },
+ { label: "Ангелы", value: "183" },
+ { label: "Андрогинные персонажи", value: "321" },
+ { label: "Андроиды", value: "203" },
+ { label: "Анти-магия", value: "533" },
+ { label: "Антигерой", value: "432" },
+ { label: "Антикварный магазин", value: "623" },
+ { label: "Антисоциальный главный герой", value: "613" },
+ { label: "Антиутопия", value: "142" },
+ { label: "Апатичный протагонист", value: "157" },
+ { label: "Апокалипсис", value: "402" },
+ { label: "Аранжированный брак", value: "375" },
+ { label: "Армия", value: "639" },
+ { label: "Артефакты", value: "234" },
+ { label: "Артисты", value: "523" },
+ { label: "Банды", value: "630" },
+ { label: "БДСМ", value: "699" },
+ { label: "Бедный главный герой", value: "398" },
+ { label: "Безжалостный главный герой", value: "261" },
+ { label: "Беззаботный главный герой", value: "438" },
+ { label: "Безусловная любовь", value: "679" },
+ { label: "Беременность", value: "250" },
+ { label: "Бесполый главный герой", value: "325" },
+ { label: "Бессмертные", value: "368" },
+ { label: "Бесстрашный протагонист", value: "656" },
+ { label: "Бесстыдный главный герой", value: "352" },
+ { label: "Бесчестный главный герой", value: "716" },
+ { label: "Библиотека", value: "428" },
+ { label: "Бизнес-литература", value: "121" },
+ { label: "Бизнесмен", value: "769" },
+ { label: "Биочип", value: "238" },
+ { label: "Бисексуальный главный герой", value: "773" },
+ { label: "Близнецы", value: "263" },
+ { label: "Боги", value: "317" },
+ { label: "Богини", value: "439" },
+ { label: "Боевая академия", value: "450" },
+ { label: "Боевая фантастика", value: "149" },
+ { label: "Боевое фэнтези", value: "104" },
+ { label: "Боевые духи", value: "433" },
+ { label: "Боевые соревнования", value: "493" },
+ { label: "Божественная защита", value: "421" },
+ { label: "Божественные силы", value: "327" },
+ { label: "Борьба за власть", value: "599" },
+ { label: "Брак", value: "446" },
+ { label: "Брак по расчету", value: "188" },
+ { label: "Братский комплекс", value: "159" },
+ { label: "Братство", value: "487" },
+ { label: "Братья и сестры", value: "577" },
+ { label: "Буддизм", value: "745" },
+ { label: "Быстрая культивация", value: "366" },
+ { label: "Быстрообучаемый", value: "324" },
+ { label: "Валькирии", value: "692" },
+ { label: "Вампиры", value: "360" },
+ { label: "Ваншот", value: "702" },
+ { label: "Ведьмы", value: "281" },
+ { label: "Вежливый главный герой", value: "379" },
+ { label: "Верные подчиненные", value: "328" },
+ { label: "Взрослый главный герой", value: "295" },
+ { label: "Видит то, чего не видят другие", value: "671" },
+ { label: "Виртуальная реальность", value: "401" },
+ { label: "Владелец магазина", value: "681" },
+ { label: "Внезапная сила", value: "455" },
+ { label: "Внезапное богатство", value: "765" },
+ { label: "Внешний вид отличается от факт", value: "419" },
+ { label: "Военные Летописи", value: "743" },
+ { label: "Возвращение из другого мира", value: "696" },
+ { label: "Войны", value: "181" },
+ { label: "Вокалоид", value: "701" },
+ { label: "Волшебники/Волшебницы", value: "539" },
+ { label: "Волшебные звери", value: "308" },
+ { label: "Воображаемый друг", value: "651" },
+ { label: "Воры", value: "414" },
+ { label: "Воскрешение", value: "199" },
+ { label: "Враги становятся возлюбленными", value: "498" },
+ { label: "Враги становятся союзниками", value: "562" },
+ { label: "Врата в другой мир", value: "609" },
+ { label: "Врачи", value: "376" },
+ { label: "Временной парадокс", value: "275" },
+ { label: "Всемогущий главный герой", value: "169" },
+ { label: "Вторжение на землю", value: "198" },
+ { label: "Второй шанс", value: "231" },
+ { label: "Вуайеризм", value: "790" },
+ { label: "Выживание", value: "380" },
+ { label: "Высокомерные персонажи", value: "361" },
+ { label: "Гадание", value: "595" },
+ { label: "Гарем рабов", value: "777" },
+ { label: "Гг - женщина", value: "186" },
+ { label: "Гг - мужчина", value: "166" },
+ { label: "Гг силен с самого начала", value: "171" },
+ { label: "Геймеры", value: "392" },
+ { label: "Генералы", value: "326" },
+ { label: "Генетические модификации", value: "657" },
+ { label: "Гениальный главный герой", value: "617" },
+ { label: "Герои", value: "285" },
+ { label: "Героиня — сорванец", value: "583" },
+ { label: "Героическая фантастика", value: "140" },
+ { label: "Героическое фэнтези", value: "107" },
+ { label: "Герой влюбляется первым", value: "187" },
+ { label: "Гетерохромия", value: "570" },
+ { label: "Гильдии", value: "411" },
+ { label: "Гипнотизм", value: "755" },
+ { label: "Главный герой — бог", value: "547" },
+ { label: "Главный герой — гуманоид", value: "636" },
+ { label: "Главный герой — наполовину чел", value: "445" },
+ { label: "Главный герой — отец", value: "792" },
+ { label: "Главный герой — раб", value: "780" },
+ { label: "Главный герой — ребенок", value: "488" },
+ { label: "Главный герой — рубака", value: "476" },
+ { label: "Главный герой влюбляется первы", value: "683" },
+ { label: "Главный герой играет роль", value: "472" },
+ { label: "Главный герой носит очки", value: "672" },
+ { label: "Главный герой пацифист", value: "698" },
+ { label: "Гладиаторы", value: "603" },
+ { label: "Глуповатый главный герой", value: "385" },
+ { label: "Гоблины", value: "586" },
+ { label: "Големы", value: "620" },
+ { label: "Гомункул", value: "789" },
+ { label: "Горничные", value: "459" },
+ { label: "Городское фэнтези", value: "105" },
+ { label: "Госпиталь", value: "800" },
+ { label: "Готовка", value: "302" },
+ { label: "Гриндинг", value: "393" },
+ { label: "Дао Компаньон", value: "462" },
+ { label: "Даосизм", value: "760" },
+ { label: "Дварфы", value: "323" },
+ { label: "Двойная личность", value: "642" },
+ { label: "Двойник", value: "601" },
+ { label: "Дворецкий", value: "660" },
+ { label: "Дворяне", value: "168" },
+ { label: "Дворянство/Аристократия", value: "437" },
+ { label: "Девушки-монстры", value: "669" },
+ { label: "Демоническая техника культивац", value: "722" },
+ { label: "Демоны", value: "152" },
+ { label: "Денежный долг", value: "783" },
+ { label: "Депрессия", value: "555" },
+ { label: "Детектив", value: "116" },
+ { label: "Детективы", value: "612" },
+ { label: "Детская литература", value: "123" },
+ { label: "Дискриминация", value: "162" },
+ { label: "Добыча денег в приоритете", value: "396" },
+ { label: "Документальная проза", value: "122" },
+ { label: "Долгая разлука", value: "307" },
+ { label: "Домашние дела", value: "290" },
+ { label: "Домогательство", value: "470" },
+ { label: "Драконы", value: "303" },
+ { label: "Драконьи всадники", value: "607" },
+ { label: "Древние времена", value: "221" },
+ { label: "Древний Китай", value: "374" },
+ { label: "Дружба", value: "217" },
+ { label: "Друзья детства", value: "282" },
+ { label: "Друзья становятся врагами", value: "567" },
+ { label: "Друиды", value: "497" },
+ { label: "Дух лисы", value: "784" },
+ { label: "Духи/призраки", value: "172" },
+ { label: "Духовный советник", value: "435" },
+ { label: "Душевность", value: "633" },
+ { label: "Души", value: "254" },
+ { label: "Европейская атмосфера", value: "521" },
+ { label: "Ёкаи", value: "575" },
+ { label: "Есть аниме-адаптация", value: "154" },
+ { label: "Есть видеоигра по мотивам", value: "552" },
+ { label: "Есть манга", value: "155" },
+ { label: "Есть манхва-адаптация", value: "517" },
+ { label: "Есть маньхуа-адаптация", value: "388" },
+ { label: "Есть сериал-адаптация", value: "492" },
+ { label: "Есть фильм", value: "173" },
+ { label: "Женища-наставник", value: "505" },
+ { label: "Жесткая, двуличная личность", value: "346" },
+ { label: "Жестокие персонажи", value: "503" },
+ { label: "Жестокое обращение с ребенком", value: "654" },
+ { label: "Жестокость", value: "245" },
+ { label: "Животноводство", value: "754" },
+ { label: "Животные черты", value: "528" },
+ { label: "Жизнь в квартире", value: "606" },
+ { label: "Жрицы", value: "615" },
+ { label: "Заботливый главный герой", value: "288" },
+ { label: "Забывчивый главный герой", value: "628" },
+ { label: "Заговоры", value: "289" },
+ { label: "Закалка тела", value: "362" },
+ { label: "Законники", value: "756" },
+ { label: "Замкнутый главный герой", value: "589" },
+ { label: "Запечатанная сила", value: "430" },
+ { label: "Застенчивые персонажи", value: "508" },
+ { label: "Звери", value: "237" },
+ { label: "Звери-компаньоны", value: "301" },
+ { label: "Злой протагонист", value: "243" },
+ { label: "Злые боги", value: "504" },
+ { label: "Злые организации", value: "563" },
+ { label: "Злые религии", value: "734" },
+ { label: "Знаменитости", value: "473" },
+ { label: "Знаменитый главный герой", value: "531" },
+ { label: "Знания современного мира", value: "297" },
+ { label: "Зомби", value: "409" },
+ { label: "Игра на выживание", value: "274" },
+ { label: "Игривый протагонист", value: "717" },
+ { label: "Игровая система рейтинга", value: "391" },
+ { label: "Игровые элементы", value: "266" },
+ { label: "Игрушки (18+)", value: "676" },
+ { label: "Из грязи в князи", value: "416" },
+ { label: "Из женщины в мужчину", value: "709" },
+ { label: "Из мужчины в женщину", value: "715" },
+ { label: "Из полного в худого", value: "767" },
+ { label: "Из слабого в сильного", value: "202" },
+ { label: "Извращенный главный герой", value: "434" },
+ { label: "Изгои", value: "534" },
+ { label: "Изменение расы", value: "664" },
+ { label: "Изменения внешнего вида", value: "300" },
+ { label: "Изменения личности", value: "219" },
+ { label: "Изнасилование", value: "229" },
+ { label: "Изображения жестокости", value: "355" },
+ { label: "ИИ", value: "235" },
+ { label: "Империи", value: "748" },
+ { label: "Инвалидность", value: "684" },
+ { label: "Индустриализация", value: "292" },
+ { label: "Инженер", value: "163" },
+ { label: "Инцест", value: "525" },
+ { label: "Искусственный интеллект", value: "236" },
+ { label: "Исследования", value: "670" },
+ { label: "Историческая проза", value: "119" },
+ { label: "Исторические приключения", value: "120" },
+ { label: "Исторический детектив", value: "117" },
+ { label: "Исторический любовный роман", value: "138" },
+ { label: "Историческое фэнтези", value: "110" },
+ { label: "Каннибализм", value: "456" },
+ { label: "Карточные игры", value: "682" },
+ { label: "Киберпанк", value: "141" },
+ { label: "Киберспорт", value: "686" },
+ { label: "Кланы", value: "796" },
+ { label: "Класс безработного", value: "735" },
+ { label: "Клоны", value: "447" },
+ { label: "Клубы", value: "216" },
+ { label: "Книги", value: "427" },
+ { label: "Книги навыков", value: "400" },
+ { label: "Книжный червь", value: "519" },
+ { label: "Коварство", value: "230" },
+ { label: "Коллеги", value: "704" },
+ { label: "Колледж/Университет", value: "726" },
+ { label: "Кома", value: "776" },
+ { label: "Командная работа", value: "496" },
+ { label: "Комедийный оттенок", value: "582" },
+ { label: "Комплекс неполноценности", value: "550" },
+ { label: "Комплекс семейных отношений", value: "223" },
+ { label: "Конкуренция", value: "746" },
+ { label: "Контроль разума/сознания", value: "357" },
+ { label: "Копейщик", value: "425" },
+ { label: "Королевская битва", value: "797" },
+ { label: "Королевская власть", value: "178" },
+ { label: "Королевства", value: "259" },
+ { label: "Короткий любовный роман", value: "136" },
+ { label: "Коррупция", value: "457" },
+ { label: "Космическая фантастика", value: "146" },
+ { label: "Космические войны", value: "697" },
+ { label: "Красивый герой", value: "226" },
+ { label: "Крафт", value: "377" },
+ { label: "Кризис личности", value: "640" },
+ { label: "Кругосветное путешествие", value: "353" },
+ { label: "Кудере", value: "506" },
+ { label: "Кузены", value: "718" },
+ { label: "Кузнец", value: "518" },
+ { label: "Кукловоды", value: "501" },
+ { label: "Куклы/марионетки", value: "624" },
+ { label: "Культивация", value: "241" },
+ { label: "Куннилингус", value: "667" },
+ { label: "Легенды", value: "500" },
+ { label: "Легкая жизнь", value: "644" },
+ { label: "Ленивый главный герой", value: "621" },
+ { label: "Лидерство", value: "494" },
+ { label: "Лоли", value: "213" },
+ { label: "Лотерея", value: "477" },
+ { label: "Любовное фэнтези", value: "135" },
+ { label: "Любовный треугольник", value: "218" },
+ { label: "Любовь детства", value: "560" },
+ { label: "Любовь с первого взгляда", value: "737" },
+ { label: "Магические надписи", value: "453" },
+ { label: "Магические печати", value: "369" },
+ { label: "Магические технологии", value: "440" },
+ { label: "Магия", value: "165" },
+ { label: "Магия призыва", value: "418" },
+ { label: "Мазохистские персонажи", value: "688" },
+ { label: "Манипулятивные персонажи", value: "249" },
+ { label: "Мания", value: "212" },
+ { label: "Мастер на все руки", value: "466" },
+ { label: "Мастурбация", value: "788" },
+ { label: "Махо-сёдзё", value: "556" },
+ { label: "Медицинские знания", value: "507" },
+ { label: "Медленная романтическая линия", value: "232" },
+ { label: "Медленное развитие на старте", value: "694" },
+ { label: "Межпространственные путешестви", value: "404" },
+ { label: "Менеджмент", value: "294" },
+ { label: "Мертвый главный герой", value: "761" },
+ { label: "Месть", value: "209" },
+ { label: "Метаморфы", value: "335" },
+ { label: "Меч и магия", value: "180" },
+ { label: "Мечник", value: "647" },
+ { label: "Мечты", value: "738" },
+ { label: "Милая история", value: "725" },
+ { label: "Милое дитя", value: "637" },
+ { label: "Милый главный герой", value: "714" },
+ { label: "Мировое дерево", value: "463" },
+ { label: "Мистика", value: "151" },
+ { label: "Мистический ореол вокруг семьи", value: "483" },
+ { label: "Мифические звери", value: "491" },
+ { label: "Мифология", value: "530" },
+ { label: "Младшие братья", value: "785" },
+ { label: "Младшие сестры", value: "527" },
+ { label: "ММОРПГ (ЛитРПГ)", value: "395" },
+ { label: "Множество перемещенных людей", value: "549" },
+ { label: "Множество реальностей", value: "370" },
+ { label: "Множество реинкарнированных лю", value: "330" },
+ { label: "Модели", value: "678" },
+ { label: "Молчаливый персонаж", value: "721" },
+ { label: "Монстры", value: "192" },
+ { label: "Мужская гей-пара", value: "706" },
+ { label: "Мужчина-яндере", value: "267" },
+ { label: "Музыка", value: "635" },
+ { label: "Музыкальные группы", value: "634" },
+ { label: "Мутации", value: "693" },
+ { label: "Мутированные существа", value: "405" },
+ { label: "Навык кражи", value: "662" },
+ { label: "Навязчивая любовь", value: "206" },
+ { label: "Наемники", value: "412" },
+ { label: "Назойливый возлюбленный", value: "561" },
+ { label: "Наивный главный герой", value: "189" },
+ { label: "Наркотики", value: "689" },
+ { label: "Нарциссический главный герой", value: "532" },
+ { label: "Насилие сексуального характера", value: "774" },
+ { label: "Наследование", value: "452" },
+ { label: "Научная фантастика", value: "144" },
+ { label: "Национализм", value: "406" },
+ { label: "Не блещущий внешне главный гер", value: "415" },
+ { label: "Не родные братья и сестры", value: "526" },
+ { label: "Небеса", value: "568" },
+ { label: "Небесное испытание", value: "367" },
+ { label: "Негуманоидный главный герой", value: "659" },
+ { label: "Недоверчивый главный герой", value: "546" },
+ { label: "Недооцененный главный герой", value: "258" },
+ { label: "Недоразумения", value: "309" },
+ { label: "Неизлечимая болезнь", value: "196" },
+ { label: "Некромант", value: "397" },
+ { label: "Нелинейная история", value: "269" },
+ { label: "Ненавистный главный герой", value: "548" },
+ { label: "Ненадежный рассказчик", value: "277" },
+ { label: "Нерезиденты", value: "772" },
+ { label: "Нерешительный главный герой", value: "744" },
+ { label: "Несерьезный главный герой", value: "384" },
+ { label: "Несколько временных линий", value: "576" },
+ { label: "Несколько гг", value: "268" },
+ { label: "Несколько главных героев", value: "537" },
+ { label: "Несколько идентичностей", value: "652" },
+ { label: "Несколько личностей", value: "536" },
+ { label: "Нетораре", value: "732" },
+ { label: "Нетори", value: "514" },
+ { label: "Неудачливый главный герой", value: "618" },
+ { label: "Ниндзя", value: "441" },
+ { label: "Новелла", value: "103" },
+ { label: "Обещание из детства", value: "742" },
+ { label: "Обманщик", value: "485" },
+ { label: "Обмен телами", value: "214" },
+ { label: "Обнаженка", value: "490" },
+ { label: "Обольщение", value: "731" },
+ { label: "Оборотни", value: "661" },
+ { label: "Обратный гарем", value: "351" },
+ { label: "Общество монстров", value: "329" },
+ { label: "Обязательство", value: "602" },
+ { label: "Огнестрельное оружие", value: "291" },
+ { label: "Ограниченное время жизни", value: "194" },
+ { label: "Одержимость", value: "512" },
+ { label: "Одинокий главный герой", value: "394" },
+ { label: "Одиночество", value: "306" },
+ { label: "Одиночное проживание", value: "313" },
+ { label: "Околосмертные переживания", value: "759" },
+ { label: "Оммёдзи", value: "597" },
+ { label: "Омоложение", value: "338" },
+ { label: "Организованная преступность", value: "540" },
+ { label: "Оргия", value: "775" },
+ { label: "Орки", value: "331" },
+ { label: "Освоение навыков", value: "336" },
+ { label: "Основано на аниме", value: "605" },
+ { label: "Основано на видео игре", value: "720" },
+ { label: "Основано на визуальной новелле", value: "793" },
+ { label: "Основано на песне", value: "700" },
+ { label: "Основано на фильме", value: "604" },
+ { label: "Осторожный главный герой", value: "240" },
+ { label: "Отаку", value: "571" },
+ { label: "Открытый космос", value: "264" },
+ { label: "Отношения в сети", value: "727" },
+ { label: "Отношения между людьми и нелюд", value: "311" },
+ { label: "Отношения на расстоянии", value: "791" },
+ { label: "Отношения Сенпай-Коухай", value: "572" },
+ { label: "Отношения ученика и учителя", value: "515" },
+ { label: "Отношения учитель-ученик", value: "429" },
+ { label: "Отношения хозяин-слуга", value: "312" },
+ { label: "Отомэ игра", value: "733" },
+ { label: "Отсутствие здравого смысла", value: "645" },
+ { label: "Отсутствие родителей", value: "625" },
+ { label: "Офисный роман", value: "707" },
+ { label: "Официанты", value: "703" },
+ { label: "Охотники", value: "378" },
+ { label: "Очаровательный главный герой", value: "687" },
+ { label: "Падшее дворянство", value: "655" },
+ { label: "Падшие ангелы", value: "565" },
+ { label: "Пайзури", value: "665" },
+ { label: "Паразиты", value: "591" },
+ { label: "Параллельные миры", value: "207" },
+ { label: "Парк", value: "265" },
+ { label: "Парк развлечений", value: "632" },
+ { label: "Пародия", value: "407" },
+ { label: "Певцы/Певицы", value: "739" },
+ { label: "Первая любовь", value: "729" },
+ { label: "Первоисточник новеллы — манга", value: "611" },
+ { label: "Первый раз", value: "787" },
+ { label: "Перемещение в игровой мир", value: "588" },
+ { label: "Перемещение в иной мир", value: "750" },
+ { label: "Перерождение в ином мире", value: "751" },
+ { label: "Переселение души/трансмиграция", value: "257" },
+ { label: "Персонаж использует щит", value: "666" },
+ { label: "Петля времени", value: "200" },
+ { label: "Пираты", value: "771" },
+ { label: "Писатели", value: "482" },
+ { label: "Питомцы", value: "349" },
+ { label: "Племенное общество", value: "381" },
+ { label: "Повелитель демонов", value: "283" },
+ { label: "Подземелья", value: "322" },
+ { label: "Подростковая проза", value: "114" },
+ { label: "Пожелания", value: "278" },
+ { label: "Познание Дао", value: "443" },
+ { label: "Покинутое дитя", value: "590" },
+ { label: "Полигамия", value: "386" },
+ { label: "Политика", value: "170" },
+ { label: "Политический роман", value: "133" },
+ { label: "Полиция", value: "764" },
+ { label: "Полулюди", value: "420" },
+ { label: "Популярный любовный интерес", value: "342" },
+ { label: "Постапокалипсис", value: "145" },
+ { label: "Постапокалиптика", value: "184" },
+ { label: "Потерянные цивилизации", value: "749" },
+ { label: "Похищения людей", value: "723" },
+ { label: "Поэзия", value: "111" },
+ { label: "Правонарушители", value: "713" },
+ { label: "Прагматичный главный герой", value: "592" },
+ { label: "Преданный любовный интерес", value: "225" },
+ { label: "Предательство", value: "222" },
+ { label: "Предвидение", value: "177" },
+ { label: "Прекрасная героиня", value: "158" },
+ { label: "Преступники", value: "736" },
+ { label: "Преступность", value: "204" },
+ { label: "Призванный герой", value: "262" },
+ { label: "Призраки", value: "176" },
+ { label: "Принуждение к отношениям", value: "643" },
+ { label: "Принцессы", value: "795" },
+ { label: "Притворная пара", value: "641" },
+ { label: "Причудливые персонажи", value: "387" },
+ { label: "Пришельцы/инопланетяне", value: "197" },
+ { label: "Программист", value: "691" },
+ { label: "Проклятия", value: "174" },
+ { label: "Промывание мозгов", value: "578" },
+ { label: "Пропуск времени", value: "256" },
+ { label: "Пророчества", value: "499" },
+ { label: "Проститутки", value: "786" },
+ { label: "Прошлое играет большую роль", value: "320" },
+ { label: "Прыжки между мирами", value: "741" },
+ { label: "Психические силы", value: "359" },
+ { label: "Психопаты", value: "270" },
+ { label: "Публицистика", value: "124" },
+ { label: "Путешествие во времени", value: "201" },
+ { label: "Пытка", value: "280" },
+ { label: "Рабы", value: "778" },
+ { label: "Развитие личности", value: "125" },
+ { label: "Развод", value: "758" },
+ { label: "Разумные предметы", value: "286" },
+ { label: "Расизм", value: "408" },
+ { label: "Рассказ", value: "185" },
+ { label: "Расторжения помолвки", value: "343" },
+ { label: "Расы зооморфов", value: "315" },
+ { label: "Реализм", value: "246" },
+ { label: "Ревность", value: "730" },
+ { label: "Редакторы", value: "705" },
+ { label: "Реинкарнация", value: "372" },
+ { label: "Реинкарнация в монстра", value: "310" },
+ { label: "Реинкарнация в объект", value: "711" },
+ { label: "Религии", value: "616" },
+ { label: "Репортеры", value: "781" },
+ { label: "Ресторан", value: "680" },
+ { label: "Решительный главный герой", value: "242" },
+ { label: "Робкий главный герой", value: "763" },
+ { label: "Родитель одиночка", value: "708" },
+ { label: "Родительский комплекс", value: "587" },
+ { label: "Родословная", value: "239" },
+ { label: "Романтическая эротика", value: "132" },
+ { label: "Романтический подсюжет", value: "271" },
+ { label: "Рост персонажа", value: "215" },
+ { label: "Рыцари", value: "260" },
+ { label: "Садистские персонажи", value: "674" },
+ { label: "Самоотверженный главный герой", value: "747" },
+ { label: "Самурай", value: "677" },
+ { label: "Сборник коротких историй", value: "520" },
+ { label: "Связанные сюжетные линии", value: "535" },
+ { label: "Святые", value: "752" },
+ { label: "Священники", value: "413" },
+ { label: "Сдержанный главный герой", value: "762" },
+ { label: "Секретные организации", value: "417" },
+ { label: "Секреты", value: "626" },
+ { label: "Секс рабы", value: "779" },
+ { label: "Семейный конфликт", value: "757" },
+ { label: "Семь добродетелей", value: "334" },
+ { label: "Семь смертных грехов", value: "253" },
+ { label: "Семья", value: "347" },
+ { label: "Сёнэн-ай подсюжет", value: "690" },
+ { label: "Серийные убийцы", value: "557" },
+ { label: "Сестринский комплекс", value: "558" },
+ { label: "Сила духа", value: "373" },
+ { label: "Сила, требующая платы за польз", value: "579" },
+ { label: "Сильная пара", value: "228" },
+ { label: "Сильный в сильнейшего", value: "442" },
+ { label: "Сильный любовный интерес", value: "273" },
+ { label: "Синдром восьмиклассника", value: "211" },
+ { label: "Сироты", value: "319" },
+ { label: "Система уровней", value: "305" },
+ { label: "Системный администратор", value: "538" },
+ { label: "Сказка", value: "126" },
+ { label: "Скрытие истинной личности", value: "451" },
+ { label: "Скрытие истинных способностей", value: "348" },
+ { label: "Скрытный главный герой", value: "252" },
+ { label: "Скрытые способности", value: "247" },
+ { label: "Скульпторы", value: "448" },
+ { label: "Слабо выраженная романтическая", value: "318" },
+ { label: "Слабый главный герой", value: "298" },
+ { label: "Слепой главный герой", value: "794" },
+ { label: "Слуги", value: "333" },
+ { label: "Слэш", value: "131" },
+ { label: "Смерть", value: "175" },
+ { label: "Смерть близких", value: "444" },
+ { label: "Собственнические персонажи", value: "227" },
+ { label: "Современная проза", value: "150" },
+ { label: "Современность", value: "167" },
+ { label: "Современный любовный роман", value: "137" },
+ { label: "Сожительство", value: "544" },
+ { label: "Создание армии", value: "287" },
+ { label: "Создание артефактов", value: "382" },
+ { label: "Создание клана", value: "513" },
+ { label: "Создание королевства", value: "293" },
+ { label: "Создание навыков", value: "337" },
+ { label: "Создание секты", value: "469" },
+ { label: "Солдаты/военные", value: "193" },
+ { label: "Сон", value: "622" },
+ { label: "Состоятельные персонажи", value: "190" },
+ { label: "Социальная иерархия по силе", value: "255" },
+ { label: "Социальная фантастика", value: "148" },
+ { label: "Социальные изгои", value: "542" },
+ { label: "Спасение мира", value: "638" },
+ { label: "Специальные способности", value: "179" },
+ { label: "Спокойный главный герой", value: "160" },
+ { label: "Справедливый главный герой", value: "719" },
+ { label: "Средневековье", value: "296" },
+ { label: "Ссорящаяся пара", value: "383" },
+ { label: "Сталкеры", value: "710" },
+ { label: "Старение", value: "299" },
+ { label: "Стимпанк", value: "139" },
+ { label: "Стоические персонажи", value: "509" },
+ { label: "Стокгольмский синдром", value: "675" },
+ { label: "Стратег", value: "495" },
+ { label: "Стратегические битвы", value: "272" },
+ { label: "Стратегия", value: "798" },
+ { label: "Стрелки", value: "522" },
+ { label: "Стрельба из лука", value: "461" },
+ { label: "Студенческий совет", value: "551" },
+ { label: "Судьба", value: "364" },
+ { label: "Суккубы", value: "545" },
+ { label: "Супер герои", value: "799" },
+ { label: "Суровая подготовка", value: "356" },
+ { label: "Таинственная болезнь", value: "195" },
+ { label: "Таинственное прошлое", value: "358" },
+ { label: "Тайная личность", value: "399" },
+ { label: "Тайные отношения", value: "768" },
+ { label: "Танцоры", value: "782" },
+ { label: "Телохранители", value: "516" },
+ { label: "Темное фэнтези", value: "106" },
+ { label: "Тентакли", value: "712" },
+ { label: "Террористы", value: "574" },
+ { label: "Технологический разрыв", value: "658" },
+ { label: "Тихие персонажи", value: "600" },
+ { label: "Толстый главный герой", value: "389" },
+ { label: "Торговцы", value: "489" },
+ { label: "Травля/буллинг", value: "210" },
+ { label: "Травник", value: "724" },
+ { label: "Трагическое прошлое", value: "276" },
+ { label: "Трансплантация воспоминаний", value: "449" },
+ { label: "Триллер", value: "134" },
+ { label: "Трудолюбивый главный герой", value: "164" },
+ { label: "Тюрьма", value: "541" },
+ { label: "Убийства", value: "205" },
+ { label: "Убийцы", value: "345" },
+ { label: "Убийцы драконов", value: "646" },
+ { label: "Уверенный главный герой", value: "363" },
+ { label: "Удачливый главный герой", value: "478" },
+ { label: "Ужасы", value: "112" },
+ { label: "Укротитель монстров", value: "422" },
+ { label: "Умения из прошлой жизни", value: "371" },
+ { label: "Умная пара", value: "554" },
+ { label: "Умный главный герой", value: "161" },
+ { label: "Уникальная техника Культивации", value: "350" },
+ { label: "Уникальное оружие", value: "426" },
+ { label: "Управление бизнесом", value: "403" },
+ { label: "Управление временем", value: "279" },
+ { label: "Управление кровью", value: "753" },
+ { label: "Упрямый главный герой", value: "695" },
+ { label: "Уродливый главный герой", value: "766" },
+ { label: "Ускоренный рост", value: "390" },
+ { label: "Усыновленные дети", value: "543" },
+ { label: "Усыновленный главный герой", value: "486" },
+ { label: "Уход за детьми", value: "474" },
+ { label: "Учителя", value: "431" },
+ { label: "Фамильяры", value: "596" },
+ { label: "Фанатизм", value: "650" },
+ { label: "Фантастические существа", value: "410" },
+ { label: "Фантастический детектив", value: "115" },
+ { label: "Фанфик", value: "113" },
+ { label: "Фанфикшн", value: "464" },
+ { label: "Фармацевт", value: "728" },
+ { label: "Фарминг", value: "458" },
+ { label: "Феи", value: "316" },
+ { label: "Фелляция", value: "631" },
+ { label: "Фемслэш", value: "127" },
+ { label: "Фениксы", value: "454" },
+ { label: "Фетиш груди", value: "559" },
+ { label: "Философия", value: "208" },
+ { label: "Фильмы", value: "479" },
+ { label: "Флэшбэки", value: "585" },
+ { label: "Фобии", value: "220" },
+ { label: "Фольклор", value: "529" },
+ { label: "Футанари", value: "619" },
+ { label: "Футуристический сеттинг", value: "460" },
+ { label: "Фэнтези мир", value: "244" },
+ { label: "Хакеры", value: "475" },
+ { label: "Харизматический герой", value: "467" },
+ { label: "Хикикомори/Затворники", value: "524" },
+ { label: "Хитроумный главный герой", value: "224" },
+ { label: "Хозяин подземелий", value: "608" },
+ { label: "Холодный главный герой", value: "354" },
+ { label: "Хорошие отношения с семьей", value: "566" },
+ { label: "Хранители могил", value: "191" },
+ { label: "Целители", value: "465" },
+ { label: "Цзянши", value: "740" },
+ { label: "Цундэрэ", value: "510" },
+ { label: "Чаты", value: "629" },
+ { label: "Человеческое оружие", value: "580" },
+ { label: "Честный главный герой", value: "341" },
+ { label: "Читы", value: "339" },
+ { label: "Шантаж", value: "584" },
+ { label: "Шеф-повар", value: "340" },
+ { label: "Шикигами", value: "598" },
+ { label: "Школа только для девочек", value: "668" },
+ { label: "Шота", value: "573" },
+ { label: "Шоу-бизнес", value: "481" },
+ { label: "Шпионский детектив", value: "118" },
+ { label: "Шпионы", value: "614" },
+ { label: "Эволюция", value: "304" },
+ { label: "Эгоистичный главный герой", value: "594" },
+ { label: "Эйдетическая память", value: "468" },
+ { label: "Экзорсизм", value: "564" },
+ { label: "Экономика", value: "553" },
+ { label: "Эксгибиционизм", value: "673" },
+ { label: "Эксперименты с людьми", value: "248" },
+ { label: "Элементальная магия", value: "471" },
+ { label: "Эльфы", value: "284" },
+ { label: "Эмоционально слабый гг", value: "770" },
+ { label: "Эпизодический", value: "649" },
+ { label: "Эпическое фэнтези", value: "109" },
+ { label: "Эротическая фантастика", value: "129" },
+ { label: "Эротический фанфик", value: "128" },
+ { label: "Эротическое фэнтези", value: "130" },
+ { label: "Юмористическая фантастика", value: "143" },
+ { label: "Юмористическое фэнтези", value: "108" },
+ { label: "Юный любовный интерес", value: "511" },
+ { label: "Яды", value: "484" },
+ { label: "Языкастые персонажи", value: "480" },
+ { label: "Языковой барьер", value: "182" },
+ { label: "Яндере", value: "314" },
+ { label: "Японские силы самообороны", value: "610" },
+ { label: "Ярко выраженная романтика", value: "365" },
+ { label: "R-15 Японское возрастное огр.", value: "332" },
+ { label: "R-18", value: "424" },
+ ],
+ type: FilterTypes.ExcludableCheckboxGroup,
+ },
+ types: {
+ label: "Типы:",
+ value: [],
+ options: [
+ { label: "Авторское", value: "1" },
+ { label: "Другое", value: "7" },
+ { label: "Запад", value: "5" },
+ { label: "Китай", value: "4" },
+ { label: "Корея", value: "3" },
+ { label: "Фанфики", value: "6" },
+ { label: "Япония", value: "2" },
+ ],
+ type: FilterTypes.CheckboxGroup,
+ },
+ status: {
+ label: "Статус проекта:",
+ value: [],
+ options: [
+ { label: "Анонс", value: "4" },
+ { label: "Закончен", value: "0" },
+ { label: "Заморожен", value: "2" },
+ { label: "Лицензировано", value: "5" },
+ { label: "Нет переводчика", value: "3" },
+ { label: "Продолжается", value: "1" },
+ ],
+ type: FilterTypes.CheckboxGroup,
+ },
+ age_limit: {
+ label: "Возрастной рейтинг:",
+ value: [],
+ options: [
+ { label: "16+", value: "1" },
+ { label: "18+", value: "2" },
+ { label: "Для всех", value: "0" },
+ ],
+ type: FilterTypes.CheckboxGroup,
+ },
+ } satisfies Filters;
+}
+
+export default new ReN();
+
+interface responseNovels {
+ id: number;
+ secondary_name: string;
+ main_name: string;
+ dir: string;
+ is_licensed: boolean;
+ issue_year: number;
+ avg_rating: string;
+ admin_rating: string;
+ type: string;
+ total_views: number;
+ total_votes: number;
+ cover_high: string;
+ cover_mid: string;
+ cover_low: string;
+ is_yaoi: boolean;
+ is_erotic: boolean;
+ bookmark_type?: null;
+ genres?: ItemEntity[] | null;
+ img: Img;
+ categories?: ItemEntity[] | null;
+ rus_name?: string;
+ en_name?: string;
+}
+
+interface Img {
+ high?: string;
+ mid?: string;
+ low: string;
+}
+
+interface responseNovel {
+ id: number;
+ img: Img;
+ secondary_name: string;
+ main_name: string;
+ another_name: string;
+ dir: string;
+ description: string;
+ issue_year: number;
+ avg_rating: string;
+ admin_rating: string;
+ count_rating: number;
+ age_limit: number;
+ status: ItemEntity;
+ count_bookmarks: number;
+ total_votes: number;
+ total_views: number;
+ type: ItemEntity;
+ genres?: ItemEntity[] | null;
+ categories?: ItemEntity[] | null;
+ publishers?: PublishersEntity[] | null;
+ bookmark_type?: null;
+ branches?: BranchesEntity[] | null;
+ count_chapters: number;
+ first_chapter: FirstChapter;
+ continue_reading?: null;
+ is_licensed: boolean;
+ newlate_id?: null;
+ newlate_title?: null;
+ related?: null;
+ uploaded: number;
+ can_post_comments: boolean;
+ adaptation: Adaptation | null;
+}
+
+interface Adaptation {
+ main_name: string;
+ secondary_name: string;
+ dir: string;
+ img: string;
+}
+
+interface ItemEntity {
+ id: number;
+ name: string;
+}
+interface PublishersEntity {
+ id: number;
+ name: string;
+ img: string;
+ dir: string;
+ tagline: string;
+ type: string;
+}
+interface BranchesEntity {
+ id: number;
+ img: string;
+ publishers?: PublishersEntity[] | null;
+ subscribed: boolean;
+ total_votes: number;
+ count_chapters: number;
+}
+interface FirstChapter {
+ id: number;
+ tome: number;
+ chapter: string;
+}
+
+interface responseСhapters {
+ id: number;
+ rated?: null;
+ viewed?: null;
+ is_bought?: boolean | null;
+ publishers?: PublishersEntity[] | null;
+ tome: number;
+ index: number;
+ chapter: string;
+ name: string;
+ price?: null | number;
+ score: number;
+ pub_date?: null;
+ upload_date: string;
+ is_paid: boolean;
+}
+
+interface responseСhapter {
+ id: number;
+ chapter: string;
+ name: string;
+ content: string;
+ score: number;
+ upload_date: string;
+ is_paid: boolean;
+ title_id: number;
+ volume_id: number;
+ branch_id: number;
+ price?: null;
+ pub_date?: null;
+ index: number;
+ publishers?: PublishersEntity[] | null;
+ tome: number;
+}
diff --git a/plugins/spanish/tunovelaligera.ts b/plugins/spanish/tunovelaligera.ts
index 97e37b8..48f2508 100644
--- a/plugins/spanish/tunovelaligera.ts
+++ b/plugins/spanish/tunovelaligera.ts
@@ -1,371 +1,286 @@
-import { load as parseHTML } from "cheerio";
-import { fetchApi, fetchFile } from "@libs/fetch";
-import { FilterTypes, Filters } from "@libs/filterInputs";
-import { Plugin } from "@typings/plugin";
-import { defaultCover } from "@libs/defaultCover";
-import { NovelStatus } from "@libs/novelStatus";
-
-class TuNovelaLigera implements Plugin.PluginBase {
- id = "tunovelaligera";
- name = "TuNovelaLigera";
- icon = "src/es/tunovelaligera/icon.png";
- site = "https://tunovelaligera.com/";
- version = "1.0.0";
-
-
-
- async popularNovels(
- pageNo: number,
- { filters }: Plugin.PopularNovelsOptions
- ): Promise {
- let link = `${this.site}`;
-
- link += filters.genres.value ? `genero/` + filters.genres.value : "novelas";
-
- link += `/page/${pageNo}`;
-
- link += filters.order.value;
-
- const headers = new Headers();
- const result = await fetchApi(link, { headers });
- const body = await result.text();
-
- const loadedCheerio = parseHTML(body);
-
- const novels: Plugin.NovelItem[] = [];
-
- loadedCheerio(".page-item-detail").each((i, el) => {
- const novelName = loadedCheerio(el).find(".h5 > a").text();
- const novelCover = loadedCheerio(el).find("img").attr("src");
- const novelUrl = loadedCheerio(el).find(".h5 > a").attr("href");
-
- if (!novelUrl) return;
- const novel = {
- name: novelName,
- cover: novelCover,
- url: novelUrl,
- };
-
- novels.push(novel);
- });
-
- return novels;
- }
-
- async parseNovelAndChapters(novelUrl: string): Promise {
- const url = novelUrl;
- const headers = new Headers();
- const result = await fetchApi(url, { headers });
- const body = await result.text();
-
- let loadedCheerio = parseHTML(body);
-
- const novel: Plugin.SourceNovel = {
- url,
- chapters: [],
- };
-
- loadedCheerio(".manga-title-badges").remove();
-
- novel.name = loadedCheerio(".post-title > h1").text().trim();
-
- let novelCover = loadedCheerio(".summary_image > a > img");
-
- novel.cover =
- novelCover.attr("data-src") ||
- novelCover.attr("src") ||
- novelCover.attr("data-cfsrc") ||
- defaultCover;
-
- loadedCheerio(".post-content_item").each(function () {
- const detailName = loadedCheerio(this)
- .find(".summary-heading > h5")
- .text()
- .trim();
- const detail = loadedCheerio(this)
- .find(".summary-content")
- .text()
- .trim();
-
- switch (detailName) {
- case "Generos":
- novel.genres = detail.replace(/, /g, ",");
- break;
- case "Autores":
- novel.author = detail;
- break;
- case "Estado":
- novel.status =
- detail.includes("OnGoing") ||
- detail.includes("Updating")
- ? NovelStatus.Ongoing
- : NovelStatus.Completed;
- break;
- }
- });
-
- novel.summary = loadedCheerio("div.summary__content > p").text().trim();
-
- let chapter: Plugin.ChapterItem[] = [];
-
- const delay = (ms: number) => new Promise((res) => setTimeout(res, ms));
- let lastPage = 1;
- lastPage = +loadedCheerio(".lcp_paginator li:last").prev().text();
-
- const getChapters = async () => {
- const n = url.split("/");
- const novelName = n[4];
- const formData = new FormData();
- formData.append("action", "madara_load_more");
- formData.append("page", "0");
- formData.append("template", "html/loop/content");
- formData.append("vars[category_name]", novelName);
- formData.append("vars[posts_per_page]", "10000");
-
- const result = await fetchApi(
- `${this.site}wp-admin/admin-ajax.php`,
- {
- method: "POST",
- body: formData,
- headers,
- }
- );
- const text = await result.text();
-
- loadedCheerio = parseHTML(text);
-
- loadedCheerio(".heading").each((i, el) => {
- const chapterName = loadedCheerio(el)
- .text()
- .replace(/[\t\n]/g, "")
- .trim();
- const releaseDate = null;
- const chapterUrl =
- loadedCheerio(el).find("a").attr("href") || "";
-
- chapter.push({
- name: chapterName,
- url: chapterUrl,
- releaseTime: releaseDate,
- });
- });
- return chapter.reverse();
- };
-
- const getPageChapters = async () => {
- for (let i = 1; i <= lastPage; i++) {
- const chaptersUrl = `${novelUrl}?lcp_page0=${i}`;
- const result = await fetchApi(chaptersUrl, { headers });
- const chaptersHTML = await result.text();
-
- let chapterCheerio = parseHTML(chaptersHTML);
-
- chapterCheerio(".lcp_catlist li").each((i, el) => {
- const chapterName = chapterCheerio(el)
- .find("a")
- .text()
- .replace(/[\t\n]/g, "")
- .trim();
-
- const releaseDate = chapterCheerio(el)
- .find("span")
- .text()
- .trim();
-
- const chapterUrl =
- chapterCheerio(el).find("a").attr("href") || "";
-
- chapter.push({
- name: chapterName,
- releaseTime: releaseDate,
- url: chapterUrl,
- });
- });
- await delay(1000);
- }
- return chapter.reverse();
- };
-
- novel.chapters = await getChapters();
-
- if (!novel.chapters.length) {
- await delay(1000);
- novel.chapters = await getPageChapters();
- }
-
- return novel;
- }
-
- async parseChapter(chapterUrl: string): Promise {
- const headers = new Headers();
- const result = await fetchApi(chapterUrl);
- const body = await result.text();
-
- const loadedCheerio = parseHTML(body);
-
- loadedCheerio("#hola_siguiente").next().find("div").remove();
- const chapterText =
- loadedCheerio("#hola_siguiente").next().html() || "";
-
- return chapterText;
- }
-
- async searchNovels(
- searchTerm: string,
- pageNo?: number | undefined
- ): Promise {
- const url = `${this.site}?s=${searchTerm}&post_type=wp-manga`;
-
- const result = await fetchApi(url);
- const body = await result.text();
-
- const loadedCheerio = parseHTML(body);
-
- const novels: Plugin.NovelItem[] = [];
-
- loadedCheerio(".c-tabs-item__content").each((i, el) => {
- const novelName = loadedCheerio(el).find(".h4 > a").text();
- const novelCover = loadedCheerio(el).find("img").attr("src");
- const novelUrl = loadedCheerio(el).find(".h4 > a").attr("href");
- if (!novelUrl) return;
- novels.push({
- name: novelName,
- url: novelUrl,
- cover: novelCover,
- });
- });
-
- return novels;
- }
-
- async fetchImage(url: string): Promise {
- return await fetchFile(url);
- }
-
- filters = {
- order: {
- value: "?m_orderby=rating",
- label: "Ordenado por",
- options: [
- { label: "Lo mas reciente", value: "?m_orderby=latest" },
-
- { label: "A-Z", value: "?m_orderby=alphabet" },
-
- { label: "Clasificación", value: "?m_orderby=rating" },
-
- { label: "Trending", value: "?m_orderby=trending" },
-
- { label: "Mas visto", value: "?m_orderby=views" },
-
- { label: "Nuevo", value: "?m_orderby=new-manga" },
- ],
- type: FilterTypes.Picker,
- },
- genres: {
- value: "",
- label: "Generos",
- options: [
- { label: "None", value: "" },
- { label: "Acción", value: "accion" },
-
- { label: "Adulto", value: "adulto" },
-
- { label: "Artes Marciales", value: "artes-marciales" },
-
- { label: "Aventura", value: "aventura" },
-
- { label: "Ciencia Ficción", value: "ciencia-ficcion" },
-
- { label: "Comedia", value: "comedia" },
-
- { label: "Deportes", value: "deportes" },
-
- { label: "Drama", value: "drama" },
-
- { label: "Eastern Fantasy", value: "eastern-fantasy" },
-
- { label: "Ecchi", value: "ecchi" },
-
- { label: "FanFiction", value: "fan-fiction" },
-
- { label: "Fantasía", value: "fantasia" },
-
- { label: "Fantasía oriental", value: "fantasia-oriental" },
-
- { label: "Ficción Romántica", value: "ficcion-romantica" },
-
- { label: "Gender Bender", value: "gender-bender" },
-
- { label: "Harem", value: "harem" },
-
- { label: "Histórico", value: "historico" },
-
- { label: "Horror", value: "horror" },
-
- { label: "Josei", value: "josei" },
-
- { label: "Maduro", value: "maduro" },
-
- { label: "Mecha", value: "mecha" },
-
- { label: "Misterio", value: "misterio" },
-
- { label: "Novela China", value: "novela-china" },
-
- { label: "Novela FanFiction", value: "novela-fanfiction" },
-
- { label: "Novela Japonesa", value: "novela-japonesa" },
-
- { label: "Novela Koreana", value: "novela-koreana" },
-
- { label: "Novela ligera", value: "novela-ligera" },
-
- { label: "Novela original", value: "novela-original" },
-
- { label: "Novela Web", value: "web-novel" },
-
- { label: "Psicológico", value: "psicologico" },
-
- { label: "Realismo Mágico", value: "realismo-magico" },
-
- { label: "Recuento de vida", value: "recuento-de-vida" },
-
- { label: "Romance", value: "romance" },
-
- {
- label: "Romance contemporáneo",
- value: "romance-contemporaneo",
- },
-
- { label: "Romance Moderno", value: "romance-moderno" },
-
- { label: "Seinen", value: "seinen" },
-
- { label: "Shoujo", value: "shoujo" },
-
- { label: "Shounen", value: "shounen" },
-
- { label: "Sobrenatural", value: "sobrenatural" },
-
- { label: "Tragedia", value: "tragedia" },
-
- { label: "Vampiros", value: "vampiros" },
-
- { label: "Vida Escolar", value: "vida-escolar" },
-
- { label: "Western Fantasy", value: "western-fantasy" },
-
- { label: "Wuxia", value: "wuxia" },
-
- { label: "Xianxia", value: "xianxia" },
-
- { label: "Xuanhuan", value: "xuanhuan" },
-
- { label: "Yaoi", value: "yaoi" },
- ],
- type: FilterTypes.Picker,
- },
- } satisfies Filters;
-}
-
-export default new TuNovelaLigera();
+import { load as parseHTML } from "cheerio";
+import { fetchApi, fetchFile } from "@libs/fetch";
+import { FilterTypes, Filters } from "@libs/filterInputs";
+import { Plugin } from "@typings/plugin";
+import { defaultCover } from "@libs/defaultCover";
+import { NovelStatus } from "@libs/novelStatus";
+
+class TuNovelaLigera implements Plugin.PluginBase {
+ id = "tunovelaligera";
+ name = "TuNovelaLigera";
+ icon = "src/es/tunovelaligera/icon.png";
+ site = "https://tunovelaligera.com";
+ version = "1.0.0";
+
+ async popularNovels(
+ pageNo: number,
+ {
+ showLatestNovels,
+ filters,
+ }: Plugin.PopularNovelsOptions,
+ ): Promise {
+ let link = this.site
+
+ link += filters?.genres?.value ? "/genero" + filters.genres.value : "/novelas";
+ link += `/page/${pageNo}?m_orderby=`;
+ link += (showLatestNovels ? "latest" : filters?.order?.value || "rating");
+
+ const result = await fetchApi(link).then((res) => res.text());
+ const loadedCheerio = parseHTML(result);
+
+ const novels: Plugin.NovelItem[] = [];
+
+ loadedCheerio(".page-item-detail").each((i, el) => {
+ const name = loadedCheerio(el).find(".h5 > a").text();
+ const cover = loadedCheerio(el).find("img").attr("src");
+ const url = loadedCheerio(el).find(".h5 > a").attr("href");
+ if (!url) return;
+
+ novels.push({ name, cover, url });
+ });
+
+ return novels;
+ }
+
+ async parseNovelAndChapters(novelUrl: string): Promise {
+ const result = await fetchApi(novelUrl);
+ const body = await result.text();
+
+ let loadedCheerio = parseHTML(body);
+
+ const novel: Plugin.SourceNovel = {
+ url: novelUrl,
+ chapters: [],
+ };
+
+ loadedCheerio(".manga-title-badges").remove();
+
+ novel.name = loadedCheerio(".post-title > h1").text().trim();
+
+ let novelCover = loadedCheerio(".summary_image > a > img");
+
+ novel.cover =
+ novelCover.attr("data-src") ||
+ novelCover.attr("src") ||
+ novelCover.attr("data-cfsrc") ||
+ defaultCover;
+
+ loadedCheerio(".post-content_item").each(function () {
+ const detailName = loadedCheerio(this)
+ .find(".summary-heading > h5")
+ .text()
+ .trim();
+ const detail = loadedCheerio(this).find(".summary-content").text().trim();
+
+ switch (detailName) {
+ case "Género(s)":
+ novel.genres = detail.replace(/, /g, ",");
+ break;
+ case "Autor(es)":
+ novel.author = detail;
+ break;
+ case "Estado":
+ novel.status =
+ detail.includes("OnGoing") || detail.includes("Updating")
+ ? NovelStatus.Ongoing
+ : NovelStatus.Completed;
+ break;
+ }
+ });
+
+ novel.summary = loadedCheerio("div.summary__content > p").text().trim();
+
+ let chapter: Plugin.ChapterItem[] = [];
+
+ const delay = (ms: number) => new Promise((res) => setTimeout(res, ms));
+ let lastPage = 1;
+ lastPage = +loadedCheerio(".lcp_paginator li:last").prev().text();
+
+ const getChapters = async () => {
+ const n = novelUrl.split("/");
+ const novelName = n[4];
+ const formData = new FormData();
+ formData.append("action", "madara_load_more");
+ formData.append("page", "0");
+ formData.append("template", "html/loop/content");
+ formData.append("vars[category_name]", novelName);
+ formData.append("vars[posts_per_page]", "10000");
+
+ const result = await fetchApi(this.site + '/wp-admin/admin-ajax.php', {
+ method: "POST",
+ body: formData,
+ });
+ const text = await result.text();
+
+ loadedCheerio = parseHTML(text);
+
+ loadedCheerio(".heading").each((i, el) => {
+ const chapterName = loadedCheerio(el)
+ .text()
+ .replace(/[\t\n]/g, "")
+ .trim();
+ const releaseDate = null;
+ const chapterUrl = loadedCheerio(el).find("a").attr("href") || "";
+
+ chapter.push({
+ name: chapterName,
+ url: chapterUrl,
+ releaseTime: releaseDate,
+ });
+ });
+ return chapter.reverse();
+ };
+
+ const getPageChapters = async () => {
+ for (let i = 1; i <= lastPage; i++) {
+ const chaptersUrl = `${novelUrl}?lcp_page0=${i}`;
+ const result = await fetchApi(chaptersUrl);
+ const chaptersHTML = await result.text();
+
+ let chapterCheerio = parseHTML(chaptersHTML);
+
+ chapterCheerio("#lcp_instance_0 li").each((i, el) => {
+ const chapterName = chapterCheerio(el)
+ .find("a")
+ .text()
+ .replace(/[\t\n]/g, "")
+ .trim();
+
+ const releaseDate = chapterCheerio(el).find("span").text().trim();
+
+ const chapterUrl = chapterCheerio(el).find("a").attr("href") || "";
+
+ chapter.push({
+ name: chapterName,
+ releaseTime: releaseDate,
+ url: chapterUrl,
+ });
+ });
+ await delay(1000);
+ }
+ return chapter.reverse();
+ };
+
+ novel.chapters = await getChapters();
+
+ if (!novel.chapters.length) {
+ await delay(1000);
+ novel.chapters = await getPageChapters();
+ }
+
+ return novel;
+ }
+
+ async parseChapter(chapterUrl: string): Promise {
+ const result = await fetchApi(chapterUrl);
+ const body = await result.text();
+
+ const loadedCheerio = parseHTML(body);
+
+ loadedCheerio("#hola_siguiente").next().find("div").remove();
+ const chapterText = loadedCheerio("#hola_siguiente").next().html() || "";
+
+ return chapterText;
+ }
+
+ async searchNovels(
+ searchTerm: string,
+ ): Promise {
+ const url = `${this.site}/?s=${searchTerm}&post_type=wp-manga`;
+
+ const result = await fetchApi(url);
+ const body = await result.text();
+
+ const loadedCheerio = parseHTML(body);
+
+ const novels: Plugin.NovelItem[] = [];
+
+ loadedCheerio(".c-tabs-item__content").each((i, el) => {
+ const name = loadedCheerio(el).find(".h4 > a").text();
+ const cover = loadedCheerio(el).find("img").attr("src");
+ const url = loadedCheerio(el).find(".h4 > a").attr("href");
+ if (!url) return;
+
+ novels.push({ name, cover, url });
+ });
+
+ return novels;
+ }
+
+ async fetchImage(url: string): Promise {
+ return await fetchFile(url);
+ }
+
+ filters = {
+ order: {
+ value: "rating",
+ label: "Ordenado por",
+ options: [
+ { label: "Lo mas reciente", value: "latest" },
+ { label: "A-Z", value: "alphabet" },
+ { label: "Clasificación", value: "rating" },
+ { label: "Trending", value: "trending" },
+ { label: "Mas visto", value: "views" },
+ { label: "Nuevo", value: "new-manga" },
+ ],
+ type: FilterTypes.Picker,
+ },
+ genres: {
+ value: "",
+ label: "Generos",
+ options: [
+ { label: "None", value: "" },
+ { label: "Acción", value: "accion" },
+ { label: "Adulto", value: "adulto" },
+ { label: "Artes Marciales", value: "artes-marciales" },
+ { label: "Aventura", value: "aventura" },
+ { label: "Ciencia Ficción", value: "ciencia-ficcion" },
+ { label: "Comedia", value: "comedia" },
+ { label: "Deportes", value: "deportes" },
+ { label: "Drama", value: "drama" },
+ { label: "Eastern Fantasy", value: "eastern-fantasy" },
+ { label: "Ecchi", value: "ecchi" },
+ { label: "FanFiction", value: "fan-fiction" },
+ { label: "Fantasía", value: "fantasia" },
+ { label: "Fantasía oriental", value: "fantasia-oriental" },
+ { label: "Ficción Romántica", value: "ficcion-romantica" },
+ { label: "Gender Bender", value: "gender-bender" },
+ { label: "Harem", value: "harem" },
+ { label: "Histórico", value: "historico" },
+ { label: "Horror", value: "horror" },
+ { label: "Josei", value: "josei" },
+ { label: "Maduro", value: "maduro" },
+ { label: "Mecha", value: "mecha" },
+ { label: "Misterio", value: "misterio" },
+ { label: "Novela China", value: "novela-china" },
+ { label: "Novela FanFiction", value: "novela-fanfiction" },
+ { label: "Novela Japonesa", value: "novela-japonesa" },
+ { label: "Novela Koreana", value: "novela-koreana" },
+ { label: "Novela ligera", value: "novela-ligera" },
+ { label: "Novela original", value: "novela-original" },
+ { label: "Novela Web", value: "web-novel" },
+ { label: "Psicológico", value: "psicologico" },
+ { label: "Realismo Mágico", value: "realismo-magico" },
+ { label: "Recuento de vida", value: "recuento-de-vida" },
+ { label: "Romance", value: "romance" },
+ { label: "Romance contemporáneo", value: "romance-contemporaneo" },
+ { label: "Romance Moderno", value: "romance-moderno" },
+ { label: "Seinen", value: "seinen" },
+ { label: "Shoujo", value: "shoujo" },
+ { label: "Shounen", value: "shounen" },
+ { label: "Sobrenatural", value: "sobrenatural" },
+ { label: "Tragedia", value: "tragedia" },
+ { label: "Vampiros", value: "vampiros" },
+ { label: "Vida Escolar", value: "vida-escolar" },
+ { label: "Western Fantasy", value: "western-fantasy" },
+ { label: "Wuxia", value: "wuxia" },
+ { label: "Xianxia", value: "xianxia" },
+ { label: "Xuanhuan", value: "xuanhuan" },
+ { label: "Yaoi", value: "yaoi" },
+ ],
+ type: FilterTypes.Picker,
+ },
+ } satisfies Filters;
+}
+
+export default new TuNovelaLigera();
diff --git a/scripts/multisrc/ifreedom/template.ts b/scripts/multisrc/ifreedom/template.ts
index dabf415..5a13658 100644
--- a/scripts/multisrc/ifreedom/template.ts
+++ b/scripts/multisrc/ifreedom/template.ts
@@ -22,7 +22,7 @@ class IfreedomPlugin implements Plugin.PluginBase {
constructor(metadata: IfreedomMetadata) {
this.id = metadata.id;
- this.name = metadata.sourceName + "[ifreedom]";
+ this.name = metadata.sourceName;
this.icon = `multisrc/ifreedom/icons/${metadata.id}.png`;
this.site = metadata.sourceSite;
this.version = "1.0.0";
@@ -31,20 +31,17 @@ class IfreedomPlugin implements Plugin.PluginBase {
async popularNovels(
page: number,
- { filters, showLatestNovels }: Plugin.PopularNovelsOptions,
+ { filters, showLatestNovels }: Plugin.PopularNovelsOptions,
): Promise {
let url = this.site + "/vse-knigi/?sort=" +
(showLatestNovels ? "По дате обновления" : filters?.sort?.value || "По рейтингу");
- if (filters?.status?.value instanceof Array) {
- url += filters.status.value.map((i) => "&status[]=" + i).join("");
- }
- if (filters?.lang?.value instanceof Array) {
- url += filters.lang.value.map((i) => "&lang[]=" + i).join("");
- }
- if (filters?.genre?.value instanceof Array) {
- url += filters.genre.value.map((i) => "&genre[]=" + i).join("");
- }
+ Object.entries(filters || {}).forEach(([type, { value }]) => {
+ if (value instanceof Array && value.length) {
+ url += "&" + type + "[]=" + value.join("&" + type + "[]=");
+ }
+ });
+
url += "&bpage=" + page;
const body = await fetchApi(url).then((res) => res.text());
@@ -102,14 +99,14 @@ class IfreedomPlugin implements Plugin.PluginBase {
if (novel.author == "Не указан") delete novel.author;
const chapters: Plugin.ChapterItem[] = [];
- loadedCheerio("div.li-ranobe").each(function () {
- const name = loadedCheerio(this).find("a").text();
- const url = loadedCheerio(this).find("a").attr("href");
- if (!loadedCheerio(this).find("label.buy-ranobe").length && name && url) {
- const releaseTime = loadedCheerio(this)
- .find("div.li-col2-ranobe").text().trim();
+ const totalChapters = loadedCheerio("div.li-ranobe").length;
- chapters.push({ name, releaseTime, url });
+ loadedCheerio("div.li-ranobe").each((chapterIndex, element) => {
+ const name = loadedCheerio(element).find("a").text();
+ const url = loadedCheerio(element).find("a").attr("href");
+ if (!loadedCheerio(element).find("label.buy-ranobe").length && name && url) {
+ const releaseTime = loadedCheerio(element).find("div.li-col2-ranobe").text().trim();
+ chapters.push({ name, url, releaseTime, chapterNumber: totalChapters - chapterIndex });
}
});
@@ -121,11 +118,14 @@ class IfreedomPlugin implements Plugin.PluginBase {
const body = await fetchApi(chapterUrl).then((res) => res.text());
const loadedCheerio = parseHTML(body);
- loadedCheerio(".entry-content img").each(function () {
- const srcset = loadedCheerio(this).attr("srcset")?.split?.(" ");
+ loadedCheerio(".entry-content img").each((index, element) => {
+ const srcset = loadedCheerio(element).attr("srcset")?.split?.(" ");
if (srcset?.length) {
- const bestlink = srcset.filter((url) => url.startsWith("http")).unshift();
- if (typeof bestlink == 'string') loadedCheerio(this).attr("src", bestlink);
+ loadedCheerio(element).removeAttr("srcset");
+ const bestlink: string[] = srcset.filter((url) => url.startsWith("http"));
+ if (bestlink[bestlink.length - 1]) {
+ loadedCheerio(element).attr("src", bestlink[bestlink.length - 1]);
+ }
}
});
diff --git a/scripts/multisrc/madara/generator.ts b/scripts/multisrc/madara/generator.ts
index 43dd610..c02f8ea 100644
--- a/scripts/multisrc/madara/generator.ts
+++ b/scripts/multisrc/madara/generator.ts
@@ -11,6 +11,9 @@ export const generateAll: ScrpitGeneratorFunction = function (name) {
/* This map is changing `type` from string to FilterTypes */
.map((p) => {
let d = false;
+ if (p?.filters?.genres?.options?.length) {
+ p.filters.genres.options.unshift({ label: "NONE", value: "" })
+ }
const filters: Filters = {};
for (const k in p.filters) {
const f = p.filters[k as keyof typeof p.filters];
diff --git a/scripts/multisrc/madara/sources.json b/scripts/multisrc/madara/sources.json
index 36ad156..660eed2 100644
--- a/scripts/multisrc/madara/sources.json
+++ b/scripts/multisrc/madara/sources.json
@@ -1,5533 +1,5385 @@
[
- {
- "id": "boxnovel",
- "sourceSite": "https://boxnovel.com/",
- "sourceName": "BoxNovel",
- "filters": {
- "sort": {
- "label": "Order by",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "Rating",
- "value": "rating"
- },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "Latest",
- "value": "latest"
- },
- {
- "label": "Most Views",
- "value": "views"
- },
- {
- "label": "New",
- "value": "new-manga"
- },
- {
- "label": "Trending",
- "value": "trending"
- }
- ],
- "value": "",
- "type": "Picker"
- },
- "genres": {
- "label": "GENRES",
- "options": [
- { "label": "NONE", "value": "" },
- {
- "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": "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": "Shounen",
- "value": "shounen"
- },
- {
- "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": "Xuanhuan",
- "value": "xuanhuan"
- },
- {
- "label": "Yaoi",
- "value": "yaoi"
- }
- ],
- "value": "",
- "type": "Picker"
- }
- },
- "options": {
- "path": {
- "genres": "manga-genre"
- },
- "useNewChapterEndpoint": true,
- "lang": "English"
- }
+ {
+ "id": "boxnovel",
+ "sourceSite": "https://boxnovel.com/",
+ "sourceName": "BoxNovel",
+ "filters": {
+ "sort": {
+ "label": "Order by",
+ "value": "",
+ "options": [
+ {
+ "label": "Rating",
+ "value": "rating"
+ },
+ {
+ "label": "A-Z",
+ "value": "alphabet"
+ },
+ {
+ "label": "Latest",
+ "value": "latest"
+ },
+ {
+ "label": "Most Views",
+ "value": "views"
+ },
+ {
+ "label": "New",
+ "value": "new-manga"
+ },
+ {
+ "label": "Trending",
+ "value": "trending"
+ }
+ ],
+ "type": "Picker"
+ },
+ "genres": {
+ "label": "GENRES",
+ "value": "",
+ "options": [
+ {
+ "label": "Action",
+ "value": "action"
+ },
+ {
+ "label": "Adventure",
+ "value": "adventure"
+ },
+ {
+ "label": "Comedy",
+ "value": "comedy"
+ },
+ {
+ "label": "Drama",
+ "value": "drama"
+ },
+ {
+ "label": "Eastern",
+ "value": "eastern"
+ },
+ {
+ "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": "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": "Shounen",
+ "value": "shounen"
+ },
+ {
+ "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": "Xuanhuan",
+ "value": "xuanhuan"
+ },
+ {
+ "label": "Yaoi",
+ "value": "yaoi"
+ }
+ ],
+ "type": "Picker"
+ }
},
- {
- "id": "zinnovel",
- "sourceSite": "https://zinnovel.com/",
- "sourceName": "ZinnNovel",
- "filters": {
- "sort": {
- "label": "Order by",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "Rating",
- "value": "rating"
- },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "Latest",
- "value": "latest"
- },
- {
- "label": "Most Views",
- "value": "views"
- },
- {
- "label": "New",
- "value": "new-manga"
- },
- {
- "label": "Trending",
- "value": "trending"
- }
- ],
- "value": "",
- "type": "Picker"
- },
- "genres": {
- "label": "GENRES",
- "options": [
- { "label": "NONE", "value": "" },
- {
- "label": "Action",
- "value": "action"
- },
- {
- "label": "Adult",
- "value": "adult"
- },
- {
- "label": "Adventure",
- "value": "adventure"
- },
- {
- "label": "Anime",
- "value": "anime"
- },
- {
- "label": "Cartoon",
- "value": "cartoon"
- },
- {
- "label": "Comedy",
- "value": "comedy"
- },
- {
- "label": "Comic",
- "value": "comic"
- },
- {
- "label": "Cooking",
- "value": "cooking"
- },
- {
- "label": "Detective",
- "value": "detective"
- },
- {
- "label": "Doujinshi",
- "value": "doujinshi"
- },
- {
- "label": "Drama",
- "value": "drama"
- },
- {
- "label": "Ecchi",
- "value": "ecchi"
- },
- {
- "label": "Fantasy",
- "value": "fantasy"
- },
- {
- "label": "Game",
- "value": "game"
- },
- {
- "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": "Live action",
- "value": "live-action"
- },
- {
- "label": "Lolicon",
- "value": "lolicon"
- },
- {
- "label": "Magical Realism",
- "value": "magical-realism"
- },
- {
- "label": "Manga",
- "value": "manga"
- },
- {
- "label": "Manhua",
- "value": "manhua"
- },
- {
- "label": "Manhwa",
- "value": "manhwa"
- },
- {
- "label": "Martial Arts",
- "value": "martial-arts"
- },
- {
- "label": "Mature",
- "value": "mature"
- },
- {
- "label": "Mecha",
- "value": "mecha"
- },
- {
- "label": "Mystery",
- "value": "mystery"
- },
- {
- "label": "One shot",
- "value": "one-shot"
- },
- {
- "label": "Psychological",
- "value": "psychological"
- },
- {
- "label": "Reincarnation",
- "value": "reincarnation"
- },
- {
- "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": "Smut",
- "value": "smut"
- },
- {
- "label": "Soft Yaoi",
- "value": "soft-yaoi"
- },
- {
- "label": "Soft Yuri",
- "value": "soft-yuri"
- },
- {
- "label": "Sports",
- "value": "sports"
- },
- {
- "label": "Supernatural",
- "value": "supernatural"
- },
- {
- "label": "Tragedy",
- "value": "tragedy"
- },
- {
- "label": "Video Games",
- "value": "video-games"
- },
- {
- "label": "Webtoon",
- "value": "webtoon"
- },
- {
- "label": "Wuxia",
- "value": "wuxia"
- },
- {
- "label": "Xianxia",
- "value": "xianxia"
- },
- {
- "label": "Xuanhuan",
- "value": "xuanhuan"
- },
- {
- "label": "Yaoi",
- "value": "yaoi"
- },
- {
- "label": "Yuri",
- "value": "yuri"
- }
- ],
- "value": "",
- "type": "Picker"
- }
- },
- "options": {
- "path": {
- "novels": "manga",
- "novel": "manga",
- "chapter": "manga",
- "genres": "manga-genre"
- },
- "lang": "English"
- }
- },
- {
- "id": "novelTL",
- "sourceSite": "https://noveltranslate.com/",
- "sourceName": "NovelTranslate",
- "filters": {
- "sort": {
- "label": "Order by",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "Rating",
- "value": "rating"
- },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "Latest",
- "value": "latest"
- },
- {
- "label": "Most Views",
- "value": "views"
- },
- {
- "label": "New",
- "value": "new-manga"
- },
- {
- "label": "Trending",
- "value": "trending"
- }
- ],
- "value": "",
- "type": "Picker"
- },
- "genres": {
- "label": "GENRES",
- "options": [
- { "label": "NONE", "value": "" },
- {
- "label": "Action",
- "value": "action"
- },
- {
- "label": "Adult",
- "value": "adult"
- },
- {
- "label": "Adventure",
- "value": "adventure"
- },
- {
- "label": "Bleach",
- "value": "bleach"
- },
- {
- "label": "Chinese",
- "value": "chinese"
- },
- {
- "label": "Comedy",
- "value": "comedy"
- },
- {
- "label": "Conan",
- "value": "conan"
- },
- {
- "label": "cooking",
- "value": "cooking"
- },
- {
- "label": "Dragon Ball",
- "value": "dragon-ball"
- },
- {
- "label": "Drama",
- "value": "drama"
- },
- {
- "label": "Ecchi",
- "value": "ecchi"
- },
- {
- "label": "Erciyuan",
- "value": "erciyuan"
- },
- {
- "label": "Fairy Tail",
- "value": "fairy-tail"
- },
- {
- "label": "Faloo",
- "value": "faloo"
- },
- {
- "label": "Fan-Fiction",
- "value": "fan-fiction"
- },
- {
- "label": "Fantasy",
- "value": "fantasy"
- },
- {
- "label": "FoodWars!",
- "value": "foodwars"
- },
- {
- "label": "Game",
- "value": "game"
- },
- {
- "label": "Gender Bender",
- "value": "gender-bender"
- },
- {
- "label": "Harem",
- "value": "harem"
- },
- {
- "label": "Historical",
- "value": "historical"
- },
- {
- "label": "Horror",
- "value": "horror"
- },
- {
- "label": "Hunter x Hunter",
- "value": "hunter-x-hunter"
- },
- {
- "label": "Isekai",
- "value": "isekai"
- },
- {
- "label": "Japanese",
- "value": "japanese"
- },
- {
- "label": "Jojo",
- "value": "jojo"
- },
- {
- "label": "Josei",
- "value": "josei"
- },
- {
- "label": "Korean",
- "value": "korean"
- },
- {
- "label": "Martial Arts",
- "value": "martial-arts"
- },
- {
- "label": "Marvel",
- "value": "marvel"
- },
- {
- "label": "Mature",
- "value": "mature"
- },
- {
- "label": "Mecha",
- "value": "mecha"
- },
- {
- "label": "Military",
- "value": "military"
- },
- {
- "label": "Mystery",
- "value": "mystery"
- },
- {
- "label": "Naruto",
- "value": "naruto"
- },
- {
- "label": "One piece",
- "value": "one-piece"
- },
- {
- "label": "Pokemon",
- "value": "pokemon"
- },
- {
- "label": "Political",
- "value": "political"
- },
- {
- "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": "Smut",
- "value": "smut"
- },
- {
- "label": "Sport",
- "value": "sport"
- },
- {
- "label": "Sports",
- "value": "sports"
- },
- {
- "label": "Supernatural",
- "value": "supernatural"
- },
- {
- "label": "System",
- "value": "system"
- },
- {
- "label": "Toriko",
- "value": "toriko"
- },
- {
- "label": "Tragedy",
- "value": "tragedy"
- },
- {
- "label": "Urban",
- "value": "urban"
- },
- {
- "label": "Urban Life",
- "value": "urban-life"
- },
- {
- "label": "Wuxia",
- "value": "wuxia"
- },
- {
- "label": "Xianxia",
- "value": "xianxia"
- },
- {
- "label": "Xuanhuan",
- "value": "xuanhuan"
- },
- {
- "label": "Yaoi",
- "value": "yaoi"
- },
- {
- "label": "Yuri",
- "value": "yuri"
- }
- ],
- "value": "",
- "type": "Picker"
- }
- },
- "options": {
- "path": {
- "novels": "all-novels",
- "novel": "manga",
- "chapter": "manga",
- "genres": "manga-genre"
- },
- "lang": "English"
- }
- },
- {
- "id": "lunarletters",
- "sourceSite": "https://www.lunarletters.com/",
- "sourceName": "LunarLetters",
- "filters": {
- "sort": {
- "label": "Order by",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "Rating",
- "value": "rating"
- },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "Latest",
- "value": "latest"
- },
- {
- "label": "Most Views",
- "value": "views"
- },
- {
- "label": "New",
- "value": "new-manga"
- },
- {
- "label": "Trending",
- "value": "trending"
- }
- ],
- "value": "",
- "type": "Picker"
- }
- },
- "options": {
- "path": {
- "novels": "series",
- "novel": "series",
- "chapter": "series"
- },
- "useNewChapterEndpoint": true,
- "lang": "English"
- }
- },
- {
- "id": "sleeptTLS",
- "sourceSite": "https://sleepytranslations.com/",
- "sourceName": "SleepyTranslations",
- "filters": {
- "sort": {
- "label": "Order by",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "Rating",
- "value": "rating"
- },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "Latest",
- "value": "latest"
- },
- {
- "label": "Most Views",
- "value": "views"
- },
- {
- "label": "New",
- "value": "new-manga"
- },
- {
- "label": "Trending",
- "value": "trending"
- }
- ],
- "value": "",
- "type": "Picker"
- }
- },
- "options": {
- "path": {
- "novels": "series",
- "novel": "series",
- "chapter": "series"
- },
- "useNewChapterEndpoint": true,
- "lang": "English"
- }
- },
- {
- "id": "freenovel.me",
- "sourceSite": "https://freenovel.me/",
- "sourceName": "FreeNovelMe",
- "filters": {
- "sort": {
- "label": "Order by",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "Rating",
- "value": "rating"
- },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "Latest",
- "value": "latest"
- },
- {
- "label": "Most Views",
- "value": "views"
- },
- {
- "label": "New",
- "value": "new-manga"
- },
- {
- "label": "Trending",
- "value": "trending"
- }
- ],
- "value": "",
- "type": "Picker"
- },
- "genres": {
- "label": "GENRES",
- "options": [
- { "label": "NONE", "value": "" },
- {
- "label": "Action",
- "value": "action"
- },
- {
- "label": "Adult",
- "value": "adult"
- },
- {
- "label": "Adventure",
- "value": "adventure"
- },
- {
- "label": "Cartoon",
- "value": "cartoon"
- },
- {
- "label": "Comedy",
- "value": "comedy"
- },
- {
- "label": "Cooking",
- "value": "cooking"
- },
- {
- "label": "Detective",
- "value": "detective"
- },
- {
- "label": "Drama",
- "value": "drama"
- },
- {
- "label": "Fantasy",
- "value": "fantasy"
- },
- {
- "label": "Game",
- "value": "game"
- },
- {
- "label": "Gender Bender",
- "value": "gender-bender"
- },
- {
- "label": "Historical",
- "value": "historical"
- },
- {
- "label": "History",
- "value": "history"
- },
- {
- "label": "Horror",
- "value": "horror"
- },
- {
- "label": "Josei",
- "value": "josei"
- },
- {
- "label": "Live action",
- "value": "live-action"
- },
- {
- "label": "Martial",
- "value": "martial"
- },
- {
- "label": "Martial Arts",
- "value": "martial-arts"
- },
- {
- "label": "Mature",
- "value": "mature"
- },
- {
- "label": "Mecha",
- "value": "mecha"
- },
- {
- "label": "Mystery",
- "value": "mystery"
- },
- {
- "label": "One shot",
- "value": "one-shot"
- },
- {
- "label": "Premium",
- "value": "premium"
- },
- {
- "label": "Psychological",
- "value": "psychological"
- },
- {
- "label": "Reincarnation",
- "value": "reincarnation"
- },
- {
- "label": "Romance",
- "value": "romance"
- },
- {
- "label": "School Life",
- "value": "school-life"
- },
- {
- "label": "Sci-fi",
- "value": "sci-fi"
- },
- {
- "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": "Xuanhuan",
- "value": "xuanhuan"
- }
- ],
- "value": "",
- "type": "Picker"
- }
- },
- "options": {
- "lang": "English"
- }
- },
- {
- "id": "1stkissnovel",
- "sourceSite": "https://1stkissnovel.org/",
- "sourceName": "FirstKissNovel",
- "filters": {
- "sort": {
- "label": "Order by",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "Rating",
- "value": "rating"
- },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "Latest",
- "value": "latest"
- },
- {
- "label": "Most Views",
- "value": "views"
- },
- {
- "label": "New",
- "value": "new-manga"
- },
- {
- "label": "Trending",
- "value": "trending"
- }
- ],
- "value": "",
- "type": "Picker"
- },
- "genres": {
- "label": "GENRES",
- "value": "",
- "options": [
- { "label": "NONE", "value": "" },
- {
- "label": "Action",
- "value": "action"
- },
- {
- "label": "Adult",
- "value": "adult"
- },
- {
- "label": "Adventure",
- "value": "adventure"
- },
- {
- "label": "Anime",
- "value": "anime"
- },
- {
- "label": "Apocalypse",
- "value": "apocalypse"
- },
- {
- "label": "Boy's Love",
- "value": "boys-love"
- },
- {
- "label": "Comedy",
- "value": "comedy"
- },
- {
- "label": "Completed",
- "value": "completed"
- },
- {
- "label": "Cooking",
- "value": "cooking"
- },
- {
- "label": "Demons",
- "value": "demons"
- },
- {
- "label": "Detective",
- "value": "detective"
- },
- {
- "label": "Drama",
- "value": "drama"
- },
- {
- "label": "Ecchi",
- "value": "ecchi"
- },
- {
- "label": "Fan-Fiction",
- "value": "fan-fiction"
- },
- {
- "label": "Fantasy",
- "value": "fantasy"
- },
- {
- "label": "Food",
- "value": "food"
- },
- {
- "label": "Game",
- "value": "game"
- },
- {
- "label": "Gender Bender",
- "value": "gender-bender"
- },
- {
- "label": "Girls Love",
- "value": "girls-love"
- },
- {
- "label": "Harem",
- "value": "harem"
- },
- {
- "label": "Historical",
- "value": "historical"
- },
- {
- "label": "Horror",
- "value": "horror"
- },
- {
- "label": "Humor",
- "value": "humor"
- },
- {
- "label": "Isekai",
- "value": "isekai"
- },
- {
- "label": "Josei",
- "value": "josei"
- },
- {
- "label": "Magic",
- "value": "magic"
- },
- {
- "label": "Magical",
- "value": "magical"
- },
- {
- "label": "Manhua",
- "value": "manhua"
- },
- {
- "label": "Manhwa",
- "value": "manhwa"
- },
- {
- "label": "Martial Arts",
- "value": "martial-arts"
- },
- {
- "label": "Mature",
- "value": "mature"
- },
- {
- "label": "Mecha",
- "value": "mecha"
- },
- {
- "label": "Medical",
- "value": "medical"
- },
- {
- "label": "Military",
- "value": "military"
- },
- {
- "label": "Moder",
- "value": "moder"
- },
- {
- "label": "Modern",
- "value": "modern"
- },
- {
- "label": "Murim",
- "value": "murim"
- },
- {
- "label": "Music",
- "value": "music"
- },
- {
- "label": "Mystery",
- "value": "mystery"
- },
- {
- "label": "Psychological",
- "value": "psychological"
- },
- {
- "label": "Reverse",
- "value": "reverse"
- },
- {
- "label": "Reverse harem",
- "value": "reverse-harem"
- },
- {
- "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": "Smut",
- "value": "smut"
- },
- {
- "label": "Sports",
- "value": "sports"
- },
- {
- "label": "Super power",
- "value": "super-power"
- },
- {
- "label": "Superhero",
- "value": "superhero"
- },
- {
- "label": "Supernatural",
- "value": "supernatural"
- },
- {
- "label": "Thriller",
- "value": "thriller"
- },
- {
- "label": "Tragedy",
- "value": "tragedy"
- },
- {
- "label": "Urban Life",
- "value": "urban-life"
- },
- {
- "label": "Vampire",
- "value": "vampire"
- },
- {
- "label": "Webtoons",
- "value": "webtoons"
- },
- {
- "label": "Wuxia",
- "value": "wuxia"
- },
- {
- "label": "Xianxia",
- "value": "xianxia"
- },
- {
- "label": "Xuanhuan",
- "value": "xuanhuan"
- },
- {
- "label": "Yaoi",
- "value": "yaoi"
- },
- {
- "label": "Yuri",
- "value": "yuri"
- }
- ],
- "type": "Picker"
- }
- },
- "options": {
- "useNewChapterEndpoint": true,
- "lang": "English"
- }
- },
- {
- "id": "daonovel",
- "sourceSite": "https://daonovel.com/",
- "sourceName": "DaoNovel",
- "filters": {
- "sort": {
- "value": "",
- "label": "Order by",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "Rating",
- "value": "rating"
- },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "Latest",
- "value": "latest"
- },
- {
- "label": "Most Views",
- "value": "views"
- },
- {
- "label": "New",
- "value": "new-manga"
- },
- {
- "label": "Trending",
- "value": "trending"
- }
- ],
- "type": "Picker"
- }
- },
- "options": {
- "path": {
- "novels": "novels-list",
- "novel": "novels",
- "chapter": "novels"
- },
- "useNewChapterEndpoint": true,
- "lang": "English"
- }
- },
- {
- "id": "mostnovel",
- "sourceSite": "https://mostnovel.com/",
- "sourceName": "MostNovel",
- "filters": {
- "sort": {
- "value": "",
- "label": "Order by",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "Rating",
- "value": "rating"
- },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "Latest",
- "value": "latest"
- },
- {
- "label": "Most Views",
- "value": "views"
- },
- {
- "label": "New",
- "value": "new-manga"
- },
- {
- "label": "Trending",
- "value": "trending"
- }
- ],
- "type": "Picker"
- },
- "genres": {
- "value": "",
- "label": "GENRES",
- "options": [
- { "label": "NONE", "value": "" },
- {
- "label": "ACG",
- "value": "acg"
- },
- {
- "label": "Action",
- "value": "action"
- },
- {
- "label": "Adult",
- "value": "adult"
- },
- {
- "label": "Adventure",
- "value": "adventure"
- },
- {
- "label": "AGA",
- "value": "aga"
- },
- {
- "label": "Anime",
- "value": "anime"
- },
- {
- "label": "Anime & Comics",
- "value": "anime-comics"
- },
- {
- "label": "Bender",
- "value": "bender"
- },
- {
- "label": "BL",
- "value": "bl"
- },
- {
- "label": "Cartoon",
- "value": "cartoon"
- },
- {
- "label": "Comedy",
- "value": "comedy"
- },
- {
- "label": "Comic",
- "value": "comic"
- },
- {
- "label": "Contemporary Romance",
- "value": "contemporary-romance"
- },
- {
- "label": "Cooking",
- "value": "cooking"
- },
- {
- "label": "Cultivation",
- "value": "cultivation"
- },
- {
- "label": "Detective",
- "value": "detective"
- },
- {
- "label": "Doujinshi",
- "value": "doujinshi"
- },
- {
- "label": "Drama",
- "value": "drama"
- },
- {
- "label": "Eastern Fantasy",
- "value": "eastern-fantasy"
- },
- {
- "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": "Horror&Thriller",
- "value": "horrorthriller"
- },
- {
- "label": "Josei",
- "value": "josei"
- },
- {
- "label": "Live action",
- "value": "live-action"
- },
- {
- "label": "Magical Realism",
- "value": "magical-realism"
- },
- {
- "label": "Manga",
- "value": "manga"
- },
- {
- "label": "Manhua",
- "value": "manhua"
- },
- {
- "label": "Manhwa",
- "value": "manhwa"
- },
- {
- "label": "Martial Arts",
- "value": "martial-arts"
- },
- {
- "label": "Mature",
- "value": "mature"
- },
- {
- "label": "Mecha",
- "value": "mecha"
- },
- {
- "label": "Modern",
- "value": "modern"
- },
- {
- "label": "Movies",
- "value": "movies"
- },
- {
- "label": "Mystery",
- "value": "mystery"
- },
- {
- "label": "One shot",
- "value": "one-shot"
- },
- {
- "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": "Smart MC",
- "value": "smart-mc"
- },
- {
- "label": "Smut",
- "value": "smut"
- },
- {
- "label": "Soft Yaoi",
- "value": "soft-yaoi"
- },
- {
- "label": "Soft Yuri",
- "value": "soft-yuri"
- },
- {
- "label": "Sports",
- "value": "sports"
- },
- {
- "label": "Supernatural",
- "value": "supernatural"
- },
- {
- "label": "Tragedy",
- "value": "tragedy"
- },
- {
- "label": "Urban Life",
- "value": "urban-life"
- },
- {
- "label": "Video Games",
- "value": "video-games"
- },
- {
- "label": "Webtoon",
- "value": "webtoon"
- },
- {
- "label": "Wuxia",
- "value": "wuxia"
- },
- {
- "label": "Xianxia",
- "value": "xianxia"
- },
- {
- "label": "Xuanhuan",
- "value": "xuanhuan"
- },
- {
- "label": "Yaoi",
- "value": "yaoi"
- },
- {
- "label": "Yuri",
- "value": "yuri"
- }
- ],
- "type": "Picker"
- }
- },
- "options": {
- "path": {
- "novels": "manga",
- "novel": "manga",
- "chapter": "manga",
- "genres": "manga-genre"
- },
- "lang": "English"
- }
- },
- {
- "id": "novelmultiverse",
- "sourceSite": "https://www.novelmultiverse.com/",
- "sourceName": "NovelMultiverse",
- "filters": {
- "sort": {
- "value": "",
- "label": "Order by",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "Rating",
- "value": "rating"
- },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "Latest",
- "value": "latest"
- },
- {
- "label": "Most Views",
- "value": "views"
- },
- {
- "label": "New",
- "value": "new-manga"
- },
- {
- "label": "Trending",
- "value": "trending"
- }
- ],
- "type": "Picker"
- },
- "genres": {
- "label": "GENRES",
- "value": "",
- "options": [
- { "label": "NONE", "value": "" },
- {
- "label": "Action",
- "value": "action"
- },
- {
- "label": "Adult",
- "value": "adult"
- },
- {
- "label": "Adventure",
- "value": "adventure"
- },
- {
- "label": "Anime",
- "value": "anime"
- },
- {
- "label": "Cartoon",
- "value": "cartoon"
- },
- {
- "label": "Comedy",
- "value": "comedy"
- },
- {
- "label": "Comic",
- "value": "comic"
- },
- {
- "label": "Cooking",
- "value": "cooking"
- },
- {
- "label": "Detective",
- "value": "detective"
- },
- {
- "label": "Doujinshi",
- "value": "doujinshi"
- },
- {
- "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": "Josei",
- "value": "josei"
- },
- {
- "label": "Live action",
- "value": "live-action"
- },
- {
- "label": "Manga",
- "value": "manga"
- },
- {
- "label": "Manhua",
- "value": "manhua"
- },
- {
- "label": "Manhwa",
- "value": "manhwa"
- },
- {
- "label": "Martial Arts",
- "value": "martial-arts"
- },
- {
- "label": "Mature",
- "value": "mature"
- },
- {
- "label": "Mecha",
- "value": "mecha"
- },
- {
- "label": "Mystery",
- "value": "mystery"
- },
- {
- "label": "One shot",
- "value": "one-shot"
- },
- {
- "label": "Original",
- "value": "original"
- },
- {
- "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": "Smut",
- "value": "smut"
- },
- {
- "label": "Soft Yaoi",
- "value": "soft-yaoi"
- },
- {
- "label": "Soft Yuri",
- "value": "soft-yuri"
- },
- {
- "label": "Sports",
- "value": "sports"
- },
- {
- "label": "Supernatural",
- "value": "supernatural"
- },
- {
- "label": "Tragedy",
- "value": "tragedy"
- },
- {
- "label": "Translation",
- "value": "translation"
- },
- {
- "label": "Webtoon",
- "value": "webtoon"
- },
- {
- "label": "Wuxia",
- "value": "wuxia"
- },
- {
- "label": "Xianxia",
- "value": "xianxia"
- },
- {
- "label": "Xuanhuan",
- "value": "xuanhuan"
- },
- {
- "label": "Yaoi",
- "value": "yaoi"
- },
- {
- "label": "Yuri",
- "value": "yuri"
- }
- ],
- "type": "Picker"
- }
- },
- "options": {
- "lang": "English"
- }
- },
- {
- "id": "lnheaven",
- "sourceSite": "https://lightnovelheaven.com/",
- "sourceName": "LightNovelHeaven",
- "filters": {
- "sort": {
- "label": "Order by",
- "value": "",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "Rating",
- "value": "rating"
- },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "Latest",
- "value": "latest"
- },
- {
- "label": "Most Views",
- "value": "views"
- },
- {
- "label": "New",
- "value": "new-manga"
- },
- {
- "label": "Trending",
- "value": "trending"
- }
- ],
- "type": "Picker"
- }
- },
- "options": {
- "path": {
- "novels": "series",
- "novel": "series",
- "chapter": "series"
- },
- "useNewChapterEndpoint": true,
- "lang": "English"
- }
- },
- {
- "id": "arnovel",
- "sourceSite": "https://arnovel.me/",
- "sourceName": "ArNovel",
- "filters": {
- "sort": {
- "label": "الترتيب حسب",
- "value": "",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "الآخير",
- "value": "latest"
- },
- {
- "label": "الأكثر مشاهدة",
- "value": "views"
- },
- {
- "label": "التقييم",
- "value": "rating"
- },
- {
- "label": "جديد",
- "value": "new-manga"
- },
- {
- "label": "شائع",
- "value": "trending"
- }
- ],
- "type": "Picker"
- },
- "genres": {
- "label": "التصنيفات",
- "value": "",
- "options": [
- { "label": "NONE", "value": "" },
- {
- "label": "أكشن",
- "value": "%d8%a3%d9%83%d8%b4%d9%86"
- },
- {
- "label": "إتشي",
- "value": "%d8%a5%d8%aa%d8%b4%d9%80%d9%8a"
- },
- {
- "label": "بالغ",
- "value": "%d8%a8%d8%a7%d9%84%d8%ba"
- },
- {
- "label": "تاريخي",
- "value": "%d8%aa%d8%a7%d8%b1%d9%8a%d8%ae%d9%8a"
- },
- {
- "label": "تراجدي",
- "value": "%d8%aa%d8%b1%d8%a7%d8%ac%d8%af%d9%8a"
- },
- {
- "label": "جوسي",
- "value": "%d8%ac%d9%88%d8%b3%d9%8a"
- },
- {
- "label": "حريم",
- "value": "%d8%ad%d8%b1%d9%8a%d9%85"
- },
- {
- "label": "حياة مدرسية",
- "value": "%d8%ad%d9%8a%d8%a7%d8%a9-%d9%85%d8%af%d8%b1%d8%b3%d9%8a%d8%a9"
- },
- {
- "label": "خارق لطبيعية",
- "value": "%d8%ae%d8%a7%d8%b1%d9%82-%d9%84%d8%b7%d8%a8%d9%8a%d8%b9%d9%8a%d8%a9"
- },
- {
- "label": "خيال",
- "value": "%d8%ae%d9%8a%d8%a7%d9%84"
- },
- {
- "label": "خيال علمي",
- "value": "%d8%ae%d9%8a%d8%a7%d9%84-%d8%b9%d9%84%d9%85%d9%8a"
- },
- {
- "label": "دراما",
- "value": "%d8%af%d8%b1%d8%a7%d9%85%d8%a7"
- },
- {
- "label": "راشد",
- "value": "%d8%b1%d8%a7%d8%b4%d8%af"
- },
- {
- "label": "رعب",
- "value": "%d8%b1%d8%b9%d8%a8"
- },
- {
- "label": "رومنسي",
- "value": "%d8%b1%d9%88%d9%85%d9%86%d8%b3%d9%8a"
- },
- {
- "label": "رياضي",
- "value": "%d8%b1%d9%8a%d8%a7%d8%b6%d9%8a"
- },
- {
- "label": "سينين",
- "value": "%d8%b3%d9%8a%d9%86%d9%8a%d9%86"
- },
- {
- "label": "شريحة من الحياة",
- "value": "%d8%b4%d8%b1%d9%8a%d8%ad%d8%a9-%d9%85%d9%86-%d8%a7%d9%84%d8%ad%d9%8a%d8%a7%d8%a9"
- },
- {
- "label": "شوجو",
- "value": "%d8%b4%d9%88%d8%ac%d9%88"
- },
- {
- "label": "شونين",
- "value": "%d8%b4%d9%88%d9%86%d9%8a%d9%86"
- },
- {
- "label": "غموض",
- "value": "%d8%ba%d9%85%d9%88%d8%b6"
- },
- {
- "label": "فنون قتال",
- "value": "%d9%81%d9%86%d9%88%d9%86-%d9%82%d8%aa%d8%a7%d9%84"
- },
- {
- "label": "كوميديا",
- "value": "%d9%83%d9%88%d9%85%d9%8a%d8%af%d9%8a%d8%a7"
- },
- {
- "label": "مغامرات",
- "value": "%d9%85%d8%ba%d8%a7%d9%85%d8%b1%d8%a7%d8%aa"
- },
- {
- "label": "منتهية",
- "value": "%d9%85%d9%86%d8%aa%d9%87%d9%8a%d8%a9"
- },
- {
- "label": "ميكا",
- "value": "%d9%85%d9%8a%d9%83%d8%a7"
- },
- {
- "label": "نفسي",
- "value": "%d9%86%d9%81%d8%b3%d9%8a"
- }
- ],
- "type": "Picker"
- }
- },
- "options": {
- "path": {
- "genres": "home/novel-genre"
- },
- "useNewChapterEndpoint": true,
- "lang": "Arabic"
- }
- },
- {
- "id": "meionovel",
- "sourceSite": "https://meionovel.id/",
- "sourceName": "MeioNovel",
- "filters": {
- "sort": {
- "label": "Order by",
- "value": "",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "Rating",
- "value": "rating"
- },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "Latest",
- "value": "latest"
- },
- {
- "label": "Most Views",
- "value": "views"
- },
- {
- "label": "New",
- "value": "new-manga"
- },
- {
- "label": "Trending",
- "value": "trending"
- }
- ],
- "type": "Picker"
- },
- "genres": {
- "label": "GENRES",
- "value": "",
- "options": [
- { "label": "NONE", "value": "" },
- {
- "label": "Action",
- "value": "action"
- },
- {
- "label": "Adventure",
- "value": "adventure"
- },
- {
- "label": "Comedy",
- "value": "comedy"
- },
- {
- "label": "Cooking",
- "value": "cooking"
- },
- {
- "label": "Drama",
- "value": "drama"
- },
- {
- "label": "Ecchi",
- "value": "ecchi"
- },
- {
- "label": "Fanfiction",
- "value": "fanfiction"
- },
- {
- "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": "Magic",
- "value": "magic"
- },
- {
- "label": "Martial Arts",
- "value": "martial-arts"
- },
- {
- "label": "Mature",
- "value": "mature"
- },
- {
- "label": "Mecha",
- "value": "mecha"
- },
- {
- "label": "Mystery",
- "value": "mystery"
- },
- {
- "label": "One shot",
- "value": "one-shot"
- },
- {
- "label": "Psychological",
- "value": "psychological"
- },
- {
- "label": "Reverse Harem",
- "value": "reverse-harem"
- },
- {
- "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": "Smut",
- "value": "smut"
- },
- {
- "label": "Sports",
- "value": "sports"
- },
- {
- "label": "Supernatural",
- "value": "supernatural"
- },
- {
- "label": "Tragedy",
- "value": "tragedy"
- },
- {
- "label": "Virtual Reality",
- "value": "virtual-reality"
- },
- {
- "label": "Wuxia",
- "value": "wuxia"
- },
- {
- "label": "Xianxia",
- "value": "xianxia"
- },
- {
- "label": "Xuanhuan",
- "value": "xuanhuan"
- },
- {
- "label": "Yuri",
- "value": "yuri"
- }
- ],
- "type": "Picker"
- }
- },
- "options": {
- "useNewChapterEndpoint": true,
- "lang": "Indonesian"
- }
- },
- {
- "id": "webnovelover",
- "sourceSite": "https://www.webnovelover.com/",
- "sourceName": "WebNovelLover",
- "filters": {
- "sort": {
- "label": "Order by",
- "value": "",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "Rating",
- "value": "rating"
- },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "Latest",
- "value": "latest"
- },
- {
- "label": "Most Views",
- "value": "views"
- },
- {
- "label": "New",
- "value": "new-manga"
- },
- {
- "label": "Trending",
- "value": "trending"
- }
- ],
- "type": "Picker"
- },
- "genres": {
- "label": "GENRES",
- "value": "",
- "options": [
- { "label": "NONE", "value": "" },
- {
- "label": "Action",
- "value": "action"
- },
- {
- "label": "Adapted into drama",
- "value": "adapted-into-drama"
- },
- {
- "label": "Adventure",
- "value": "adventure"
- },
- {
- "label": "Comedy",
- "value": "comedy"
- },
- {
- "label": "Completed",
- "value": "completed"
- },
- {
- "label": "Drama",
- "value": "drama"
- },
- {
- "label": "English Novel",
- "value": "english-novel"
- },
- {
- "label": "Fantasy",
- "value": "fantasy"
- },
- {
- "label": "Gender Bender",
- "value": "gender-bender"
- },
- {
- "label": "Harem",
- "value": "harem"
- },
- {
- "label": "Historical",
- "value": "historical"
- },
- {
- "label": "Horror",
- "value": "horror"
- },
- {
- "label": "Indo Novel",
- "value": "indo-novel"
- },
- {
- "label": "Josei",
- "value": "josei"
- },
- {
- "label": "Martial Arts",
- "value": "martial-arts"
- },
- {
- "label": "Mature",
- "value": "mature"
- },
- {
- "label": "Mystery",
- "value": "mystery"
- },
- {
- "label": "Rebirth",
- "value": "rebirth"
- },
- {
- "label": "Reincarnation",
- "value": "reincarnation"
- },
- {
- "label": "Romance",
- "value": "romance"
- },
- {
- "label": "Sci-fi",
- "value": "sci-fi"
- },
- {
- "label": "Shoujo",
- "value": "shoujo"
- },
- {
- "label": "Shounen",
- "value": "shounen"
- },
- {
- "label": "Slice of Life",
- "value": "slice-of-life"
- },
- {
- "label": "Spiritual",
- "value": "spiritual"
- },
- {
- "label": "Supernatural",
- "value": "supernatural"
- },
- {
- "label": "Tragedy",
- "value": "tragedy"
- },
- {
- "label": "Transmigration",
- "value": "transmigration"
- },
- {
- "label": "University",
- "value": "university"
- },
- {
- "label": "Wuxia",
- "value": "wuxia"
- },
- {
- "label": "Xianxia",
- "value": "xianxia"
- },
- {
- "label": "Xuanhuan",
- "value": "xuanhuan"
- },
- {
- "label": "Youth",
- "value": "youth"
- }
- ],
- "type": "Picker"
- }
- },
- "options": {
- "lang": "English"
- }
- },
- {
- "id": "cratenovel",
- "sourceSite": "https://cratenovel.com/",
- "sourceName": "CrateNovel",
- "filters": {},
- "options": {
- "useNewChapterEndpoint": true,
- "lang": "English"
- }
- },
- {
- "id": "clicknovel",
- "sourceSite": "https://clicknovel.net/",
- "sourceName": "ClickNovel",
- "filters": {},
- "options": {
- "lang": "English"
- }
- },
- {
- "id": "readwebnovels",
- "sourceSite": "https://readwebnovels.net/",
- "sourceName": "ReadWebNovels",
- "filters": {
- "sort": {
- "label": "Order by",
- "value": "",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "Rating",
- "value": "rating"
- },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "Latest",
- "value": "latest"
- },
- {
- "label": "Most Views",
- "value": "views"
- },
- {
- "label": "New",
- "value": "new-manga"
- },
- {
- "label": "Trending",
- "value": "trending"
- }
- ],
- "type": "Picker"
- }
- },
- "options": {
- "lang": "English"
- }
- },
- {
- "id": "wbnovel",
- "sourceSite": "https://wbnovel.com/",
- "sourceName": "WBNovel",
- "filters": {
- "sort": {
- "label": "Order by",
- "value": "",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "Rating",
- "value": "rating"
- },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "Latest",
- "value": "latest"
- },
- {
- "label": "Most Views",
- "value": "views"
- },
- {
- "label": "New",
- "value": "new-manga"
- },
- {
- "label": "Trending",
- "value": "trending"
- }
- ],
- "type": "Picker"
- },
- "genres": {
- "label": "GENRES",
- "value": "",
- "options": [
- { "label": "NONE", "value": "" },
- {
- "label": "Action",
- "value": "action"
- },
- {
- "label": "Adventure",
- "value": "adventure"
- },
- {
- "label": "Alchemy",
- "value": "alchemy"
- },
- {
- "label": "Comedy",
- "value": "comedy"
- },
- {
- "label": "Crafting",
- "value": "crafting"
- },
- {
- "label": "Cultivation",
- "value": "cultivation"
- },
- {
- "label": "Drama",
- "value": "drama"
- },
- {
- "label": "Dungeon Crawling",
- "value": "dungeon-crawling"
- },
- {
- "label": "Eci",
- "value": "eci"
- },
- {
- "label": "Fantasy",
- "value": "fantasy"
- },
- {
- "label": "Game",
- "value": "game"
- },
- {
- "label": "Harem",
- "value": "harem"
- },
- {
- "label": "Horror",
- "value": "horror"
- },
- {
- "label": "Josei",
- "value": "josei"
- },
- {
- "label": "Kingdom Building",
- "value": "kingdom-building"
- },
- {
- "label": "Martial Arts",
- "value": "martial-arts"
- },
- {
- "label": "Mature",
- "value": "mature"
- },
- {
- "label": "Mecha",
- "value": "mecha"
- },
- {
- "label": "Modern Setting",
- "value": "modern-setting"
- },
- {
- "label": "Mystery",
- "value": "mystery"
- },
- {
- "label": "Pets",
- "value": "pets"
- },
- {
- "label": "Psychological",
- "value": "psychological"
- },
- {
- "label": "Reincarnator",
- "value": "reincarnator"
- },
- {
- "label": "Romance",
- "value": "romance"
- },
- {
- "label": "School Life",
- "value": "school-life"
- },
- {
- "label": "Sci-fi",
- "value": "sci-fi"
- },
- {
- "label": "Seinen",
- "value": "seinen"
- },
- {
- "label": "Shounen",
- "value": "shounen"
- },
- {
- "label": "Slice of Life",
- "value": "slice-of-life"
- },
- {
- "label": "Sports",
- "value": "sports"
- },
- {
- "label": "Supernatural",
- "value": "supernatural"
- },
- {
- "label": "Tragedy",
- "value": "tragedy"
- },
- {
- "label": "Transmigration",
- "value": "transmigration"
- },
- {
- "label": "Virtual Reality",
- "value": "virtual-reality"
- },
- {
- "label": "Wuxia",
- "value": "wuxia"
- },
- {
- "label": "Xianxia",
- "value": "xianxia"
- },
- {
- "label": "Xuanhuan",
- "value": "xuanhuan"
- }
- ],
- "type": "Picker"
- }
- },
- "options": {
- "lang": "Indonesian"
- }
- },
- {
- "id": "wuxiaworld.site",
- "sourceSite": "https://wuxiaworld.site/",
- "sourceName": "WuxiaWorld.Site",
- "filters": {
- "sort": {
- "label": "Order by",
- "value": "",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "Rating",
- "value": "rating"
- },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "Latest",
- "value": "latest"
- },
- {
- "label": "Most Views",
- "value": "views"
- },
- {
- "label": "New",
- "value": "new-manga"
- },
- {
- "label": "Trending",
- "value": "trending"
- }
- ],
- "type": "Picker"
- }
- },
- "options": {
- "useNewChapterEndpoint": true,
- "lang": "English"
- }
- },
- {
- "id": "mysticalmerries",
- "sourceSite": "https://mysticalmerries.com/",
- "sourceName": "MysticalSeries",
- "filters": {
- "sort": {
- "label": "Order by",
- "value": "",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "Rating",
- "value": "rating"
- },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "Latest",
- "value": "latest"
- },
- {
- "label": "Most Views",
- "value": "views"
- },
- {
- "label": "New",
- "value": "new-manga"
- },
- {
- "label": "Trending",
- "value": "trending"
- }
- ],
- "type": "Picker"
- },
- "genres": {
- "label": "GENRES",
- "value": "",
- "options": [
- { "label": "NONE", "value": "" },
- {
- "label": "Action",
- "value": "action"
- },
- {
- "label": "Adaptation",
- "value": "adaptation"
- },
- {
- "label": "Adventure",
- "value": "adventure"
- },
- {
- "label": "bilibili",
- "value": "bilibili"
- },
- {
- "label": "Chinese Novel",
- "value": "chinese-novel"
- },
- {
- "label": "Comedy",
- "value": "comedy"
- },
- {
- "label": "Crossdressing",
- "value": "crossdressing"
- },
- {
- "label": "Drama",
- "value": "drama"
- },
- {
- "label": "Dropped",
- "value": "dropped"
- },
- {
- "label": "Family",
- "value": "family"
- },
- {
- "label": "Fantasy",
- "value": "fantasy"
- },
- {
- "label": "Gender Bender",
- "value": "gender-bender"
- },
- {
- "label": "Historical",
- "value": "historical"
- },
- {
- "label": "Horror",
- "value": "horror"
- },
- {
- "label": "Isekai",
- "value": "isekai"
- },
- {
- "label": "Korean Novel",
- "value": "korean-novell"
- },
- {
- "label": "Manga",
- "value": "manga"
- },
- {
- "label": "Manhua",
- "value": "manhua"
- },
- {
- "label": "Manhwa",
- "value": "manhwa"
- },
- {
- "label": "Modern Romance",
- "value": "modern-romance"
- },
- {
- "label": "Mystery",
- "value": "mystery"
- },
- {
- "label": "Office Workers",
- "value": "office-workers"
- },
- {
- "label": "One shot",
- "value": "one-shot"
- },
- {
- "label": "Pilot Novel",
- "value": "pilot-novel"
- },
- {
- "label": "R15",
- "value": "r15"
- },
- {
- "label": "R19",
- "value": "r19"
- },
- {
- "label": "Regression",
- "value": "regression"
- },
- {
- "label": "Reincarnation",
- "value": "reincarnation"
- },
- {
- "label": "Reverse Harem",
- "value": "reverse-harem"
- },
- {
- "label": "Romance Fantasy",
- "value": "romance-fantasy"
- },
- {
- "label": "School Life",
- "value": "school-life"
- },
- {
- "label": "Sci-fi",
- "value": "sci-fi"
- },
- {
- "label": "Slice of Life",
- "value": "slice-of-life"
- },
- {
- "label": "Smut",
- "value": "smut"
- },
- {
- "label": "Supernatural",
- "value": "supernatural"
- },
- {
- "label": "Violence",
- "value": "violence"
- }
- ],
- "type": "Picker"
- }
- },
- "options": {
- "path": {
- "novels": "series",
- "novel": "series",
- "chapter": "series",
- "genres": "genre"
- },
- "useNewChapterEndpoint": true,
- "lang": "English"
- }
- },
- {
- "id": "morenovel",
- "sourceSite": "https://morenovel.net/",
- "sourceName": "MoreNovel",
- "filters": {
- "sort": {
- "label": "Order by",
- "value": "",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "Rating",
- "value": "rating"
- },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "Latest",
- "value": "latest"
- },
- {
- "label": "Most Views",
- "value": "views"
- },
- {
- "label": "New",
- "value": "new-manga"
- },
- {
- "label": "Trending",
- "value": "trending"
- }
- ],
- "type": "Picker"
- },
- "genres": {
- "label": "GENRES",
- "value": "",
- "options": [
- { "label": "NONE", "value": "" },
- {
- "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": "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": "Picker"
- }
- },
- "options": {
- "useNewChapterEndpoint": true,
- "lang": "Indonesian"
- }
- },
- {
- "id": "onlymtl",
- "sourceSite": "https://www.onlymtl.com/",
- "sourceName": "OnlyMTL",
- "filters": {},
- "options": {
- "useNewChapterEndpoint": true,
- "lang": "English"
- }
- },
- {
- "id": "hizomanga",
- "sourceSite": "https://hizomanga.com/",
- "sourceName": "HizoManga",
- "filters": {
- "sort": {
- "label": "ترتيب حسب",
- "value": "",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "New",
- "value": "new-manga"
- },
- {
- "label": "الأحدث",
- "value": "latest"
- },
- {
- "label": "الأكثر مشاهدة",
- "value": "views"
- },
- {
- "label": "التقييم",
- "value": "rating"
- },
- {
- "label": "الرائج",
- "value": "trending"
- }
- ],
- "type": "Picker"
- },
- "genres": {
- "label": "التصنيفات",
- "value": "",
- "options": [
- { "label": "NONE", "value": "" },
- {
- "label": "آلات",
- "value": "mechanisms"
- },
- {
- "label": "أكشن",
- "value": "action"
- },
- {
- "label": "إثارة",
- "value": "excitement"
- },
- {
- "label": "إيسكاي",
- "value": "%d8%a5%d9%8a%d8%b3%d9%83%d8%a7%d9%8a"
- },
- {
- "label": "الحياة اليومية",
- "value": "slice-of-life"
- },
- {
- "label": "الحياة مدرسية",
- "value": "school-life"
- },
- {
- "label": "تاريخي",
- "value": "historical"
- },
- {
- "label": "تراجيدي",
- "value": "tragic"
- },
- {
- "label": "جريمة",
- "value": "%d8%ac%d8%b1%d9%8a%d9%85%d8%a9"
- },
- {
- "label": "جندر بندر",
- "value": "%d8%ac%d9%86%d8%af%d8%b1-%d8%a8%d9%86%d8%af%d8%b1"
- },
- {
- "label": "جوسي",
- "value": "josei"
- },
- {
- "label": "حريم",
- "value": "harem"
- },
- {
- "label": "خارق للطبيعة",
- "value": "supernatural"
- },
- {
- "label": "خيال",
- "value": "fantasy"
- },
- {
- "label": "خيال علمي",
- "value": "sci-fi"
- },
- {
- "label": "دراما",
- "value": "drama"
- },
- {
- "label": "دموي",
- "value": "%d8%af%d9%85%d9%88%d9%8a"
- },
- {
- "label": "راشد",
- "value": "mature"
- },
- {
- "label": "رعب",
- "value": "horror"
- },
- {
- "label": "رومانسي",
- "value": "romance"
- },
- {
- "label": "رياضة",
- "value": "sports"
- },
- {
- "label": "زمنكاني",
- "value": "my-time"
- },
- {
- "label": "زومبي",
- "value": "%d8%b2%d9%88%d9%85%d8%a8%d9%8a"
- },
- {
- "label": "سينين",
- "value": "seinen"
- },
- {
- "label": "شريحة من الحياة",
- "value": "%d8%b4%d8%b1%d9%8a%d8%ad%d8%a9-%d9%85%d9%86-%d8%a7%d9%84%d8%ad%d9%8a%d8%a7%d8%a9"
- },
- {
- "label": "شوجو",
- "value": "shoujo"
- },
- {
- "label": "شونين",
- "value": "shounen"
- },
- {
- "label": "طبي",
- "value": "%d8%b7%d8%a8%d9%8a"
- },
- {
- "label": "غموض",
- "value": "ambiguity"
- },
- {
- "label": "فنون قتالية",
- "value": "martial-arts"
- },
- {
- "label": "قوة خارقة",
- "value": "superpower"
- },
- {
- "label": "كوميدي",
- "value": "comedy"
- },
- {
- "label": "مغامرات",
- "value": "adventure"
- },
- {
- "label": "نفسي",
- "value": "psychological"
- }
- ],
- "type": "Picker"
- }
- },
- "options": {
- "path": {
- "novels": "serie",
- "novel": "serie",
- "chapter": "serie",
- "genres": "manga-genre"
- },
- "useNewChapterEndpoint": true,
- "lang": "Arabic"
- }
- },
- {
- "id": "ar-mtl",
- "sourceSite": "https://ar-mtl.club/",
- "sourceName": "ArMTL",
- "filters": {},
- "options": {
- "useNewChapterEndpoint": true,
- "lang": "Arabic"
- }
- },
- {
- "id": "novel4up",
- "sourceSite": "https://novel4up.com/",
- "sourceName": "Novel4Up",
- "filters": {
- "sort": {
- "label": "ترتيب حسب:",
- "value": "",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "أ-ي",
- "value": "alphabet"
- },
- {
- "label": "الأحدث",
- "value": "latest"
- },
- {
- "label": "الأكثر مشاهدة",
- "value": "views"
- },
- {
- "label": "التقييم",
- "value": "rating"
- },
- {
- "label": "الجديد",
- "value": "new-manga"
- },
- {
- "label": "الشائع",
- "value": "trending"
- }
- ],
- "type": "Picker"
- },
- "genres": {
- "label": "التصنيفات",
- "value": "",
- "options": [
- { "label": "NONE", "value": "" },
- {
- "label": "أكشن",
- "value": "action"
- },
- {
- "label": "الخارق للطبيعة",
- "value": "supernatural"
- },
- {
- "label": "تاريخي",
- "value": "historical"
- },
- {
- "label": "تحقيق",
- "value": "detective"
- },
- {
- "label": "تراجيديا",
- "value": "tragedy"
- },
- {
- "label": "حريم",
- "value": "harem"
- },
- {
- "label": "حياة مدرسية",
- "value": "school-life"
- },
- {
- "label": "خيال علمي",
- "value": "sci-fi"
- },
- {
- "label": "دراما",
- "value": "drama"
- },
- {
- "label": "رعب",
- "value": "horror"
- },
- {
- "label": "رومانسي",
- "value": "romance"
- },
- {
- "label": "رياضة",
- "value": "sports"
- },
- {
- "label": "سحر",
- "value": "magic"
- },
- {
- "label": "شريحة من الحياة",
- "value": "slice-of-life"
- },
- {
- "label": "شوانهوا",
- "value": "xuanhuan"
- },
- {
- "label": "شوجو",
- "value": "shoujo"
- },
- {
- "label": "شونين",
- "value": "shounen"
- },
- {
- "label": "غموض",
- "value": "mystery"
- },
- {
- "label": "فانتازيا",
- "value": "fantasy"
- },
- {
- "label": "فنون قتال",
- "value": "martial-arts"
- },
- {
- "label": "كوميديا",
- "value": "comedy"
- },
- {
- "label": "مغامرة",
- "value": "adventure"
- },
- {
- "label": "ميكا",
- "value": "mecha"
- },
- {
- "label": "نفسي",
- "value": "psychological"
- },
- {
- "label": "ون شوت",
- "value": "one-shot"
- },
- {
- "label": "ووشيا",
- "value": "wuxia"
- }
- ],
- "type": "Picker"
- }
- },
- "options": {
- "lang": "Arabic"
- }
- },
- {
- "id": "teamxnovel",
- "sourceSite": "https://teamxnovel.com/",
- "sourceName": "TeamXNovel",
- "filters": {},
- "options": {
- "useNewChapterEndpoint": true,
- "lang": "Arabic"
- }
- },
- {
- "id": "turkcelightnovels",
- "sourceSite": "https://turkcelightnovels.com/",
- "sourceName": "TurkceLightNovels",
- "filters": {
- "sort": {
- "label": "Order by",
- "value": "",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "Rating",
- "value": "rating"
- },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "Latest",
- "value": "latest"
- },
- {
- "label": "Most Views",
- "value": "views"
- },
- {
- "label": "New",
- "value": "new-manga"
- },
- {
- "label": "Trending",
- "value": "trending"
- }
- ],
- "type": "Picker"
- }
- },
- "options": {
- "path": {
- "novels": "light-novel",
- "novel": "light-novel",
- "chapter": "light-novel"
- },
- "lang": "Turkish"
- }
- },
- {
- "id": "sonicmtl",
- "sourceSite": "https://www.sonicmtl.com/",
- "sourceName": "SonicMTL",
- "filters": {
- "sort": {
- "label": "Order by",
- "value": "",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "Rating",
- "value": "rating"
- },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "Latest",
- "value": "latest"
- },
- {
- "label": "Most Views",
- "value": "views"
- },
- {
- "label": "New",
- "value": "new-manga"
- },
- {
- "label": "Trending",
- "value": "trending"
- }
- ],
- "type": "Picker"
- },
- "genres": {
- "label": "GENRES",
- "value": "",
- "options": [
- { "label": "NONE", "value": "" },
- {
- "label": "Action",
- "value": "action"
- },
- {
- "label": "Adult",
- "value": "adult"
- },
- {
- "label": "Adventure",
- "value": "adventure"
- },
- {
- "label": "Comedy",
- "value": "comedy"
- },
- {
- "label": "Cooking",
- "value": "cooking"
- },
- {
- "label": "Detective",
- "value": "detective"
- },
- {
- "label": "Doujinshi",
- "value": "doujinshi"
- },
- {
- "label": "Drama",
- "value": "drama"
- },
- {
- "label": "Ecchi",
- "value": "ecchi"
- },
- {
- "label": "Fan-Fiction",
- "value": "fan-fiction"
- },
- {
- "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": "Live action",
- "value": "live-action"
- },
- {
- "label": "Manga",
- "value": "manga"
- },
- {
- "label": "Manhua",
- "value": "manhua"
- },
- {
- "label": "Manhwa",
- "value": "manhwa"
- },
- {
- "label": "Martial Arts",
- "value": "martial-arts"
- },
- {
- "label": "Mature",
- "value": "mature"
- },
- {
- "label": "Mecha",
- "value": "mecha"
- },
- {
- "label": "Mystery",
- "value": "mystery"
- },
- {
- "label": "One shot",
- "value": "one-shot"
- },
- {
- "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": "Smut",
- "value": "smut"
- },
- {
- "label": "Soft Yaoi",
- "value": "soft-yaoi"
- },
- {
- "label": "Soft Yuri",
- "value": "soft-yuri"
- },
- {
- "label": "Sports",
- "value": "sports"
- },
- {
- "label": "Supernatural",
- "value": "supernatural"
- },
- {
- "label": "Tragedy",
- "value": "tragedy"
- },
- {
- "label": "Urban Life",
- "value": "urban-life"
- },
- {
- "label": "Wuxia",
- "value": "wuxia"
- },
- {
- "label": "Xianxia",
- "value": "xianxia"
- },
- {
- "label": "Xuanhuan",
- "value": "xuanhuan"
- },
- {
- "label": "Yaoi",
- "value": "yaoi"
- },
- {
- "label": "Yuri",
- "value": "yuri"
- }
- ],
- "type": "Picker"
- }
- },
- "options": {
- "useNewChapterEndpoint": true,
- "lang": "English"
- }
- },
- {
- "id": "mtlnovel.club",
- "sourceSite": "https://mtlnovel.club/",
- "sourceName": "MTLNovel.Club",
- "filters": {},
- "options": {
- "useNewChapterEndpoint": true,
- "lang": "English"
- }
- },
- {
- "id": "noobchanTL",
- "sourceSite": "https://noobchan.xyz/",
- "sourceName": "Noobchan Translation",
- "filters": {},
- "options": {
- "useNewChapterEndpoint": true,
- "lang": "English"
- }
- },
- {
- "id": "guavaread",
- "sourceSite": "https://guavaread.com/",
- "sourceName": "Guavaread",
- "filters": {
- "sort": {
- "label": "Order by",
- "value": "",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "Rating",
- "value": "rating"
- },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "Latest",
- "value": "latest"
- },
- {
- "label": "Most Views",
- "value": "views"
- },
- {
- "label": "New",
- "value": "new-manga"
- },
- {
- "label": "Trending",
- "value": "trending"
- }
- ],
- "type": "Picker"
- },
- "genres": {
- "label": "GENRES",
- "value": "",
- "options": [
- { "label": "NONE", "value": "" },
- {
- "label": "Action",
- "value": "action"
- },
- {
- "label": "Adult",
- "value": "adult"
- },
- {
- "label": "Adventure",
- "value": "adventure"
- },
- {
- "label": "Comedy",
- "value": "comedy"
- },
- {
- "label": "Complete",
- "value": "complete"
- },
- {
- "label": "Cooking",
- "value": "cooking"
- },
- {
- "label": "Detective",
- "value": "detective"
- },
- {
- "label": "Drama",
- "value": "drama"
- },
- {
- "label": "Dropped",
- "value": "dropped"
- },
- {
- "label": "Ecchi",
- "value": "ecchi"
- },
- {
- "label": "Fantasy",
- "value": "fantasy"
- },
- {
- "label": "Gender Bender",
- "value": "gender-bender"
- },
- {
- "label": "Historical",
- "value": "historical"
- },
- {
- "label": "Horror",
- "value": "horror"
- },
- {
- "label": "Josei",
- "value": "josei"
- },
- {
- "label": "Mature",
- "value": "mature"
- },
- {
- "label": "Mystery",
- "value": "mystery"
- },
- {
- "label": "Original Story",
- "value": "original-story"
- },
- {
- "label": "Pilot",
- "value": "pilot"
- },
- {
- "label": "Psychological",
- "value": "psychological"
- },
- {
- "label": "R-15",
- "value": "r-15"
- },
- {
- "label": "R-19",
- "value": "r-19"
- },
- {
- "label": "Reverse Harem",
- "value": "reverse-harem"
- },
- {
- "label": "Romance",
- "value": "romance"
- },
- {
- "label": "School Life",
- "value": "school-life"
- },
- {
- "label": "Sci-fi",
- "value": "sci-fi"
- },
- {
- "label": "Shoujo",
- "value": "shoujo"
- },
- {
- "label": "Slice of Life",
- "value": "slice-of-life"
- },
- {
- "label": "Smut",
- "value": "smut"
- },
- {
- "label": "Supernatural",
- "value": "supernatural"
- },
- {
- "label": "Tragedy",
- "value": "tragedy"
- }
- ],
- "type": "Picker"
- }
- },
- "options": {
- "useNewChapterEndpoint": true,
- "lang": "English"
- }
- },
- {
- "id": "sweetEscapeTL",
- "sourceSite": "https://sweetescapetranslations.com/",
- "sourceName": "Sweet Escape Translations",
- "filters": {
- "sort": {
- "label": "Order by",
- "value": "",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "Rating",
- "value": "rating"
- },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "Latest",
- "value": "latest"
- },
- {
- "label": "Most Views",
- "value": "views"
- },
- {
- "label": "New",
- "value": "new-manga"
- },
- {
- "label": "Trending",
- "value": "trending"
- }
- ],
- "type": "Picker"
- },
- "genres": {
- "label": "GENRES",
- "value": "",
- "options": [
- { "label": "NONE", "value": "" },
- {
- "label": "Action",
- "value": "action"
- },
- {
- "label": "Adult",
- "value": "adult"
- },
- {
- "label": "Comedy",
- "value": "comedy"
- },
- {
- "label": "Drama",
- "value": "drama"
- },
- {
- "label": "Fantasy",
- "value": "fantasy"
- },
- {
- "label": "Gender Bender",
- "value": "gender-bender"
- },
- {
- "label": "Mature",
- "value": "mature"
- },
- {
- "label": "Modern",
- "value": "modern"
- },
- {
- "label": "Mystery",
- "value": "mystery"
- },
- {
- "label": "R-15",
- "value": "r-15"
- },
- {
- "label": "Romance",
- "value": "romance"
- },
- {
- "label": "Slice of Life",
- "value": "slice-of-life"
- }
- ],
- "type": "Picker"
- }
- },
- "options": {
- "path": {
- "novels": "manga",
- "novel": "manga",
- "chapter": "manga",
- "genres": "manga-genre"
- },
- "useNewChapterEndpoint": false,
- "lang": "English"
- }
- },
- {
- "id": "fanTLS",
- "sourceSite": "https://fanstranslations.com/",
- "sourceName": "Fans Translations",
- "filters": {
- "sort": {
- "label": "Order by",
- "value": "",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "Rating",
- "value": "rating"
- },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "Latest",
- "value": "latest"
- },
- {
- "label": "Most Views",
- "value": "views"
- },
- {
- "label": "New",
- "value": "new-manga"
- },
- {
- "label": "Trending",
- "value": "trending"
- }
- ],
- "type": "Picker"
- }
- },
- "options": {
- "useNewChapterEndpoint": true,
- "lang": "English"
- }
- },
- {
- "id": "riwyat",
- "sourceSite": "https://riwyat.com/",
- "sourceName": "Riwyat",
- "filters": {
- "sort": {
- "label": "Order by",
- "value": "",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "Rating",
- "value": "rating"
- },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "Latest",
- "value": "latest"
- },
- {
- "label": "Most Views",
- "value": "views"
- },
- {
- "label": "New",
- "value": "new-manga"
- },
- {
- "label": "Trending",
- "value": "trending"
- }
- ],
- "type": "Picker"
- },
- "genres": {
- "label": "GENRES",
- "value": "",
- "options": [
- { "label": "NONE", "value": "" },
- {
- "label": "أكشن",
- "value": "%d8%a3%d9%83%d8%b4%d9%86"
- },
- {
- "label": "أيتشي",
- "value": "%d8%a3%d9%8a%d8%aa%d8%b4%d9%8a"
- },
- {
- "label": "استراتجي",
- "value": "%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%d8%ac%d9%8a"
- },
- {
- "label": "العصر الحديث",
- "value": "%d8%a7%d9%84%d8%b9%d8%b5%d8%b1-%d8%a7%d9%84%d8%ad%d8%af%d9%8a%d8%ab"
- },
- {
- "label": "انتقام",
- "value": "%d8%a7%d9%86%d8%aa%d9%82%d8%a7%d9%85"
- },
- {
- "label": "بالغ",
- "value": "%d8%a8%d8%a7%d9%84%d8%ba"
- },
- {
- "label": "بناء مملكة",
- "value": "%d8%a8%d9%86%d8%a7%d8%a1-%d9%85%d9%85%d9%84%d9%83%d8%a9"
- },
- {
- "label": "بوليسي",
- "value": "%d8%a8%d9%88%d9%84%d9%8a%d8%b3%d9%8a"
- },
- {
- "label": "تاريخي",
- "value": "%d8%aa%d8%a7%d8%b1%d9%8a%d8%ae%d9%8a"
- },
- {
- "label": "جوسي",
- "value": "%d8%ac%d9%88%d8%b3%d9%8a"
- },
- {
- "label": "حريم",
- "value": "%d8%ad%d8%b1%d9%8a%d9%85"
- },
- {
- "label": "حياة يومية",
- "value": "%d8%ad%d9%8a%d8%a7%d8%a9-%d9%8a%d9%88%d9%85%d9%8a%d8%a9"
- },
- {
- "label": "خيال",
- "value": "%d8%ae%d9%8a%d8%a7%d9%84"
- },
- {
- "label": "خيال علمي",
- "value": "%d8%ae%d9%8a%d8%a7%d9%84-%d8%b9%d9%84%d9%85%d9%8a"
- },
- {
- "label": "دراما",
- "value": "%d8%af%d8%b1%d8%a7%d9%85%d8%a7"
- },
- {
- "label": "رعب",
- "value": "%d8%b1%d8%b9%d8%a8"
- },
- {
- "label": "رومانسية",
- "value": "%d8%b1%d9%88%d9%85%d8%a7%d9%86%d8%b3%d9%8a%d8%a9"
- },
- {
- "label": "رياضي",
- "value": "%d8%b1%d9%8a%d8%a7%d8%b6%d9%8a"
- },
- {
- "label": "زيانشيا",
- "value": "xianxia"
- },
- {
- "label": "سنين",
- "value": "%d8%b3%d9%86%d9%8a%d9%86"
- },
- {
- "label": "شريحة حياة",
- "value": "%d8%b4%d8%b1%d9%8a%d8%ad%d8%a9-%d8%ad%d9%8a%d8%a7%d8%a9"
- },
- {
- "label": "شوانهوان",
- "value": "xuanhuan"
- },
- {
- "label": "شوجو",
- "value": "%d8%b4%d9%88%d8%ac%d9%88"
- },
- {
- "label": "شونين",
- "value": "%d8%b4%d9%88%d9%86%d9%8a%d9%86"
- },
- {
- "label": "شيانشيا",
- "value": "%d8%b4%d9%8a%d8%a7%d9%86%d8%b4%d9%8a%d8%a7"
- },
- {
- "label": "عسكري",
- "value": "%d8%b9%d8%b3%d9%83%d8%b1%d9%8a"
- },
- {
- "label": "غموض",
- "value": "%d8%ba%d9%85%d9%88%d8%b6"
- },
- {
- "label": "فانتازيا",
- "value": "%d9%81%d8%a7%d9%86%d8%aa%d8%a7%d8%b2%d9%8a%d8%a7"
- },
- {
- "label": "فنون قتالية",
- "value": "%d9%81%d9%86%d9%88%d9%86-%d9%82%d8%aa%d8%a7%d9%84%d9%8a%d8%a9"
- },
- {
- "label": "قوى خارقة",
- "value": "%d9%82%d9%88%d9%89-%d8%ae%d8%a7%d8%b1%d9%82%d8%a9"
- },
- {
- "label": "كوميديا",
- "value": "%d9%83%d9%88%d9%85%d9%8a%d8%af%d9%8a%d8%a7"
- },
- {
- "label": "كوميك",
- "value": "%d9%83%d9%88%d9%85%d9%8a%d9%83"
- },
- {
- "label": "للكبار",
- "value": "%d9%84%d9%84%d9%83%d8%a8%d8%a7%d8%b1"
- },
- {
- "label": "مأساة",
- "value": "%d9%85%d8%a3%d8%b3%d8%a7%d8%a9"
- },
- {
- "label": "مانجا",
- "value": "%d9%85%d8%a7%d9%86%d8%ac%d8%a7"
- },
- {
- "label": "مانها",
- "value": "%d9%85%d8%a7%d9%86%d9%87%d8%a7"
- },
- {
- "label": "مانهوا",
- "value": "%d9%85%d8%a7%d9%86%d9%87%d9%88%d8%a7"
- },
- {
- "label": "مدرسي",
- "value": "%d9%85%d8%af%d8%b1%d8%b3%d9%8a"
- },
- {
- "label": "مصاصي دماء",
- "value": "%d9%85%d8%b5%d8%a7%d8%b5%d9%8a-%d8%af%d9%85%d8%a7%d8%a1"
- },
- {
- "label": "مغامرة",
- "value": "%d9%85%d8%ba%d8%a7%d9%85%d8%b1%d8%a9"
- },
- {
- "label": "مكتملة",
- "value": "%d9%85%d9%83%d8%aa%d9%85%d9%84%d8%a9"
- },
- {
- "label": "نفسي",
- "value": "%d9%86%d9%81%d8%b3%d9%8a"
- },
- {
- "label": "نهاية العالم",
- "value": "%d9%86%d9%87%d8%a7%d9%8a%d8%a9-%d8%a7%d9%84%d8%b9%d8%a7%d9%84%d9%85"
- },
- {
- "label": "واب تون",
- "value": "%d9%88%d8%a7%d8%a8-%d8%aa%d9%88%d9%86"
- },
- {
- "label": "وان شوت",
- "value": "%d9%88%d8%a7%d9%86-%d8%b4%d9%88%d8%aa"
- }
- ],
- "type": "Picker"
- }
- },
- "options": {
- "useNewChapterEndpoint": true,
- "lang": "Arabic"
- }
- },
- {
- "id": "novelstic",
- "sourceSite": "https://novelstic.com/",
- "sourceName": "Novelstic",
- "filters": {
- "sort": {
- "label": "Order by",
- "value": "",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "Rating",
- "value": "rating"
- },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "Latest",
- "value": "latest"
- },
- {
- "label": "Most Views",
- "value": "views"
- },
- {
- "label": "New",
- "value": "new-manga"
- },
- {
- "label": "Trending",
- "value": "trending"
- }
- ],
- "type": "Picker"
- }
- },
- "options": {
- "useNewChapterEndpoint": true,
- "lang": "English"
- }
- },
- {
- "id": "neosekaiTLS",
- "sourceSite": "https://www.neosekaitranslations.com/",
- "sourceName": "NeoSekai Translations",
- "filters": {
- "sort": {
- "label": "Order by",
- "value": "",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "Rating",
- "value": "rating"
- },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "Latest",
- "value": "latest"
- },
- {
- "label": "Most Views",
- "value": "views"
- },
- {
- "label": "New",
- "value": "new-manga"
- },
- {
- "label": "Trending",
- "value": "trending"
- }
- ],
- "type": "Picker"
- },
- "genres": {
- "label": "GENRES",
- "value": "",
- "options": [
- { "label": "NONE", "value": "" },
- {
- "label": "Action",
- "value": "action"
- },
- {
- "label": "Adventure",
- "value": "adventure"
- },
- {
- "label": "Comedy",
- "value": "comedy"
- },
- {
- "label": "Drama",
- "value": "drama"
- },
- {
- "label": "Fantasy",
- "value": "fantasy"
- },
- {
- "label": "Harem",
- "value": "harem"
- },
- {
- "label": "Horror",
- "value": "horror"
- },
- {
- "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": "Slice of Life",
- "value": "slice-of-life"
- }
- ],
- "type": "Picker"
- }
- },
- "options": {
- "lang": "English"
- }
- },
- {
- "id": "mtl-novel",
- "sourceSite": "https://mtl-novel.com/",
- "sourceName": "MTL-Novel",
- "filters": {
- "sort": {
- "label": "Order by",
- "value": "",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "Rating",
- "value": "rating"
- },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "Latest",
- "value": "latest"
- },
- {
- "label": "Most Views",
- "value": "views"
- },
- {
- "label": "New",
- "value": "new-manga"
- },
- {
- "label": "Trending",
- "value": "trending"
- }
- ],
- "type": "Picker"
- },
- "genres": {
- "label": "GENRES",
- "value": "",
- "options": [
- { "label": "NONE", "value": "" },
- {
- "label": "Action",
- "value": "action"
- },
- {
- "label": "Adult",
- "value": "adult"
- },
- {
- "label": "Adventure",
- "value": "adventure"
- },
- {
- "label": "Chinese",
- "value": "chinese"
- },
- {
- "label": "Comedy",
- "value": "comedy"
- },
- {
- "label": "Conan",
- "value": "conan"
- },
- {
- "label": "Drama",
- "value": "drama"
- },
- {
- "label": "Erciyuan",
- "value": "erciyuan"
- },
- {
- "label": "Fairy Tail",
- "value": "fairy-tail"
- },
- {
- "label": "Faloo",
- "value": "faloo"
- },
- {
- "label": "Fan-Fiction",
- "value": "fan-fiction"
- },
- {
- "label": "Fantasy",
- "value": "fantasy"
- },
- {
- "label": "FoodWars!",
- "value": "foodwars"
- },
- {
- "label": "Game",
- "value": "game"
- },
- {
- "label": "Gender Bender",
- "value": "gender-bender"
- },
- {
- "label": "Harem",
- "value": "harem"
- },
- {
- "label": "Historical",
- "value": "historical"
- },
- {
- "label": "Horror",
- "value": "horror"
- },
- {
- "label": "Hunter x Hunter",
- "value": "hunter-x-hunter"
- },
- {
- "label": "Japanese",
- "value": "japanese"
- },
- {
- "label": "Jojo",
- "value": "jojo"
- },
- {
- "label": "Josei",
- "value": "josei"
- },
- {
- "label": "Korean",
- "value": "korean"
- },
- {
- "label": "Martial Arts",
- "value": "martial-arts"
- },
- {
- "label": "Marvel",
- "value": "marvel"
- },
- {
- "label": "Mature",
- "value": "mature"
- },
- {
- "label": "Mecha",
- "value": "mecha"
- },
- {
- "label": "Military",
- "value": "military"
- },
- {
- "label": "Mystery",
- "value": "mystery"
- },
- {
- "label": "Naruto",
- "value": "naruto"
- },
- {
- "label": "One piece",
- "value": "one-piece"
- },
- {
- "label": "Pokemon",
- "value": "pokemon"
- },
- {
- "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 Ai",
- "value": "shounen-ai"
- },
- {
- "label": "Slice of Life",
- "value": "slice-of-life"
- },
- {
- "label": "Smut",
- "value": "smut"
- },
- {
- "label": "Sport",
- "value": "sport"
- },
- {
- "label": "Sports",
- "value": "sports"
- },
- {
- "label": "Supernatural",
- "value": "supernatural"
- },
- {
- "label": "System",
- "value": "system"
- },
- {
- "label": "Tragedy",
- "value": "tragedy"
- },
- {
- "label": "Urban",
- "value": "urban"
- },
- {
- "label": "Urban Life",
- "value": "urban-life"
- },
- {
- "label": "Wuxia",
- "value": "wuxia"
- },
- {
- "label": "Xianxia",
- "value": "xianxia"
- },
- {
- "label": "Xuanhuan",
- "value": "xuanhuan"
- },
- {
- "label": "Yaoi",
- "value": "yaoi"
- },
- {
- "label": "Yuri",
- "value": "yuri"
- }
- ],
- "type": "Picker"
- }
- },
- "options": {
- "path": {
- "genres": "manga-genre"
- },
- "useNewChapterEndpoint": true,
- "lang": "English"
- }
- },
- {
- "id": "zetroTL",
- "sourceSite": "https://zetrotranslation.com/",
- "sourceName": "Zetro Translation",
- "filters": {
- "sort": {
- "label": "Order by",
- "value": "",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "Rating",
- "value": "rating"
- },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "Latest",
- "value": "latest"
- },
- {
- "label": "Most Views",
- "value": "views"
- },
- {
- "label": "New",
- "value": "new-manga"
- },
- {
- "label": "Trending",
- "value": "trending"
- }
- ],
- "type": "Picker"
- },
- "genres": {
- "label": "GENRES",
- "value": "",
- "options": [
- { "label": "NONE", "value": "" },
- {
- "label": "Action",
- "value": "action"
- },
- {
- "label": "Adventure",
- "value": "adventure"
- },
- {
- "label": "Comedy",
- "value": "comedy"
- },
- {
- "label": "Dark Elf",
- "value": "dark-elf"
- },
- {
- "label": "Drama",
- "value": "drama"
- },
- {
- "label": "Ecchi",
- "value": "ecchi"
- },
- {
- "label": "Fantasy",
- "value": "fantasy"
- },
- {
- "label": "Harem",
- "value": "harem"
- },
- {
- "label": "Horror",
- "value": "horror"
- },
- {
- "label": "Isekai",
- "value": "isekai"
- },
- {
- "label": "Mecha",
- "value": "mecha"
- },
- {
- "label": "Mystery",
- "value": "mystery"
- },
- {
- "label": "NTR",
- "value": "ntr"
- },
- {
- "label": "Original Works",
- "value": "original-works"
- },
- {
- "label": "Rom-Com",
- "value": "rom-com"
- },
- {
- "label": "Romance",
- "value": "romance"
- },
- {
- "label": "School",
- "value": "school"
- },
- {
- "label": "Shoujo",
- "value": "shoujo"
- },
- {
- "label": "Slice of Life",
- "value": "slice-of-life"
- },
- {
- "label": "Villain",
- "value": "villain"
- },
- {
- "label": "Yuri",
- "value": "yuri"
- }
- ],
- "type": "Picker"
- }
- },
- "options": {
- "path": {
- "genres": "genre"
- },
- "lang": "English"
- }
- },
- {
- "id": "nocturneTLS",
- "sourceSite": "https://nocturnetls.net/",
- "sourceName": "Nocturne Translations",
- "filters": {
- "sort": {
- "label": "Order by",
- "value": "",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "Rating",
- "value": "rating"
- },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "Latest",
- "value": "latest"
- },
- {
- "label": "Most Views",
- "value": "views"
- },
- {
- "label": "New",
- "value": "new-manga"
- },
- {
- "label": "Trending",
- "value": "trending"
- }
- ],
- "type": "Picker"
- },
- "genres": {
- "label": "GENRES",
- "value": "",
- "options": [
- { "label": "NONE", "value": "" },
- {
- "label": "Action",
- "value": "action"
- },
- {
- "label": "Adult",
- "value": "adult"
- },
- {
- "label": "Adventure",
- "value": "adventure"
- },
- {
- "label": "Anime",
- "value": "anime"
- },
- {
- "label": "Cartoon",
- "value": "cartoon"
- },
- {
- "label": "Comedy",
- "value": "comedy"
- },
- {
- "label": "Comic",
- "value": "comic"
- },
- {
- "label": "Cooking",
- "value": "cooking"
- },
- {
- "label": "Detective",
- "value": "detective"
- },
- {
- "label": "Doujinshi",
- "value": "doujinshi"
- },
- {
- "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": "Josei",
- "value": "josei"
- },
- {
- "label": "Live action",
- "value": "live-action"
- },
- {
- "label": "Manga",
- "value": "manga"
- },
- {
- "label": "Manhua",
- "value": "manhua"
- },
- {
- "label": "Manhwa",
- "value": "manhwa"
- },
- {
- "label": "Martial Arts",
- "value": "martial-arts"
- },
- {
- "label": "Mature",
- "value": "mature"
- },
- {
- "label": "Mecha",
- "value": "mecha"
- },
- {
- "label": "Mystery",
- "value": "mystery"
- },
- {
- "label": "One shot",
- "value": "one-shot"
- },
- {
- "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": "Smut",
- "value": "smut"
- },
- {
- "label": "Soft Yaoi",
- "value": "soft-yaoi"
- },
- {
- "label": "Soft Yuri",
- "value": "soft-yuri"
- },
- {
- "label": "Sports",
- "value": "sports"
- },
- {
- "label": "Supernatural",
- "value": "supernatural"
- },
- {
- "label": "Tragedy",
- "value": "tragedy"
- },
- {
- "label": "Webtoon",
- "value": "webtoon"
- },
- {
- "label": "Yaoi",
- "value": "yaoi"
- },
- {
- "label": "Yuri",
- "value": "yuri"
- }
- ],
- "type": "Picker"
- }
- },
- "options": {
- "path": {
- "novels": "novels",
- "novel": "novels",
- "chapter": "novels",
- "genres": "manga-genre"
- },
- "lang": "English"
- }
- },
- {
- "id": "sugarbbscan",
- "sourceSite": "https://sugarbbscan.com/",
- "sourceName": "Sugar Babies",
- "filters": {},
- "options": {
- "path": {
- "novels": "series",
- "novel": "series",
- "chapter": "series"
- },
- "lang": "English"
- }
- },
- {
- "id": "novelroom",
- "sourceSite": "https://novelroom.net/",
- "sourceName": "Novelroom.net",
- "filters": {},
- "options": {
- "path": {
- "novels": "manga",
- "novel": "manga",
- "chapter": "manga"
- },
- "lang": "English"
- }
- },
- {
- "id": "novelr18",
- "sourceSite": "https://novelr18.com/",
- "sourceName": "NovelR18",
- "filters": {
- "sort": {
- "label": "Sort by :",
- "value": "",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "Rating",
- "value": "rating"
- },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "Latest Update",
- "value": "latest"
- },
- {
- "label": "Most Views",
- "value": "views"
- },
- {
- "label": "Newly Added Novels",
- "value": "new-manga"
- },
- {
- "label": "Trending",
- "value": "trending"
- }
- ],
- "type": "Picker"
- }
- },
- "options": {
- "path": {
- "novels": "novel",
- "novel": "manga",
- "chapter": "manga"
- },
- "useNewChapterEndpoint": true,
- "lang": "English"
- }
- },
- {
- "id": "webnoveloku",
- "sourceSite": "https://www.webnoveloku.com/",
- "sourceName": "WebNovelOku ",
- "filters": {
- "sort": {
- "label": "Sırala",
- "value": "",
- "options": [
- { "label": "Default", "value": "" },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "En Son",
- "value": "latest"
- },
- {
- "label": "Görüntülenme",
- "value": "views"
- },
- {
- "label": "Popülarite",
- "value": "trending"
- },
- {
- "label": "Reyting",
- "value": "rating"
- },
- {
- "label": "Yeni",
- "value": "new-manga"
- }
- ],
- "type": "Picker"
- }
- },
- "options": {
- "lang": "Turkish"
- }
- },
- {
- "id": "kiniga",
- "sourceSite": "https://kiniga.com/",
- "sourceName": "Kiniga",
- "filters": {
- "sort": {
- "label": "Orden por",
- "options": [
- { "label": "Relevância", "value": "" },
- {
- "label": "A-Z",
- "value": "alphabet"
- },
- {
- "label": "Mais Antigo",
- "value": "latest"
- },
- {
- "label": "Mais vistos",
- "value": "views"
- },
- {
- "label": "Tendência",
- "value": "trending"
- },
- {
- "label": "Avaliação",
- "value": "rating"
- },
- {
- "label": "Novo",
- "value": "new-manga"
- }
- ],
- "value": "",
- "type": "Picker"
- },
- "genres": {
- "label": "Generos",
- "options": [
- { "label": "Sem Filtro", "value": "" },
- { "label": "Ação", "value": "action" },
- { "label": "Artes Marciais", "value": "artes-marciais" },
- { "label": "Aventura", "value": "aventura" },
- { "label": "Comédia", "value": "comedia" },
- { "label": "Contemporâneo", "value": "contemporaneo" },
- { "label": "Contos Originais", "value": "contos-originais" },
- { "label": "Crime", "value": "crime" },
- { "label": "Cyberpunk", "value": "cyberpunk" },
- { "label": "Destaque", "value": "destaque" },
- { "label": "Distopia", "value": "distopia" },
- { "label": "Drama", "value": "drama" },
- { "label": "Ecchi", "value": "ecchi" },
- { "label": "Espacial", "value": "espacial" },
- { "label": "Esportes", "value": "esportes" },
- { "label": "Fanfic", "value": "fanfic" },
- { "label": "Fantasia", "value": "fantasia" },
- { "label": "Ficção Científica", "value": "ficcao-cientifica" },
- { "label": "Gastronomia", "value": "gastronomia" },
- { "label": "Harem", "value": "harem" },
- { "label": "Histórico", "value": "historico" },
- { "label": "Horror", "value": "horror" },
- { "label": "Infantil", "value": "infantil" },
- { "label": "Isekai", "value": "isekai" },
- { "label": "Jogos", "value": "jogos" },
- { "label": "LGBT+", "value": "lgbt" },
- { "label": "Magia", "value": "magia" },
- { "label": "Mecha", "value": "mecha" },
- { "label": "Medieval", "value": "medieval" },
- { "label": "Militar", "value": "militar" },
- { "label": "Mistério", "value": "misterio" },
- { "label": "Mitologia", "value": "mitologia" },
- { "label": "Moderno", "value": "moderno" },
- { "label": "Pós-Apocalíptico", "value": "pos-apocaliptico" },
- { "label": "Psicológico", "value": "psicologico" },
- { "label": "Realidade Virtual", "value": "realidade-virtual" },
- { "label": "Recomendado", "value": "recomendado" },
- { "label": "Romance", "value": "romance" },
- { "label": "RPG", "value": "rpg" },
- { "label": "Ficção Científica", "value": "sci-fi" },
- { "label": "Seinen", "value": "seinen" },
- { "label": "Shounen", "value": "shounen" },
- { "label": "Sistema de Jogo", "value": "sistema-de-jogo" },
- { "label": "Slice of Life", "value": "slice-of-life" },
- { "label": "SNKHome", "value": "snkhome" },
- { "label": "Sobrenatural", "value": "sobrenatural" },
- { "label": "Somente na Kiniga", "value": "somente-na-kiniga" },
- { "label": "Suspense", "value": "suspense" },
- { "label": "Terror", "value": "terror" },
- { "label": "Terror Psicológico", "value": "terror-psicologico" },
- { "label": "Traduções", "value": "traducoes" },
- { "label": "Tragédia", "value": "tragedia" },
- { "label": "Urbano", "value": "urbano" },
- { "label": "Vida Escolar", "value": "vida-escolar" }
- ],
- "value": "",
- "type": "Picker"
- }
- },
- "options": {
- "path": {
- "novels": "projetos",
- "novel": "projeto",
- "chapter": "capitulo",
- "genres": "genero"
- },
- "lang": "Portuguese"
- }
+ "options": {
+ "path": {
+ "genres": "manga-genre"
+ },
+ "useNewChapterEndpoint": true
}
+ },
+ {
+ "id": "zinnovel",
+ "sourceSite": "https://zinnovel.com/",
+ "sourceName": "ZinnNovel",
+ "filters": {
+ "sort": {
+ "label": "Order by",
+ "value": "",
+ "options": [
+ {
+ "label": "Rating",
+ "value": "rating"
+ },
+ {
+ "label": "A-Z",
+ "value": "alphabet"
+ },
+ {
+ "label": "Latest",
+ "value": "latest"
+ },
+ {
+ "label": "Most Views",
+ "value": "views"
+ },
+ {
+ "label": "New",
+ "value": "new-manga"
+ },
+ {
+ "label": "Trending",
+ "value": "trending"
+ }
+ ],
+ "type": "Picker"
+ },
+ "genres": {
+ "label": "GENRES",
+ "value": "",
+ "options": [
+ {
+ "label": "Action",
+ "value": "action"
+ },
+ {
+ "label": "Adult",
+ "value": "adult"
+ },
+ {
+ "label": "Adventure",
+ "value": "adventure"
+ },
+ {
+ "label": "Anime",
+ "value": "anime"
+ },
+ {
+ "label": "Cartoon",
+ "value": "cartoon"
+ },
+ {
+ "label": "Comedy",
+ "value": "comedy"
+ },
+ {
+ "label": "Comic",
+ "value": "comic"
+ },
+ {
+ "label": "Cooking",
+ "value": "cooking"
+ },
+ {
+ "label": "Detective",
+ "value": "detective"
+ },
+ {
+ "label": "Doujinshi",
+ "value": "doujinshi"
+ },
+ {
+ "label": "Drama",
+ "value": "drama"
+ },
+ {
+ "label": "Ecchi",
+ "value": "ecchi"
+ },
+ {
+ "label": "Fan-Fiction",
+ "value": "fan-fiction"
+ },
+ {
+ "label": "Fantasy",
+ "value": "fantasy"
+ },
+ {
+ "label": "Game",
+ "value": "game"
+ },
+ {
+ "label": "Gender Bender",
+ "value": "gender-bender"
+ },
+ {
+ "label": "Harem",
+ "value": "harem"
+ },
+ {
+ "label": "Historical",
+ "value": "historical"
+ },
+ {
+ "label": "Horror",
+ "value": "horror"
+ },
+ {
+ "label": "Humor",
+ "value": "humor"
+ },
+ {
+ "label": "Isekai",
+ "value": "isekai"
+ },
+ {
+ "label": "Josei",
+ "value": "josei"
+ },
+ {
+ "label": "Live action",
+ "value": "live-action"
+ },
+ {
+ "label": "Lolicon",
+ "value": "lolicon"
+ },
+ {
+ "label": "Magic",
+ "value": "magic"
+ },
+ {
+ "label": "Magical Realism",
+ "value": "magical-realism"
+ },
+ {
+ "label": "Manga",
+ "value": "manga"
+ },
+ {
+ "label": "Manhua",
+ "value": "manhua"
+ },
+ {
+ "label": "Manhwa",
+ "value": "manhwa"
+ },
+ {
+ "label": "Martial Arts",
+ "value": "martial-arts"
+ },
+ {
+ "label": "Mature",
+ "value": "mature"
+ },
+ {
+ "label": "Mecha",
+ "value": "mecha"
+ },
+ {
+ "label": "Mystery",
+ "value": "mystery"
+ },
+ {
+ "label": "One shot",
+ "value": "one-shot"
+ },
+ {
+ "label": "Psychological",
+ "value": "psychological"
+ },
+ {
+ "label": "Reincarnation",
+ "value": "reincarnation"
+ },
+ {
+ "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": "Smut",
+ "value": "smut"
+ },
+ {
+ "label": "Soft Yaoi",
+ "value": "soft-yaoi"
+ },
+ {
+ "label": "Soft Yuri",
+ "value": "soft-yuri"
+ },
+ {
+ "label": "Sports",
+ "value": "sports"
+ },
+ {
+ "label": "Supernatural",
+ "value": "supernatural"
+ },
+ {
+ "label": "Tragedy",
+ "value": "tragedy"
+ },
+ {
+ "label": "Video Games",
+ "value": "video-games"
+ },
+ {
+ "label": "Webtoon",
+ "value": "webtoon"
+ },
+ {
+ "label": "Wuxia",
+ "value": "wuxia"
+ },
+ {
+ "label": "Xianxia",
+ "value": "xianxia"
+ },
+ {
+ "label": "Xuanhuan",
+ "value": "xuanhuan"
+ },
+ {
+ "label": "Yaoi",
+ "value": "yaoi"
+ },
+ {
+ "label": "Yuri",
+ "value": "yuri"
+ }
+ ],
+ "type": "Picker"
+ }
+ },
+ "options": {
+ "path": {
+ "novels": "manga",
+ "novel": "manga",
+ "chapter": "manga",
+ "genres": "manga-genre"
+ }
+ }
+ },
+ {
+ "id": "novelTL",
+ "sourceSite": "https://noveltranslate.com/",
+ "sourceName": "NovelTranslate",
+ "filters": {
+ "sort": {
+ "label": "Order by",
+ "value": "",
+ "options": [
+ {
+ "label": "Rating",
+ "value": "rating"
+ },
+ {
+ "label": "A-Z",
+ "value": "alphabet"
+ },
+ {
+ "label": "Latest",
+ "value": "latest"
+ },
+ {
+ "label": "Most Views",
+ "value": "views"
+ },
+ {
+ "label": "New",
+ "value": "new-manga"
+ },
+ {
+ "label": "Trending",
+ "value": "trending"
+ }
+ ],
+ "type": "Picker"
+ },
+ "genres": {
+ "label": "GENRES",
+ "value": "",
+ "options": [
+ {
+ "label": "Action",
+ "value": "action"
+ },
+ {
+ "label": "Adult",
+ "value": "adult"
+ },
+ {
+ "label": "Adventure",
+ "value": "adventure"
+ },
+ {
+ "label": "Bleach",
+ "value": "bleach"
+ },
+ {
+ "label": "Chinese",
+ "value": "chinese"
+ },
+ {
+ "label": "Comedy",
+ "value": "comedy"
+ },
+ {
+ "label": "Conan",
+ "value": "conan"
+ },
+ {
+ "label": "cooking",
+ "value": "cooking"
+ },
+ {
+ "label": "Dragon Ball",
+ "value": "dragon-ball"
+ },
+ {
+ "label": "Drama",
+ "value": "drama"
+ },
+ {
+ "label": "Ecchi",
+ "value": "ecchi"
+ },
+ {
+ "label": "Erciyuan",
+ "value": "erciyuan"
+ },
+ {
+ "label": "Fairy Tail",
+ "value": "fairy-tail"
+ },
+ {
+ "label": "Faloo",
+ "value": "faloo"
+ },
+ {
+ "label": "Fan-Fiction",
+ "value": "fan-fiction"
+ },
+ {
+ "label": "Fantasy",
+ "value": "fantasy"
+ },
+ {
+ "label": "FoodWars!",
+ "value": "foodwars"
+ },
+ {
+ "label": "Game",
+ "value": "game"
+ },
+ {
+ "label": "Gender Bender",
+ "value": "gender-bender"
+ },
+ {
+ "label": "Harem",
+ "value": "harem"
+ },
+ {
+ "label": "Historical",
+ "value": "historical"
+ },
+ {
+ "label": "Horror",
+ "value": "horror"
+ },
+ {
+ "label": "Hunter x Hunter",
+ "value": "hunter-x-hunter"
+ },
+ {
+ "label": "Isekai",
+ "value": "isekai"
+ },
+ {
+ "label": "Japanese",
+ "value": "japanese"
+ },
+ {
+ "label": "Jojo",
+ "value": "jojo"
+ },
+ {
+ "label": "Josei",
+ "value": "josei"
+ },
+ {
+ "label": "Korean",
+ "value": "korean"
+ },
+ {
+ "label": "Martial Arts",
+ "value": "martial-arts"
+ },
+ {
+ "label": "Marvel",
+ "value": "marvel"
+ },
+ {
+ "label": "Mature",
+ "value": "mature"
+ },
+ {
+ "label": "Mecha",
+ "value": "mecha"
+ },
+ {
+ "label": "Military",
+ "value": "military"
+ },
+ {
+ "label": "Mystery",
+ "value": "mystery"
+ },
+ {
+ "label": "Naruto",
+ "value": "naruto"
+ },
+ {
+ "label": "One piece",
+ "value": "one-piece"
+ },
+ {
+ "label": "Pokemon",
+ "value": "pokemon"
+ },
+ {
+ "label": "Political",
+ "value": "political"
+ },
+ {
+ "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": "Smut",
+ "value": "smut"
+ },
+ {
+ "label": "Sport",
+ "value": "sport"
+ },
+ {
+ "label": "Sports",
+ "value": "sports"
+ },
+ {
+ "label": "Supernatural",
+ "value": "supernatural"
+ },
+ {
+ "label": "System",
+ "value": "system"
+ },
+ {
+ "label": "Toriko",
+ "value": "toriko"
+ },
+ {
+ "label": "Tragedy",
+ "value": "tragedy"
+ },
+ {
+ "label": "Urban",
+ "value": "urban"
+ },
+ {
+ "label": "Urban Life",
+ "value": "urban-life"
+ },
+ {
+ "label": "Wuxia",
+ "value": "wuxia"
+ },
+ {
+ "label": "Xianxia",
+ "value": "xianxia"
+ },
+ {
+ "label": "Xuanhuan",
+ "value": "xuanhuan"
+ },
+ {
+ "label": "Yaoi",
+ "value": "yaoi"
+ },
+ {
+ "label": "Yuri",
+ "value": "yuri"
+ }
+ ],
+ "type": "Picker"
+ }
+ },
+ "options": {
+ "path": {
+ "novels": "all-novels",
+ "novel": "manga",
+ "chapter": "manga",
+ "genres": "manga-genre"
+ }
+ }
+ },
+ {
+ "id": "lunarletters",
+ "sourceSite": "https://www.lunarletters.com/",
+ "sourceName": "LunarLetters",
+ "options": {
+ "path": {
+ "novels": "series",
+ "novel": "series",
+ "chapter": "series"
+ },
+ "useNewChapterEndpoint": true
+ }
+ },
+ {
+ "id": "sleeptTLS",
+ "sourceSite": "https://sleepytranslations.com/",
+ "sourceName": "SleepyTranslations",
+ "filters": {
+ "sort": {
+ "label": "Order by",
+ "value": "",
+ "options": [
+ {
+ "label": "Rating",
+ "value": "rating"
+ },
+ {
+ "label": "A-Z",
+ "value": "alphabet"
+ },
+ {
+ "label": "Latest",
+ "value": "latest"
+ },
+ {
+ "label": "Most Views",
+ "value": "views"
+ },
+ {
+ "label": "New",
+ "value": "new-manga"
+ },
+ {
+ "label": "Trending",
+ "value": "trending"
+ }
+ ],
+ "type": "Picker"
+ }
+ },
+ "options": {
+ "path": {
+ "novels": "series",
+ "novel": "series",
+ "chapter": "series"
+ },
+ "useNewChapterEndpoint": true
+ }
+ },
+ {
+ "id": "freenovel.me",
+ "sourceSite": "https://freenovel.me/",
+ "sourceName": "FreeNovelMe",
+ "filters": {
+ "sort": {
+ "label": "Order by",
+ "value": "",
+ "options": [
+ {
+ "label": "Rating",
+ "value": "rating"
+ },
+ {
+ "label": "A-Z",
+ "value": "alphabet"
+ },
+ {
+ "label": "Latest",
+ "value": "latest"
+ },
+ {
+ "label": "Most Views",
+ "value": "views"
+ },
+ {
+ "label": "New",
+ "value": "new-manga"
+ },
+ {
+ "label": "Trending",
+ "value": "trending"
+ }
+ ],
+ "type": "Picker"
+ },
+ "genres": {
+ "label": "GENRES",
+ "value": "",
+ "options": [
+ {
+ "label": "Action",
+ "value": "action"
+ },
+ {
+ "label": "Adult",
+ "value": "adult"
+ },
+ {
+ "label": "Adventure",
+ "value": "adventure"
+ },
+ {
+ "label": "Cartoon",
+ "value": "cartoon"
+ },
+ {
+ "label": "Comedy",
+ "value": "comedy"
+ },
+ {
+ "label": "Cooking",
+ "value": "cooking"
+ },
+ {
+ "label": "Detective",
+ "value": "detective"
+ },
+ {
+ "label": "Drama",
+ "value": "drama"
+ },
+ {
+ "label": "Fantasy",
+ "value": "fantasy"
+ },
+ {
+ "label": "Game",
+ "value": "game"
+ },
+ {
+ "label": "Gender Bender",
+ "value": "gender-bender"
+ },
+ {
+ "label": "Historical",
+ "value": "historical"
+ },
+ {
+ "label": "History",
+ "value": "history"
+ },
+ {
+ "label": "Horror",
+ "value": "horror"
+ },
+ {
+ "label": "Josei",
+ "value": "josei"
+ },
+ {
+ "label": "Live action",
+ "value": "live-action"
+ },
+ {
+ "label": "Martial",
+ "value": "martial"
+ },
+ {
+ "label": "Martial Arts",
+ "value": "martial-arts"
+ },
+ {
+ "label": "Mature",
+ "value": "mature"
+ },
+ {
+ "label": "Mecha",
+ "value": "mecha"
+ },
+ {
+ "label": "Mystery",
+ "value": "mystery"
+ },
+ {
+ "label": "One shot",
+ "value": "one-shot"
+ },
+ {
+ "label": "Premium",
+ "value": "premium"
+ },
+ {
+ "label": "Psychological",
+ "value": "psychological"
+ },
+ {
+ "label": "Reincarnation",
+ "value": "reincarnation"
+ },
+ {
+ "label": "Romance",
+ "value": "romance"
+ },
+ {
+ "label": "School Life",
+ "value": "school-life"
+ },
+ {
+ "label": "Sci-fi",
+ "value": "sci-fi"
+ },
+ {
+ "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": "Xuanhuan",
+ "value": "xuanhuan"
+ }
+ ],
+ "type": "Picker"
+ }
+ }
+ },
+ {
+ "id": "1stkissnovel",
+ "sourceSite": "https://1stkissnovel.org/",
+ "sourceName": "FirstKissNovel",
+ "filters": {
+ "sort": {
+ "label": "Order by",
+ "value": "",
+ "options": [
+ {
+ "label": "Rating",
+ "value": "rating"
+ },
+ {
+ "label": "A-Z",
+ "value": "alphabet"
+ },
+ {
+ "label": "Latest",
+ "value": "latest"
+ },
+ {
+ "label": "Most Views",
+ "value": "views"
+ },
+ {
+ "label": "New",
+ "value": "new-manga"
+ },
+ {
+ "label": "Trending",
+ "value": "trending"
+ }
+ ],
+ "type": "Picker"
+ },
+ "genres": {
+ "label": "GENRES",
+ "value": "",
+ "options": [
+ {
+ "label": "Action",
+ "value": "action"
+ },
+ {
+ "label": "Adult",
+ "value": "adult"
+ },
+ {
+ "label": "Adventure",
+ "value": "adventure"
+ },
+ {
+ "label": "Anime",
+ "value": "anime"
+ },
+ {
+ "label": "Apocalypse",
+ "value": "apocalypse"
+ },
+ {
+ "label": "Boy's Love",
+ "value": "boys-love"
+ },
+ {
+ "label": "Comedy",
+ "value": "comedy"
+ },
+ {
+ "label": "Completed",
+ "value": "completed"
+ },
+ {
+ "label": "Cooking",
+ "value": "cooking"
+ },
+ {
+ "label": "Demons",
+ "value": "demons"
+ },
+ {
+ "label": "Detective",
+ "value": "detective"
+ },
+ {
+ "label": "Drama",
+ "value": "drama"
+ },
+ {
+ "label": "Ecchi",
+ "value": "ecchi"
+ },
+ {
+ "label": "Fan-Fiction",
+ "value": "fan-fiction"
+ },
+ {
+ "label": "Fantasy",
+ "value": "fantasy"
+ },
+ {
+ "label": "Food",
+ "value": "food"
+ },
+ {
+ "label": "Game",
+ "value": "game"
+ },
+ {
+ "label": "Gender Bender",
+ "value": "gender-bender"
+ },
+ {
+ "label": "Girls Love",
+ "value": "girls-love"
+ },
+ {
+ "label": "Harem",
+ "value": "harem"
+ },
+ {
+ "label": "Historical",
+ "value": "historical"
+ },
+ {
+ "label": "Horror",
+ "value": "horror"
+ },
+ {
+ "label": "Humor",
+ "value": "humor"
+ },
+ {
+ "label": "Isekai",
+ "value": "isekai"
+ },
+ {
+ "label": "Josei",
+ "value": "josei"
+ },
+ {
+ "label": "Magic",
+ "value": "magic"
+ },
+ {
+ "label": "Magical",
+ "value": "magical"
+ },
+ {
+ "label": "Manhua",
+ "value": "manhua"
+ },
+ {
+ "label": "Manhwa",
+ "value": "manhwa"
+ },
+ {
+ "label": "Martial Arts",
+ "value": "martial-arts"
+ },
+ {
+ "label": "Mature",
+ "value": "mature"
+ },
+ {
+ "label": "Mecha",
+ "value": "mecha"
+ },
+ {
+ "label": "Medical",
+ "value": "medical"
+ },
+ {
+ "label": "Military",
+ "value": "military"
+ },
+ {
+ "label": "Moder",
+ "value": "moder"
+ },
+ {
+ "label": "Modern",
+ "value": "modern"
+ },
+ {
+ "label": "Murim",
+ "value": "murim"
+ },
+ {
+ "label": "Music",
+ "value": "music"
+ },
+ {
+ "label": "Mystery",
+ "value": "mystery"
+ },
+ {
+ "label": "Psychological",
+ "value": "psychological"
+ },
+ {
+ "label": "Reverse",
+ "value": "reverse"
+ },
+ {
+ "label": "Reverse harem",
+ "value": "reverse-harem"
+ },
+ {
+ "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": "Smut",
+ "value": "smut"
+ },
+ {
+ "label": "Sports",
+ "value": "sports"
+ },
+ {
+ "label": "Super power",
+ "value": "super-power"
+ },
+ {
+ "label": "Superhero",
+ "value": "superhero"
+ },
+ {
+ "label": "Supernatural",
+ "value": "supernatural"
+ },
+ {
+ "label": "Thriller",
+ "value": "thriller"
+ },
+ {
+ "label": "Tragedy",
+ "value": "tragedy"
+ },
+ {
+ "label": "Urban Life",
+ "value": "urban-life"
+ },
+ {
+ "label": "Vampire",
+ "value": "vampire"
+ },
+ {
+ "label": "Webtoons",
+ "value": "webtoons"
+ },
+ {
+ "label": "Wuxia",
+ "value": "wuxia"
+ },
+ {
+ "label": "Xianxia",
+ "value": "xianxia"
+ },
+ {
+ "label": "Xuanhuan",
+ "value": "xuanhuan"
+ },
+ {
+ "label": "Yaoi",
+ "value": "yaoi"
+ },
+ {
+ "label": "Yuri",
+ "value": "yuri"
+ }
+ ],
+ "type": "Picker"
+ }
+ },
+ "options": {
+ "useNewChapterEndpoint": true
+ }
+ },
+ {
+ "id": "daonovel",
+ "sourceSite": "https://www.daonovel.com/",
+ "sourceName": "DaoNovel",
+ "options": {
+ "path": {
+ "novels": "novels-list",
+ "novel": "novels",
+ "chapter": "novels"
+ },
+ "useNewChapterEndpoint": true
+ }
+ },
+ {
+ "id": "mostnovel",
+ "sourceSite": "https://mostnovel.com/",
+ "sourceName": "MostNovel",
+ "filters": {
+ "sort": {
+ "label": "Order by",
+ "value": "",
+ "options": [
+ {
+ "label": "Rating",
+ "value": "rating"
+ },
+ {
+ "label": "A-Z",
+ "value": "alphabet"
+ },
+ {
+ "label": "Latest",
+ "value": "latest"
+ },
+ {
+ "label": "Most Views",
+ "value": "views"
+ },
+ {
+ "label": "New",
+ "value": "new-manga"
+ },
+ {
+ "label": "Trending",
+ "value": "trending"
+ }
+ ],
+ "type": "Picker"
+ },
+ "genres": {
+ "label": "GENRES",
+ "value": "",
+ "options": [
+ {
+ "label": "ACG",
+ "value": "acg"
+ },
+ {
+ "label": "Action",
+ "value": "action"
+ },
+ {
+ "label": "Adult",
+ "value": "adult"
+ },
+ {
+ "label": "Adventure",
+ "value": "adventure"
+ },
+ {
+ "label": "AGA",
+ "value": "aga"
+ },
+ {
+ "label": "Anime",
+ "value": "anime"
+ },
+ {
+ "label": "Anime & Comics",
+ "value": "anime-comics"
+ },
+ {
+ "label": "Bender",
+ "value": "bender"
+ },
+ {
+ "label": "BL",
+ "value": "bl"
+ },
+ {
+ "label": "Cartoon",
+ "value": "cartoon"
+ },
+ {
+ "label": "Comedy",
+ "value": "comedy"
+ },
+ {
+ "label": "Comic",
+ "value": "comic"
+ },
+ {
+ "label": "Contemporary Romance",
+ "value": "contemporary-romance"
+ },
+ {
+ "label": "Cooking",
+ "value": "cooking"
+ },
+ {
+ "label": "Cultivation",
+ "value": "cultivation"
+ },
+ {
+ "label": "Detective",
+ "value": "detective"
+ },
+ {
+ "label": "Doujinshi",
+ "value": "doujinshi"
+ },
+ {
+ "label": "Drama",
+ "value": "drama"
+ },
+ {
+ "label": "Eastern Fantasy",
+ "value": "eastern-fantasy"
+ },
+ {
+ "label": "Ecchi",
+ "value": "ecchi"
+ },
+ {
+ "label": "Fantasy",
+ "value": "fantasy"
+ },
+ {
+ "label": "Gender Bender",
+ "value": "gender-bender"
+ },
+ {
+ "label": "General",
+ "value": "general"
+ },
+ {
+ "label": "Harem",
+ "value": "harem"
+ },
+ {
+ "label": "Historical",
+ "value": "historical"
+ },
+ {
+ "label": "Horror",
+ "value": "horror"
+ },
+ {
+ "label": "Horror&Thriller",
+ "value": "horrorthriller"
+ },
+ {
+ "label": "Josei",
+ "value": "josei"
+ },
+ {
+ "label": "Live action",
+ "value": "live-action"
+ },
+ {
+ "label": "Magical Realism",
+ "value": "magical-realism"
+ },
+ {
+ "label": "Manga",
+ "value": "manga"
+ },
+ {
+ "label": "Manhua",
+ "value": "manhua"
+ },
+ {
+ "label": "Manhwa",
+ "value": "manhwa"
+ },
+ {
+ "label": "Martial Arts",
+ "value": "martial-arts"
+ },
+ {
+ "label": "Mature",
+ "value": "mature"
+ },
+ {
+ "label": "Mecha",
+ "value": "mecha"
+ },
+ {
+ "label": "Modern",
+ "value": "modern"
+ },
+ {
+ "label": "Movies",
+ "value": "movies"
+ },
+ {
+ "label": "Mystery",
+ "value": "mystery"
+ },
+ {
+ "label": "One shot",
+ "value": "one-shot"
+ },
+ {
+ "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": "Smart MC",
+ "value": "smart-mc"
+ },
+ {
+ "label": "Smut",
+ "value": "smut"
+ },
+ {
+ "label": "Soft Yaoi",
+ "value": "soft-yaoi"
+ },
+ {
+ "label": "Soft Yuri",
+ "value": "soft-yuri"
+ },
+ {
+ "label": "Sports",
+ "value": "sports"
+ },
+ {
+ "label": "Supernatural",
+ "value": "supernatural"
+ },
+ {
+ "label": "Tragedy",
+ "value": "tragedy"
+ },
+ {
+ "label": "Urban Life",
+ "value": "urban-life"
+ },
+ {
+ "label": "Video Games",
+ "value": "video-games"
+ },
+ {
+ "label": "Webtoon",
+ "value": "webtoon"
+ },
+ {
+ "label": "Wuxia",
+ "value": "wuxia"
+ },
+ {
+ "label": "Xianxia",
+ "value": "xianxia"
+ },
+ {
+ "label": "Xuanhuan",
+ "value": "xuanhuan"
+ },
+ {
+ "label": "Yaoi",
+ "value": "yaoi"
+ },
+ {
+ "label": "Yuri",
+ "value": "yuri"
+ }
+ ],
+ "type": "Picker"
+ }
+ },
+ "options": {
+ "path": {
+ "novels": "manga",
+ "novel": "manga",
+ "chapter": "manga",
+ "genres": "manga-genre"
+ }
+ }
+ },
+ {
+ "id": "novelmultiverse",
+ "sourceSite": "https://www.novelmultiverse.com/",
+ "sourceName": "NovelMultiverse",
+ "filters": {
+ "sort": {
+ "label": "Order by",
+ "value": "",
+ "options": [
+ {
+ "label": "Rating",
+ "value": "rating"
+ },
+ {
+ "label": "A-Z",
+ "value": "alphabet"
+ },
+ {
+ "label": "Latest",
+ "value": "latest"
+ },
+ {
+ "label": "Most Views",
+ "value": "views"
+ },
+ {
+ "label": "New",
+ "value": "new-manga"
+ },
+ {
+ "label": "Trending",
+ "value": "trending"
+ }
+ ],
+ "type": "Picker"
+ },
+ "genres": {
+ "label": "GENRES",
+ "value": "",
+ "options": [
+ {
+ "label": "Action",
+ "value": "action"
+ },
+ {
+ "label": "Adult",
+ "value": "adult"
+ },
+ {
+ "label": "Adventure",
+ "value": "adventure"
+ },
+ {
+ "label": "Anime",
+ "value": "anime"
+ },
+ {
+ "label": "Cartoon",
+ "value": "cartoon"
+ },
+ {
+ "label": "Comedy",
+ "value": "comedy"
+ },
+ {
+ "label": "Comic",
+ "value": "comic"
+ },
+ {
+ "label": "Cooking",
+ "value": "cooking"
+ },
+ {
+ "label": "Detective",
+ "value": "detective"
+ },
+ {
+ "label": "Doujinshi",
+ "value": "doujinshi"
+ },
+ {
+ "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": "Josei",
+ "value": "josei"
+ },
+ {
+ "label": "Live action",
+ "value": "live-action"
+ },
+ {
+ "label": "Manga",
+ "value": "manga"
+ },
+ {
+ "label": "Manhua",
+ "value": "manhua"
+ },
+ {
+ "label": "Manhwa",
+ "value": "manhwa"
+ },
+ {
+ "label": "Martial Arts",
+ "value": "martial-arts"
+ },
+ {
+ "label": "Mature",
+ "value": "mature"
+ },
+ {
+ "label": "Mecha",
+ "value": "mecha"
+ },
+ {
+ "label": "Mystery",
+ "value": "mystery"
+ },
+ {
+ "label": "One shot",
+ "value": "one-shot"
+ },
+ {
+ "label": "Original",
+ "value": "original"
+ },
+ {
+ "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": "Smut",
+ "value": "smut"
+ },
+ {
+ "label": "Soft Yaoi",
+ "value": "soft-yaoi"
+ },
+ {
+ "label": "Soft Yuri",
+ "value": "soft-yuri"
+ },
+ {
+ "label": "Sports",
+ "value": "sports"
+ },
+ {
+ "label": "Supernatural",
+ "value": "supernatural"
+ },
+ {
+ "label": "Tragedy",
+ "value": "tragedy"
+ },
+ {
+ "label": "Translation",
+ "value": "translation"
+ },
+ {
+ "label": "Webtoon",
+ "value": "webtoon"
+ },
+ {
+ "label": "Wuxia",
+ "value": "wuxia"
+ },
+ {
+ "label": "Xianxia",
+ "value": "xianxia"
+ },
+ {
+ "label": "Xuanhuan",
+ "value": "xuanhuan"
+ },
+ {
+ "label": "Yaoi",
+ "value": "yaoi"
+ },
+ {
+ "label": "Yuri",
+ "value": "yuri"
+ }
+ ],
+ "type": "Picker"
+ }
+ }
+ },
+ {
+ "id": "lnheaven",
+ "sourceSite": "https://lightnovelheaven.com/",
+ "sourceName": "LightNovelHeaven",
+ "filters": {
+ "sort": {
+ "label": "Order by",
+ "value": "",
+ "options": [
+ {
+ "label": "Rating",
+ "value": "rating"
+ },
+ {
+ "label": "A-Z",
+ "value": "alphabet"
+ },
+ {
+ "label": "Latest",
+ "value": "latest"
+ },
+ {
+ "label": "Most Views",
+ "value": "views"
+ },
+ {
+ "label": "New",
+ "value": "new-manga"
+ },
+ {
+ "label": "Trending",
+ "value": "trending"
+ }
+ ],
+ "type": "Picker"
+ }
+ },
+ "options": {
+ "path": {
+ "novels": "series",
+ "novel": "series",
+ "chapter": "series"
+ },
+ "useNewChapterEndpoint": true
+ }
+ },
+ {
+ "id": "arnovel",
+ "sourceSite": "https://arnovel.me/",
+ "sourceName": "ArNovel",
+ "filters": {
+ "sort": {
+ "label": "الترتيب حسب",
+ "value": "",
+ "options": [
+ {
+ "label": "A-Z",
+ "value": "alphabet"
+ },
+ {
+ "label": "الآخير",
+ "value": "latest"
+ },
+ {
+ "label": "الأكثر مشاهدة",
+ "value": "views"
+ },
+ {
+ "label": "التقييم",
+ "value": "rating"
+ },
+ {
+ "label": "جديد",
+ "value": "new-manga"
+ },
+ {
+ "label": "شائع",
+ "value": "trending"
+ }
+ ],
+ "type": "Picker"
+ },
+ "genres": {
+ "label": "التصنيفات",
+ "value": "",
+ "options": [
+ {
+ "label": "أكشن",
+ "value": "%d8%a3%d9%83%d8%b4%d9%86"
+ },
+ {
+ "label": "إتشي",
+ "value": "%d8%a5%d8%aa%d8%b4%d9%80%d9%8a"
+ },
+ {
+ "label": "بالغ",
+ "value": "%d8%a8%d8%a7%d9%84%d8%ba"
+ },
+ {
+ "label": "تاريخي",
+ "value": "%d8%aa%d8%a7%d8%b1%d9%8a%d8%ae%d9%8a"
+ },
+ {
+ "label": "تراجدي",
+ "value": "%d8%aa%d8%b1%d8%a7%d8%ac%d8%af%d9%8a"
+ },
+ {
+ "label": "جوسي",
+ "value": "%d8%ac%d9%88%d8%b3%d9%8a"
+ },
+ {
+ "label": "حريم",
+ "value": "%d8%ad%d8%b1%d9%8a%d9%85"
+ },
+ {
+ "label": "حياة مدرسية",
+ "value": "%d8%ad%d9%8a%d8%a7%d8%a9-%d9%85%d8%af%d8%b1%d8%b3%d9%8a%d8%a9"
+ },
+ {
+ "label": "خارق لطبيعية",
+ "value": "%d8%ae%d8%a7%d8%b1%d9%82-%d9%84%d8%b7%d8%a8%d9%8a%d8%b9%d9%8a%d8%a9"
+ },
+ {
+ "label": "خيال",
+ "value": "%d8%ae%d9%8a%d8%a7%d9%84"
+ },
+ {
+ "label": "خيال علمي",
+ "value": "%d8%ae%d9%8a%d8%a7%d9%84-%d8%b9%d9%84%d9%85%d9%8a"
+ },
+ {
+ "label": "دراما",
+ "value": "%d8%af%d8%b1%d8%a7%d9%85%d8%a7"
+ },
+ {
+ "label": "راشد",
+ "value": "%d8%b1%d8%a7%d8%b4%d8%af"
+ },
+ {
+ "label": "رعب",
+ "value": "%d8%b1%d8%b9%d8%a8"
+ },
+ {
+ "label": "رومنسي",
+ "value": "%d8%b1%d9%88%d9%85%d9%86%d8%b3%d9%8a"
+ },
+ {
+ "label": "رياضي",
+ "value": "%d8%b1%d9%8a%d8%a7%d8%b6%d9%8a"
+ },
+ {
+ "label": "سينين",
+ "value": "%d8%b3%d9%8a%d9%86%d9%8a%d9%86"
+ },
+ {
+ "label": "شريحة من الحياة",
+ "value": "%d8%b4%d8%b1%d9%8a%d8%ad%d8%a9-%d9%85%d9%86-%d8%a7%d9%84%d8%ad%d9%8a%d8%a7%d8%a9"
+ },
+ {
+ "label": "شوجو",
+ "value": "%d8%b4%d9%88%d8%ac%d9%88"
+ },
+ {
+ "label": "شونين",
+ "value": "%d8%b4%d9%88%d9%86%d9%8a%d9%86"
+ },
+ {
+ "label": "غموض",
+ "value": "%d8%ba%d9%85%d9%88%d8%b6"
+ },
+ {
+ "label": "فنون قتال",
+ "value": "%d9%81%d9%86%d9%88%d9%86-%d9%82%d8%aa%d8%a7%d9%84"
+ },
+ {
+ "label": "كوميديا",
+ "value": "%d9%83%d9%88%d9%85%d9%8a%d8%af%d9%8a%d8%a7"
+ },
+ {
+ "label": "مغامرات",
+ "value": "%d9%85%d8%ba%d8%a7%d9%85%d8%b1%d8%a7%d8%aa"
+ },
+ {
+ "label": "منتهية",
+ "value": "%d9%85%d9%86%d8%aa%d9%87%d9%8a%d8%a9"
+ },
+ {
+ "label": "ميكا",
+ "value": "%d9%85%d9%8a%d9%83%d8%a7"
+ },
+ {
+ "label": "نفسي",
+ "value": "%d9%86%d9%81%d8%b3%d9%8a"
+ }
+ ],
+ "type": "Picker"
+ }
+ },
+ "options": {
+ "path": {
+ "genres": "home/novel-genre"
+ },
+ "useNewChapterEndpoint": true,
+ "lang": "Arabic"
+ }
+ },
+ {
+ "id": "meionovel",
+ "sourceSite": "https://meionovel.id/",
+ "sourceName": "MeioNovel",
+ "filters": {
+ "sort": {
+ "label": "Order by",
+ "value": "",
+ "options": [
+ {
+ "label": "Rating",
+ "value": "rating"
+ },
+ {
+ "label": "A-Z",
+ "value": "alphabet"
+ },
+ {
+ "label": "Latest",
+ "value": "latest"
+ },
+ {
+ "label": "Most Views",
+ "value": "views"
+ },
+ {
+ "label": "New",
+ "value": "new-manga"
+ },
+ {
+ "label": "Trending",
+ "value": "trending"
+ }
+ ],
+ "type": "Picker"
+ },
+ "genres": {
+ "label": "GENRES",
+ "value": "",
+ "options": [
+ {
+ "label": "Action",
+ "value": "action"
+ },
+ {
+ "label": "Adventure",
+ "value": "adventure"
+ },
+ {
+ "label": "Comedy",
+ "value": "comedy"
+ },
+ {
+ "label": "Cooking",
+ "value": "cooking"
+ },
+ {
+ "label": "Drama",
+ "value": "drama"
+ },
+ {
+ "label": "Ecchi",
+ "value": "ecchi"
+ },
+ {
+ "label": "Fanfiction",
+ "value": "fanfiction"
+ },
+ {
+ "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": "Magic",
+ "value": "magic"
+ },
+ {
+ "label": "Martial Arts",
+ "value": "martial-arts"
+ },
+ {
+ "label": "Mature",
+ "value": "mature"
+ },
+ {
+ "label": "Mecha",
+ "value": "mecha"
+ },
+ {
+ "label": "Mystery",
+ "value": "mystery"
+ },
+ {
+ "label": "One shot",
+ "value": "one-shot"
+ },
+ {
+ "label": "Psychological",
+ "value": "psychological"
+ },
+ {
+ "label": "Reverse Harem",
+ "value": "reverse-harem"
+ },
+ {
+ "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": "Smut",
+ "value": "smut"
+ },
+ {
+ "label": "Sports",
+ "value": "sports"
+ },
+ {
+ "label": "Supernatural",
+ "value": "supernatural"
+ },
+ {
+ "label": "Tragedy",
+ "value": "tragedy"
+ },
+ {
+ "label": "Virtual Reality",
+ "value": "virtual-reality"
+ },
+ {
+ "label": "Wuxia",
+ "value": "wuxia"
+ },
+ {
+ "label": "Xianxia",
+ "value": "xianxia"
+ },
+ {
+ "label": "Xuanhuan",
+ "value": "xuanhuan"
+ },
+ {
+ "label": "Yuri",
+ "value": "yuri"
+ }
+ ],
+ "type": "Picker"
+ }
+ },
+ "options": {
+ "useNewChapterEndpoint": true,
+ "lang": "Indonesian"
+ }
+ },
+ {
+ "id": "webnovelover",
+ "sourceSite": "https://www.webnovelover.com/",
+ "sourceName": "WebNovelLover",
+ "filters": {
+ "sort": {
+ "label": "Order by",
+ "value": "",
+ "options": [
+ {
+ "label": "Rating",
+ "value": "rating"
+ },
+ {
+ "label": "A-Z",
+ "value": "alphabet"
+ },
+ {
+ "label": "Latest",
+ "value": "latest"
+ },
+ {
+ "label": "Most Views",
+ "value": "views"
+ },
+ {
+ "label": "New",
+ "value": "new-manga"
+ },
+ {
+ "label": "Trending",
+ "value": "trending"
+ }
+ ],
+ "type": "Picker"
+ },
+ "genres": {
+ "label": "GENRES",
+ "value": "",
+ "options": [
+ {
+ "label": "Action",
+ "value": "action"
+ },
+ {
+ "label": "Adapted into drama",
+ "value": "adapted-into-drama"
+ },
+ {
+ "label": "Adventure",
+ "value": "adventure"
+ },
+ {
+ "label": "Comedy",
+ "value": "comedy"
+ },
+ {
+ "label": "Completed",
+ "value": "completed"
+ },
+ {
+ "label": "Drama",
+ "value": "drama"
+ },
+ {
+ "label": "English Novel",
+ "value": "english-novel"
+ },
+ {
+ "label": "Fantasy",
+ "value": "fantasy"
+ },
+ {
+ "label": "Gender Bender",
+ "value": "gender-bender"
+ },
+ {
+ "label": "Harem",
+ "value": "harem"
+ },
+ {
+ "label": "Historical",
+ "value": "historical"
+ },
+ {
+ "label": "Horror",
+ "value": "horror"
+ },
+ {
+ "label": "Indo Novel",
+ "value": "indo-novel"
+ },
+ {
+ "label": "Josei",
+ "value": "josei"
+ },
+ {
+ "label": "Martial Arts",
+ "value": "martial-arts"
+ },
+ {
+ "label": "Mature",
+ "value": "mature"
+ },
+ {
+ "label": "Mystery",
+ "value": "mystery"
+ },
+ {
+ "label": "Rebirth",
+ "value": "rebirth"
+ },
+ {
+ "label": "Reincarnation",
+ "value": "reincarnation"
+ },
+ {
+ "label": "Romance",
+ "value": "romance"
+ },
+ {
+ "label": "Sci-fi",
+ "value": "sci-fi"
+ },
+ {
+ "label": "Shoujo",
+ "value": "shoujo"
+ },
+ {
+ "label": "Shounen",
+ "value": "shounen"
+ },
+ {
+ "label": "Slice of Life",
+ "value": "slice-of-life"
+ },
+ {
+ "label": "Spiritual",
+ "value": "spiritual"
+ },
+ {
+ "label": "Supernatural",
+ "value": "supernatural"
+ },
+ {
+ "label": "Tragedy",
+ "value": "tragedy"
+ },
+ {
+ "label": "Transmigration",
+ "value": "transmigration"
+ },
+ {
+ "label": "University",
+ "value": "university"
+ },
+ {
+ "label": "Wuxia",
+ "value": "wuxia"
+ },
+ {
+ "label": "Xianxia",
+ "value": "xianxia"
+ },
+ {
+ "label": "Xuanhuan",
+ "value": "xuanhuan"
+ },
+ {
+ "label": "Youth",
+ "value": "youth"
+ }
+ ],
+ "type": "Picker"
+ }
+ }
+ },
+ {
+ "id": "readwebnovels",
+ "sourceSite": "https://readwebnovels.net/",
+ "sourceName": "ReadWebNovels"
+ },
+ {
+ "id": "wbnovel",
+ "sourceSite": "https://wbnovel.com/",
+ "sourceName": "WBNovel",
+ "filters": {
+ "sort": {
+ "label": "Order by",
+ "value": "",
+ "options": [
+ {
+ "label": "Rating",
+ "value": "rating"
+ },
+ {
+ "label": "A-Z",
+ "value": "alphabet"
+ },
+ {
+ "label": "Latest",
+ "value": "latest"
+ },
+ {
+ "label": "Most Views",
+ "value": "views"
+ },
+ {
+ "label": "New",
+ "value": "new-manga"
+ },
+ {
+ "label": "Trending",
+ "value": "trending"
+ }
+ ],
+ "type": "Picker"
+ },
+ "genres": {
+ "label": "GENRES",
+ "value": "",
+ "options": [
+ {
+ "label": "Action",
+ "value": "action"
+ },
+ {
+ "label": "Adventure",
+ "value": "adventure"
+ },
+ {
+ "label": "Alchemy",
+ "value": "alchemy"
+ },
+ {
+ "label": "Comedy",
+ "value": "comedy"
+ },
+ {
+ "label": "Crafting",
+ "value": "crafting"
+ },
+ {
+ "label": "Cultivation",
+ "value": "cultivation"
+ },
+ {
+ "label": "Drama",
+ "value": "drama"
+ },
+ {
+ "label": "Dungeon Crawling",
+ "value": "dungeon-crawling"
+ },
+ {
+ "label": "Eci",
+ "value": "eci"
+ },
+ {
+ "label": "Fantasy",
+ "value": "fantasy"
+ },
+ {
+ "label": "Game",
+ "value": "game"
+ },
+ {
+ "label": "Harem",
+ "value": "harem"
+ },
+ {
+ "label": "Horror",
+ "value": "horror"
+ },
+ {
+ "label": "Josei",
+ "value": "josei"
+ },
+ {
+ "label": "Kingdom Building",
+ "value": "kingdom-building"
+ },
+ {
+ "label": "Martial Arts",
+ "value": "martial-arts"
+ },
+ {
+ "label": "Mature",
+ "value": "mature"
+ },
+ {
+ "label": "Mecha",
+ "value": "mecha"
+ },
+ {
+ "label": "Modern Setting",
+ "value": "modern-setting"
+ },
+ {
+ "label": "Mystery",
+ "value": "mystery"
+ },
+ {
+ "label": "Pets",
+ "value": "pets"
+ },
+ {
+ "label": "Psychological",
+ "value": "psychological"
+ },
+ {
+ "label": "Reincarnator",
+ "value": "reincarnator"
+ },
+ {
+ "label": "Romance",
+ "value": "romance"
+ },
+ {
+ "label": "School Life",
+ "value": "school-life"
+ },
+ {
+ "label": "Sci-fi",
+ "value": "sci-fi"
+ },
+ {
+ "label": "Seinen",
+ "value": "seinen"
+ },
+ {
+ "label": "Shounen",
+ "value": "shounen"
+ },
+ {
+ "label": "Slice of Life",
+ "value": "slice-of-life"
+ },
+ {
+ "label": "Sports",
+ "value": "sports"
+ },
+ {
+ "label": "Supernatural",
+ "value": "supernatural"
+ },
+ {
+ "label": "Tragedy",
+ "value": "tragedy"
+ },
+ {
+ "label": "Transmigration",
+ "value": "transmigration"
+ },
+ {
+ "label": "Virtual Reality",
+ "value": "virtual-reality"
+ },
+ {
+ "label": "Wuxia",
+ "value": "wuxia"
+ },
+ {
+ "label": "Xianxia",
+ "value": "xianxia"
+ },
+ {
+ "label": "Xuanhuan",
+ "value": "xuanhuan"
+ }
+ ],
+ "type": "Picker"
+ }
+ },
+ "options": {
+ "lang": "Indonesian"
+ }
+ },
+ {
+ "id": "wuxiaworld.site",
+ "sourceSite": "https://wuxiaworld.site/",
+ "sourceName": "WuxiaWorld.Site",
+ "filters": {
+ "sort": {
+ "label": "Order by",
+ "value": "",
+ "options": [
+ {
+ "label": "Rating",
+ "value": "rating"
+ },
+ {
+ "label": "A-Z",
+ "value": "alphabet"
+ },
+ {
+ "label": "Latest",
+ "value": "latest"
+ },
+ {
+ "label": "Most Views",
+ "value": "views"
+ },
+ {
+ "label": "New",
+ "value": "new-manga"
+ },
+ {
+ "label": "Trending",
+ "value": "trending"
+ }
+ ],
+ "type": "Picker"
+ }
+ },
+ "options": {
+ "useNewChapterEndpoint": true
+ }
+ },
+ {
+ "id": "mysticalmerries",
+ "sourceSite": "https://mysticalmerries.com/",
+ "sourceName": "MysticalSeries",
+ "filters": {
+ "sort": {
+ "label": "Order by",
+ "value": "",
+ "options": [
+ {
+ "label": "Rating",
+ "value": "rating"
+ },
+ {
+ "label": "A-Z",
+ "value": "alphabet"
+ },
+ {
+ "label": "Latest",
+ "value": "latest"
+ },
+ {
+ "label": "Most Views",
+ "value": "views"
+ },
+ {
+ "label": "New",
+ "value": "new-manga"
+ },
+ {
+ "label": "Trending",
+ "value": "trending"
+ }
+ ],
+ "type": "Picker"
+ },
+ "genres": {
+ "label": "GENRES",
+ "value": "",
+ "options": [
+ {
+ "label": "Action",
+ "value": "action"
+ },
+ {
+ "label": "Adaptation",
+ "value": "adaptation"
+ },
+ {
+ "label": "Adventure",
+ "value": "adventure"
+ },
+ {
+ "label": "bilibili",
+ "value": "bilibili"
+ },
+ {
+ "label": "Chinese Novel",
+ "value": "chinese-novel"
+ },
+ {
+ "label": "Comedy",
+ "value": "comedy"
+ },
+ {
+ "label": "Crossdressing",
+ "value": "crossdressing"
+ },
+ {
+ "label": "Drama",
+ "value": "drama"
+ },
+ {
+ "label": "Dropped",
+ "value": "dropped"
+ },
+ {
+ "label": "Family",
+ "value": "family"
+ },
+ {
+ "label": "Fantasy",
+ "value": "fantasy"
+ },
+ {
+ "label": "Gender Bender",
+ "value": "gender-bender"
+ },
+ {
+ "label": "Historical",
+ "value": "historical"
+ },
+ {
+ "label": "Horror",
+ "value": "horror"
+ },
+ {
+ "label": "Isekai",
+ "value": "isekai"
+ },
+ {
+ "label": "Korean Novel",
+ "value": "korean-novell"
+ },
+ {
+ "label": "Manga",
+ "value": "manga"
+ },
+ {
+ "label": "Manhua",
+ "value": "manhua"
+ },
+ {
+ "label": "Manhwa",
+ "value": "manhwa"
+ },
+ {
+ "label": "Modern Romance",
+ "value": "modern-romance"
+ },
+ {
+ "label": "Mystery",
+ "value": "mystery"
+ },
+ {
+ "label": "Office Workers",
+ "value": "office-workers"
+ },
+ {
+ "label": "One shot",
+ "value": "one-shot"
+ },
+ {
+ "label": "Pilot Novel",
+ "value": "pilot-novel"
+ },
+ {
+ "label": "R15",
+ "value": "r15"
+ },
+ {
+ "label": "R19",
+ "value": "r19"
+ },
+ {
+ "label": "Regression",
+ "value": "regression"
+ },
+ {
+ "label": "Reincarnation",
+ "value": "reincarnation"
+ },
+ {
+ "label": "Reverse Harem",
+ "value": "reverse-harem"
+ },
+ {
+ "label": "Romance Fantasy",
+ "value": "romance-fantasy"
+ },
+ {
+ "label": "School Life",
+ "value": "school-life"
+ },
+ {
+ "label": "Sci-fi",
+ "value": "sci-fi"
+ },
+ {
+ "label": "Slice of Life",
+ "value": "slice-of-life"
+ },
+ {
+ "label": "Smut",
+ "value": "smut"
+ },
+ {
+ "label": "Supernatural",
+ "value": "supernatural"
+ },
+ {
+ "label": "Violence",
+ "value": "violence"
+ }
+ ],
+ "type": "Picker"
+ }
+ },
+ "options": {
+ "path": {
+ "novels": "series",
+ "novel": "series",
+ "chapter": "series",
+ "genres": "genre"
+ },
+ "useNewChapterEndpoint": true
+ }
+ },
+ {
+ "id": "morenovel",
+ "sourceSite": "https://morenovel.net/",
+ "sourceName": "MoreNovel",
+ "filters": {
+ "sort": {
+ "label": "Order by",
+ "value": "",
+ "options": [
+ {
+ "label": "Rating",
+ "value": "rating"
+ },
+ {
+ "label": "A-Z",
+ "value": "alphabet"
+ },
+ {
+ "label": "Latest",
+ "value": "latest"
+ },
+ {
+ "label": "Most Views",
+ "value": "views"
+ },
+ {
+ "label": "New",
+ "value": "new-manga"
+ },
+ {
+ "label": "Trending",
+ "value": "trending"
+ }
+ ],
+ "type": "Picker"
+ },
+ "genres": {
+ "label": "GENRES",
+ "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": "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": "Picker"
+ }
+ },
+ "options": {
+ "useNewChapterEndpoint": true,
+ "lang": "Indonesian"
+ }
+ },
+ {
+ "id": "onlymtl",
+ "sourceSite": "https://www.onlymtl.com/",
+ "sourceName": "OnlyMTL",
+ "options": {
+ "useNewChapterEndpoint": true
+ }
+ },
+ {
+ "id": "hizomanga",
+ "sourceSite": "https://hizomanga.com/",
+ "sourceName": "HizoManga",
+ "filters": {
+ "sort": {
+ "label": "ترتيب حسب",
+ "value": "",
+ "options": [
+ {
+ "label": "A-Z",
+ "value": "alphabet"
+ },
+ {
+ "label": "New",
+ "value": "new-manga"
+ },
+ {
+ "label": "الأحدث",
+ "value": "latest"
+ },
+ {
+ "label": "الأكثر مشاهدة",
+ "value": "views"
+ },
+ {
+ "label": "التقييم",
+ "value": "rating"
+ },
+ {
+ "label": "الرائج",
+ "value": "trending"
+ }
+ ],
+ "type": "Picker"
+ },
+ "genres": {
+ "label": "التصنيفات",
+ "value": "",
+ "options": [
+ {
+ "label": "آلات",
+ "value": "mechanisms"
+ },
+ {
+ "label": "أكشن",
+ "value": "action"
+ },
+ {
+ "label": "إثارة",
+ "value": "excitement"
+ },
+ {
+ "label": "إيسكاي",
+ "value": "%d8%a5%d9%8a%d8%b3%d9%83%d8%a7%d9%8a"
+ },
+ {
+ "label": "الحياة اليومية",
+ "value": "slice-of-life"
+ },
+ {
+ "label": "الحياة مدرسية",
+ "value": "school-life"
+ },
+ {
+ "label": "تاريخي",
+ "value": "historical"
+ },
+ {
+ "label": "تراجيدي",
+ "value": "tragic"
+ },
+ {
+ "label": "جريمة",
+ "value": "%d8%ac%d8%b1%d9%8a%d9%85%d8%a9"
+ },
+ {
+ "label": "جندر بندر",
+ "value": "%d8%ac%d9%86%d8%af%d8%b1-%d8%a8%d9%86%d8%af%d8%b1"
+ },
+ {
+ "label": "جوسي",
+ "value": "josei"
+ },
+ {
+ "label": "حريم",
+ "value": "harem"
+ },
+ {
+ "label": "خارق للطبيعة",
+ "value": "supernatural"
+ },
+ {
+ "label": "خيال",
+ "value": "fantasy"
+ },
+ {
+ "label": "خيال علمي",
+ "value": "sci-fi"
+ },
+ {
+ "label": "دراما",
+ "value": "drama"
+ },
+ {
+ "label": "دموي",
+ "value": "%d8%af%d9%85%d9%88%d9%8a"
+ },
+ {
+ "label": "راشد",
+ "value": "mature"
+ },
+ {
+ "label": "رعب",
+ "value": "horror"
+ },
+ {
+ "label": "رومانسي",
+ "value": "romance"
+ },
+ {
+ "label": "رياضة",
+ "value": "sports"
+ },
+ {
+ "label": "زمنكاني",
+ "value": "my-time"
+ },
+ {
+ "label": "زومبي",
+ "value": "%d8%b2%d9%88%d9%85%d8%a8%d9%8a"
+ },
+ {
+ "label": "سينين",
+ "value": "seinen"
+ },
+ {
+ "label": "شريحة من الحياة",
+ "value": "%d8%b4%d8%b1%d9%8a%d8%ad%d8%a9-%d9%85%d9%86-%d8%a7%d9%84%d8%ad%d9%8a%d8%a7%d8%a9"
+ },
+ {
+ "label": "شوجو",
+ "value": "shoujo"
+ },
+ {
+ "label": "شونين",
+ "value": "shounen"
+ },
+ {
+ "label": "طبي",
+ "value": "%d8%b7%d8%a8%d9%8a"
+ },
+ {
+ "label": "غموض",
+ "value": "ambiguity"
+ },
+ {
+ "label": "فنون قتالية",
+ "value": "martial-arts"
+ },
+ {
+ "label": "قوة خارقة",
+ "value": "superpower"
+ },
+ {
+ "label": "كوميدي",
+ "value": "comedy"
+ },
+ {
+ "label": "مغامرات",
+ "value": "adventure"
+ },
+ {
+ "label": "نفسي",
+ "value": "psychological"
+ }
+ ],
+ "type": "Picker"
+ }
+ },
+ "options": {
+ "path": {
+ "novels": "serie",
+ "novel": "serie",
+ "chapter": "serie",
+ "genres": "manga-genre"
+ },
+ "useNewChapterEndpoint": true,
+ "lang": "Arabic"
+ }
+ },
+ {
+ "id": "ar-mtl",
+ "sourceSite": "https://ar-mtl.club/",
+ "sourceName": "ArMTL",
+ "options": {
+ "useNewChapterEndpoint": true,
+ "lang": "Arabic"
+ }
+ },
+ {
+ "id": "novel4up",
+ "sourceSite": "https://novel4up.com/",
+ "sourceName": "Novel4Up",
+ "filters": {
+ "sort": {
+ "label": "ترتيب حسب:",
+ "value": "",
+ "options": [
+ {
+ "label": "أ-ي",
+ "value": "alphabet"
+ },
+ {
+ "label": "الأحدث",
+ "value": "latest"
+ },
+ {
+ "label": "الأكثر مشاهدة",
+ "value": "views"
+ },
+ {
+ "label": "التقييم",
+ "value": "rating"
+ },
+ {
+ "label": "الجديد",
+ "value": "new-manga"
+ },
+ {
+ "label": "الشائع",
+ "value": "trending"
+ }
+ ],
+ "type": "Picker"
+ },
+ "genres": {
+ "label": "التصنيفات",
+ "value": "",
+ "options": [
+ {
+ "label": "أكشن",
+ "value": "action"
+ },
+ {
+ "label": "الخارق للطبيعة",
+ "value": "supernatural"
+ },
+ {
+ "label": "تاريخي",
+ "value": "historical"
+ },
+ {
+ "label": "تحقيق",
+ "value": "detective"
+ },
+ {
+ "label": "تراجيديا",
+ "value": "tragedy"
+ },
+ {
+ "label": "حريم",
+ "value": "harem"
+ },
+ {
+ "label": "حياة مدرسية",
+ "value": "school-life"
+ },
+ {
+ "label": "خيال علمي",
+ "value": "sci-fi"
+ },
+ {
+ "label": "دراما",
+ "value": "drama"
+ },
+ {
+ "label": "رعب",
+ "value": "horror"
+ },
+ {
+ "label": "رومانسي",
+ "value": "romance"
+ },
+ {
+ "label": "رياضة",
+ "value": "sports"
+ },
+ {
+ "label": "سحر",
+ "value": "magic"
+ },
+ {
+ "label": "شريحة من الحياة",
+ "value": "slice-of-life"
+ },
+ {
+ "label": "شوانهوا",
+ "value": "xuanhuan"
+ },
+ {
+ "label": "شوجو",
+ "value": "shoujo"
+ },
+ {
+ "label": "شونين",
+ "value": "shounen"
+ },
+ {
+ "label": "غموض",
+ "value": "mystery"
+ },
+ {
+ "label": "فانتازيا",
+ "value": "fantasy"
+ },
+ {
+ "label": "فنون قتال",
+ "value": "martial-arts"
+ },
+ {
+ "label": "كوميديا",
+ "value": "comedy"
+ },
+ {
+ "label": "مغامرة",
+ "value": "adventure"
+ },
+ {
+ "label": "ميكا",
+ "value": "mecha"
+ },
+ {
+ "label": "نفسي",
+ "value": "psychological"
+ },
+ {
+ "label": "ون شوت",
+ "value": "one-shot"
+ },
+ {
+ "label": "ووشيا",
+ "value": "wuxia"
+ }
+ ],
+ "type": "Picker"
+ }
+ },
+ "options": {
+ "lang": "Arabic"
+ }
+ },
+ {
+ "id": "teamxnovel",
+ "sourceSite": "https://teamxnovel.com/",
+ "sourceName": "TeamXNovel",
+ "options": {
+ "useNewChapterEndpoint": true,
+ "lang": "Arabic"
+ }
+ },
+ {
+ "id": "turkcelightnovels",
+ "sourceSite": "https://turkcelightnovels.com/",
+ "sourceName": "TurkceLightNovels",
+ "filters": {
+ "sort": {
+ "label": "Order by",
+ "value": "",
+ "options": [
+ {
+ "label": "Rating",
+ "value": "rating"
+ },
+ {
+ "label": "A-Z",
+ "value": "alphabet"
+ },
+ {
+ "label": "Latest",
+ "value": "latest"
+ },
+ {
+ "label": "Most Views",
+ "value": "views"
+ },
+ {
+ "label": "New",
+ "value": "new-manga"
+ },
+ {
+ "label": "Trending",
+ "value": "trending"
+ }
+ ],
+ "type": "Picker"
+ }
+ },
+ "options": {
+ "path": {
+ "novels": "light-novel",
+ "novel": "light-novel",
+ "chapter": "light-novel"
+ },
+ "lang": "Turkish"
+ }
+ },
+ {
+ "id": "sonicmtl",
+ "sourceSite": "https://www.sonicmtl.com/",
+ "sourceName": "SonicMTL",
+ "filters": {
+ "sort": {
+ "label": "Order by",
+ "value": "",
+ "options": [
+ {
+ "label": "Rating",
+ "value": "rating"
+ },
+ {
+ "label": "A-Z",
+ "value": "alphabet"
+ },
+ {
+ "label": "Latest",
+ "value": "latest"
+ },
+ {
+ "label": "Most Views",
+ "value": "views"
+ },
+ {
+ "label": "New",
+ "value": "new-manga"
+ },
+ {
+ "label": "Trending",
+ "value": "trending"
+ }
+ ],
+ "type": "Picker"
+ },
+ "genres": {
+ "label": "GENRES",
+ "value": "",
+ "options": [
+ {
+ "label": "Action",
+ "value": "action"
+ },
+ {
+ "label": "Adult",
+ "value": "adult"
+ },
+ {
+ "label": "Adventure",
+ "value": "adventure"
+ },
+ {
+ "label": "Comedy",
+ "value": "comedy"
+ },
+ {
+ "label": "Cooking",
+ "value": "cooking"
+ },
+ {
+ "label": "Detective",
+ "value": "detective"
+ },
+ {
+ "label": "Doujinshi",
+ "value": "doujinshi"
+ },
+ {
+ "label": "Drama",
+ "value": "drama"
+ },
+ {
+ "label": "Ecchi",
+ "value": "ecchi"
+ },
+ {
+ "label": "Fan-Fiction",
+ "value": "fan-fiction"
+ },
+ {
+ "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": "Live action",
+ "value": "live-action"
+ },
+ {
+ "label": "Manga",
+ "value": "manga"
+ },
+ {
+ "label": "Manhua",
+ "value": "manhua"
+ },
+ {
+ "label": "Manhwa",
+ "value": "manhwa"
+ },
+ {
+ "label": "Martial Arts",
+ "value": "martial-arts"
+ },
+ {
+ "label": "Mature",
+ "value": "mature"
+ },
+ {
+ "label": "Mecha",
+ "value": "mecha"
+ },
+ {
+ "label": "Mystery",
+ "value": "mystery"
+ },
+ {
+ "label": "One shot",
+ "value": "one-shot"
+ },
+ {
+ "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": "Smut",
+ "value": "smut"
+ },
+ {
+ "label": "Soft Yaoi",
+ "value": "soft-yaoi"
+ },
+ {
+ "label": "Soft Yuri",
+ "value": "soft-yuri"
+ },
+ {
+ "label": "Sports",
+ "value": "sports"
+ },
+ {
+ "label": "Supernatural",
+ "value": "supernatural"
+ },
+ {
+ "label": "Tragedy",
+ "value": "tragedy"
+ },
+ {
+ "label": "Urban Life",
+ "value": "urban-life"
+ },
+ {
+ "label": "Wuxia",
+ "value": "wuxia"
+ },
+ {
+ "label": "Xianxia",
+ "value": "xianxia"
+ },
+ {
+ "label": "Xuanhuan",
+ "value": "xuanhuan"
+ },
+ {
+ "label": "Yaoi",
+ "value": "yaoi"
+ },
+ {
+ "label": "Yuri",
+ "value": "yuri"
+ }
+ ],
+ "type": "Picker"
+ }
+ },
+ "options": {
+ "useNewChapterEndpoint": true
+ }
+ },
+ {
+ "id": "mtlnovel.club",
+ "sourceSite": "https://mtlnovel.club/",
+ "sourceName": "MTLNovel.Club",
+ "options": {
+ "useNewChapterEndpoint": true
+ }
+ },
+ {
+ "id": "guavaread",
+ "sourceSite": "https://guavaread.com/",
+ "sourceName": "Guavaread",
+ "options": {
+ "useNewChapterEndpoint": true
+ }
+ },
+ {
+ "id": "sweetEscapeTL",
+ "sourceSite": "https://sweetescapetranslations.com/",
+ "sourceName": "Sweet Escape Translations",
+ "filters": {
+ "sort": {
+ "label": "Order by",
+ "value": "",
+ "options": [
+ {
+ "label": "Rating",
+ "value": "rating"
+ },
+ {
+ "label": "A-Z",
+ "value": "alphabet"
+ },
+ {
+ "label": "Latest",
+ "value": "latest"
+ },
+ {
+ "label": "Most Views",
+ "value": "views"
+ },
+ {
+ "label": "New",
+ "value": "new-manga"
+ },
+ {
+ "label": "Trending",
+ "value": "trending"
+ }
+ ],
+ "type": "Picker"
+ },
+ "genres": {
+ "label": "GENRES",
+ "value": "",
+ "options": [
+ {
+ "label": "Action",
+ "value": "action"
+ },
+ {
+ "label": "Adult",
+ "value": "adult"
+ },
+ {
+ "label": "Comedy",
+ "value": "comedy"
+ },
+ {
+ "label": "Drama",
+ "value": "drama"
+ },
+ {
+ "label": "Fantasy",
+ "value": "fantasy"
+ },
+ {
+ "label": "Gender Bender",
+ "value": "gender-bender"
+ },
+ {
+ "label": "Mature",
+ "value": "mature"
+ },
+ {
+ "label": "Modern",
+ "value": "modern"
+ },
+ {
+ "label": "Mystery",
+ "value": "mystery"
+ },
+ {
+ "label": "R-15",
+ "value": "r-15"
+ },
+ {
+ "label": "Romance",
+ "value": "romance"
+ },
+ {
+ "label": "Slice of Life",
+ "value": "slice-of-life"
+ }
+ ],
+ "type": "Picker"
+ }
+ },
+ "options": {
+ "path": {
+ "novels": "manga",
+ "novel": "manga",
+ "chapter": "manga",
+ "genres": "manga-genre"
+ },
+ "useNewChapterEndpoint": false
+ }
+ },
+ {
+ "id": "fanTLS",
+ "sourceSite": "https://fanstranslations.com/",
+ "sourceName": "Fans Translations",
+ "filters": {
+ "sort": {
+ "label": "Order by",
+ "value": "",
+ "options": [
+ {
+ "label": "Rating",
+ "value": "rating"
+ },
+ {
+ "label": "A-Z",
+ "value": "alphabet"
+ },
+ {
+ "label": "Latest",
+ "value": "latest"
+ },
+ {
+ "label": "Most Views",
+ "value": "views"
+ },
+ {
+ "label": "New",
+ "value": "new-manga"
+ },
+ {
+ "label": "Trending",
+ "value": "trending"
+ }
+ ],
+ "type": "Picker"
+ }
+ },
+ "options": {
+ "useNewChapterEndpoint": true
+ }
+ },
+ {
+ "id": "riwyat",
+ "sourceSite": "https://riwyat.com/",
+ "sourceName": "Riwyat",
+ "filters": {
+ "sort": {
+ "label": "Order by",
+ "value": "",
+ "options": [
+ {
+ "label": "Rating",
+ "value": "rating"
+ },
+ {
+ "label": "A-Z",
+ "value": "alphabet"
+ },
+ {
+ "label": "Latest",
+ "value": "latest"
+ },
+ {
+ "label": "Most Views",
+ "value": "views"
+ },
+ {
+ "label": "New",
+ "value": "new-manga"
+ },
+ {
+ "label": "Trending",
+ "value": "trending"
+ }
+ ],
+ "type": "Picker"
+ },
+ "genres": {
+ "label": "GENRES",
+ "value": "",
+ "options": [
+ {
+ "label": "أكشن",
+ "value": "%d8%a3%d9%83%d8%b4%d9%86"
+ },
+ {
+ "label": "أيتشي",
+ "value": "%d8%a3%d9%8a%d8%aa%d8%b4%d9%8a"
+ },
+ {
+ "label": "استراتجي",
+ "value": "%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%d8%ac%d9%8a"
+ },
+ {
+ "label": "العصر الحديث",
+ "value": "%d8%a7%d9%84%d8%b9%d8%b5%d8%b1-%d8%a7%d9%84%d8%ad%d8%af%d9%8a%d8%ab"
+ },
+ {
+ "label": "انتقام",
+ "value": "%d8%a7%d9%86%d8%aa%d9%82%d8%a7%d9%85"
+ },
+ {
+ "label": "بالغ",
+ "value": "%d8%a8%d8%a7%d9%84%d8%ba"
+ },
+ {
+ "label": "بناء مملكة",
+ "value": "%d8%a8%d9%86%d8%a7%d8%a1-%d9%85%d9%85%d9%84%d9%83%d8%a9"
+ },
+ {
+ "label": "بوليسي",
+ "value": "%d8%a8%d9%88%d9%84%d9%8a%d8%b3%d9%8a"
+ },
+ {
+ "label": "تاريخي",
+ "value": "%d8%aa%d8%a7%d8%b1%d9%8a%d8%ae%d9%8a"
+ },
+ {
+ "label": "جوسي",
+ "value": "%d8%ac%d9%88%d8%b3%d9%8a"
+ },
+ {
+ "label": "حريم",
+ "value": "%d8%ad%d8%b1%d9%8a%d9%85"
+ },
+ {
+ "label": "حياة يومية",
+ "value": "%d8%ad%d9%8a%d8%a7%d8%a9-%d9%8a%d9%88%d9%85%d9%8a%d8%a9"
+ },
+ {
+ "label": "خيال",
+ "value": "%d8%ae%d9%8a%d8%a7%d9%84"
+ },
+ {
+ "label": "خيال علمي",
+ "value": "%d8%ae%d9%8a%d8%a7%d9%84-%d8%b9%d9%84%d9%85%d9%8a"
+ },
+ {
+ "label": "دراما",
+ "value": "%d8%af%d8%b1%d8%a7%d9%85%d8%a7"
+ },
+ {
+ "label": "رعب",
+ "value": "%d8%b1%d8%b9%d8%a8"
+ },
+ {
+ "label": "رومانسية",
+ "value": "%d8%b1%d9%88%d9%85%d8%a7%d9%86%d8%b3%d9%8a%d8%a9"
+ },
+ {
+ "label": "رياضي",
+ "value": "%d8%b1%d9%8a%d8%a7%d8%b6%d9%8a"
+ },
+ {
+ "label": "زيانشيا",
+ "value": "xianxia"
+ },
+ {
+ "label": "سنين",
+ "value": "%d8%b3%d9%86%d9%8a%d9%86"
+ },
+ {
+ "label": "شريحة حياة",
+ "value": "%d8%b4%d8%b1%d9%8a%d8%ad%d8%a9-%d8%ad%d9%8a%d8%a7%d8%a9"
+ },
+ {
+ "label": "شوانهوان",
+ "value": "xuanhuan"
+ },
+ {
+ "label": "شوجو",
+ "value": "%d8%b4%d9%88%d8%ac%d9%88"
+ },
+ {
+ "label": "شونين",
+ "value": "%d8%b4%d9%88%d9%86%d9%8a%d9%86"
+ },
+ {
+ "label": "شيانشيا",
+ "value": "%d8%b4%d9%8a%d8%a7%d9%86%d8%b4%d9%8a%d8%a7"
+ },
+ {
+ "label": "عسكري",
+ "value": "%d8%b9%d8%b3%d9%83%d8%b1%d9%8a"
+ },
+ {
+ "label": "غموض",
+ "value": "%d8%ba%d9%85%d9%88%d8%b6"
+ },
+ {
+ "label": "فانتازيا",
+ "value": "%d9%81%d8%a7%d9%86%d8%aa%d8%a7%d8%b2%d9%8a%d8%a7"
+ },
+ {
+ "label": "فنون قتالية",
+ "value": "%d9%81%d9%86%d9%88%d9%86-%d9%82%d8%aa%d8%a7%d9%84%d9%8a%d8%a9"
+ },
+ {
+ "label": "قوى خارقة",
+ "value": "%d9%82%d9%88%d9%89-%d8%ae%d8%a7%d8%b1%d9%82%d8%a9"
+ },
+ {
+ "label": "كوميديا",
+ "value": "%d9%83%d9%88%d9%85%d9%8a%d8%af%d9%8a%d8%a7"
+ },
+ {
+ "label": "كوميك",
+ "value": "%d9%83%d9%88%d9%85%d9%8a%d9%83"
+ },
+ {
+ "label": "للكبار",
+ "value": "%d9%84%d9%84%d9%83%d8%a8%d8%a7%d8%b1"
+ },
+ {
+ "label": "مأساة",
+ "value": "%d9%85%d8%a3%d8%b3%d8%a7%d8%a9"
+ },
+ {
+ "label": "مانجا",
+ "value": "%d9%85%d8%a7%d9%86%d8%ac%d8%a7"
+ },
+ {
+ "label": "مانها",
+ "value": "%d9%85%d8%a7%d9%86%d9%87%d8%a7"
+ },
+ {
+ "label": "مانهوا",
+ "value": "%d9%85%d8%a7%d9%86%d9%87%d9%88%d8%a7"
+ },
+ {
+ "label": "مدرسي",
+ "value": "%d9%85%d8%af%d8%b1%d8%b3%d9%8a"
+ },
+ {
+ "label": "مصاصي دماء",
+ "value": "%d9%85%d8%b5%d8%a7%d8%b5%d9%8a-%d8%af%d9%85%d8%a7%d8%a1"
+ },
+ {
+ "label": "مغامرة",
+ "value": "%d9%85%d8%ba%d8%a7%d9%85%d8%b1%d8%a9"
+ },
+ {
+ "label": "مكتملة",
+ "value": "%d9%85%d9%83%d8%aa%d9%85%d9%84%d8%a9"
+ },
+ {
+ "label": "نفسي",
+ "value": "%d9%86%d9%81%d8%b3%d9%8a"
+ },
+ {
+ "label": "نهاية العالم",
+ "value": "%d9%86%d9%87%d8%a7%d9%8a%d8%a9-%d8%a7%d9%84%d8%b9%d8%a7%d9%84%d9%85"
+ },
+ {
+ "label": "واب تون",
+ "value": "%d9%88%d8%a7%d8%a8-%d8%aa%d9%88%d9%86"
+ },
+ {
+ "label": "وان شوت",
+ "value": "%d9%88%d8%a7%d9%86-%d8%b4%d9%88%d8%aa"
+ }
+ ],
+ "type": "Picker"
+ }
+ },
+ "options": {
+ "useNewChapterEndpoint": true,
+ "lang": "Arabic"
+ }
+ },
+ {
+ "id": "novelstic",
+ "sourceSite": "https://novelstic.com/",
+ "sourceName": "Novelstic",
+ "options": {
+ "useNewChapterEndpoint": true
+ }
+ },
+ {
+ "id": "neosekaiTLS",
+ "sourceSite": "https://www.neosekaitranslations.com/",
+ "sourceName": "NeoSekai Translations",
+ "filters": {
+ "sort": {
+ "label": "Order by",
+ "value": "",
+ "options": [
+ {
+ "label": "Rating",
+ "value": "rating"
+ },
+ {
+ "label": "A-Z",
+ "value": "alphabet"
+ },
+ {
+ "label": "Latest",
+ "value": "latest"
+ },
+ {
+ "label": "Most Views",
+ "value": "views"
+ },
+ {
+ "label": "New",
+ "value": "new-manga"
+ },
+ {
+ "label": "Trending",
+ "value": "trending"
+ }
+ ],
+ "type": "Picker"
+ },
+ "genres": {
+ "label": "GENRES",
+ "value": "",
+ "options": [
+ {
+ "label": "Action",
+ "value": "action"
+ },
+ {
+ "label": "Adventure",
+ "value": "adventure"
+ },
+ {
+ "label": "Comedy",
+ "value": "comedy"
+ },
+ {
+ "label": "Drama",
+ "value": "drama"
+ },
+ {
+ "label": "Fantasy",
+ "value": "fantasy"
+ },
+ {
+ "label": "Harem",
+ "value": "harem"
+ },
+ {
+ "label": "Horror",
+ "value": "horror"
+ },
+ {
+ "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": "Slice of Life",
+ "value": "slice-of-life"
+ }
+ ],
+ "type": "Picker"
+ }
+ }
+ },
+ {
+ "id": "mtl-novel",
+ "sourceSite": "https://mtl-novel.com/",
+ "sourceName": "MTL-Novel",
+ "options": {
+ "path": {
+ "genres": "manga-genre"
+ },
+ "useNewChapterEndpoint": true
+ }
+ },
+ {
+ "id": "zetroTL",
+ "sourceSite": "https://zetrotranslation.com/",
+ "sourceName": "Zetro Translation",
+ "filters": {
+ "sort": {
+ "label": "Order by",
+ "value": "",
+ "options": [
+ {
+ "label": "Rating",
+ "value": "rating"
+ },
+ {
+ "label": "A-Z",
+ "value": "alphabet"
+ },
+ {
+ "label": "Latest",
+ "value": "latest"
+ },
+ {
+ "label": "Most Views",
+ "value": "views"
+ },
+ {
+ "label": "New",
+ "value": "new-manga"
+ },
+ {
+ "label": "Trending",
+ "value": "trending"
+ }
+ ],
+ "type": "Picker"
+ },
+ "genres": {
+ "label": "GENRES",
+ "value": "",
+ "options": [
+ {
+ "label": "Action",
+ "value": "action"
+ },
+ {
+ "label": "Adventure",
+ "value": "adventure"
+ },
+ {
+ "label": "Comedy",
+ "value": "comedy"
+ },
+ {
+ "label": "Dark Elf",
+ "value": "dark-elf"
+ },
+ {
+ "label": "Drama",
+ "value": "drama"
+ },
+ {
+ "label": "Ecchi",
+ "value": "ecchi"
+ },
+ {
+ "label": "Fantasy",
+ "value": "fantasy"
+ },
+ {
+ "label": "Harem",
+ "value": "harem"
+ },
+ {
+ "label": "Horror",
+ "value": "horror"
+ },
+ {
+ "label": "Isekai",
+ "value": "isekai"
+ },
+ {
+ "label": "Mecha",
+ "value": "mecha"
+ },
+ {
+ "label": "Mystery",
+ "value": "mystery"
+ },
+ {
+ "label": "NTR",
+ "value": "ntr"
+ },
+ {
+ "label": "Original Works",
+ "value": "original-works"
+ },
+ {
+ "label": "Rom-Com",
+ "value": "rom-com"
+ },
+ {
+ "label": "Romance",
+ "value": "romance"
+ },
+ {
+ "label": "School",
+ "value": "school"
+ },
+ {
+ "label": "Shoujo",
+ "value": "shoujo"
+ },
+ {
+ "label": "Slice of Life",
+ "value": "slice-of-life"
+ },
+ {
+ "label": "Villain",
+ "value": "villain"
+ },
+ {
+ "label": "Yuri",
+ "value": "yuri"
+ }
+ ],
+ "type": "Picker"
+ }
+ },
+ "options": {
+ "path": {
+ "genres": "genre"
+ }
+ }
+ },
+ {
+ "id": "nocturneTLS",
+ "sourceSite": "https://nocturnetls.net/",
+ "sourceName": "Nocturne Translations",
+ "filters": {
+ "sort": {
+ "label": "Order by",
+ "value": "",
+ "options": [
+ {
+ "label": "Rating",
+ "value": "rating"
+ },
+ {
+ "label": "A-Z",
+ "value": "alphabet"
+ },
+ {
+ "label": "Latest",
+ "value": "latest"
+ },
+ {
+ "label": "Most Views",
+ "value": "views"
+ },
+ {
+ "label": "New",
+ "value": "new-manga"
+ },
+ {
+ "label": "Trending",
+ "value": "trending"
+ }
+ ],
+ "type": "Picker"
+ },
+ "genres": {
+ "label": "GENRES",
+ "value": "",
+ "options": [
+ {
+ "label": "Action",
+ "value": "action"
+ },
+ {
+ "label": "Adult",
+ "value": "adult"
+ },
+ {
+ "label": "Adventure",
+ "value": "adventure"
+ },
+ {
+ "label": "Anime",
+ "value": "anime"
+ },
+ {
+ "label": "Cartoon",
+ "value": "cartoon"
+ },
+ {
+ "label": "Comedy",
+ "value": "comedy"
+ },
+ {
+ "label": "Comic",
+ "value": "comic"
+ },
+ {
+ "label": "Cooking",
+ "value": "cooking"
+ },
+ {
+ "label": "Detective",
+ "value": "detective"
+ },
+ {
+ "label": "Doujinshi",
+ "value": "doujinshi"
+ },
+ {
+ "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": "Josei",
+ "value": "josei"
+ },
+ {
+ "label": "Live action",
+ "value": "live-action"
+ },
+ {
+ "label": "Manga",
+ "value": "manga"
+ },
+ {
+ "label": "Manhua",
+ "value": "manhua"
+ },
+ {
+ "label": "Manhwa",
+ "value": "manhwa"
+ },
+ {
+ "label": "Martial Arts",
+ "value": "martial-arts"
+ },
+ {
+ "label": "Mature",
+ "value": "mature"
+ },
+ {
+ "label": "Mecha",
+ "value": "mecha"
+ },
+ {
+ "label": "Mystery",
+ "value": "mystery"
+ },
+ {
+ "label": "One shot",
+ "value": "one-shot"
+ },
+ {
+ "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": "Smut",
+ "value": "smut"
+ },
+ {
+ "label": "Soft Yaoi",
+ "value": "soft-yaoi"
+ },
+ {
+ "label": "Soft Yuri",
+ "value": "soft-yuri"
+ },
+ {
+ "label": "Sports",
+ "value": "sports"
+ },
+ {
+ "label": "Supernatural",
+ "value": "supernatural"
+ },
+ {
+ "label": "Tragedy",
+ "value": "tragedy"
+ },
+ {
+ "label": "Webtoon",
+ "value": "webtoon"
+ },
+ {
+ "label": "Yaoi",
+ "value": "yaoi"
+ },
+ {
+ "label": "Yuri",
+ "value": "yuri"
+ }
+ ],
+ "type": "Picker"
+ }
+ },
+ "options": {
+ "path": {
+ "novels": "novels",
+ "novel": "novels",
+ "chapter": "novels",
+ "genres": "manga-genre"
+ }
+ }
+ },
+ {
+ "id": "novelroom",
+ "sourceSite": "https://novelroom.net/",
+ "sourceName": "Novelroom.net",
+ "options": {
+ "path": {
+ "novels": "manga",
+ "novel": "manga",
+ "chapter": "manga"
+ }
+ }
+ },
+ {
+ "id": "novelr18",
+ "sourceSite": "https://novelr18.com/",
+ "sourceName": "NovelR18",
+ "options": {
+ "path": {
+ "novel": "manga",
+ "chapter": "manga"
+ },
+ "useNewChapterEndpoint": true
+ }
+ },
+ {
+ "id": "webnoveloku",
+ "sourceSite": "https://www.webnoveloku.com/",
+ "sourceName": "WebNovelOku",
+ "filters": {
+ "sort": {
+ "label": "Sırala",
+ "value": "",
+ "options": [
+ {
+ "label": "A-Z",
+ "value": "alphabet"
+ },
+ {
+ "label": "En Son",
+ "value": "latest"
+ },
+ {
+ "label": "Görüntülenme",
+ "value": "views"
+ },
+ {
+ "label": "Popülarite",
+ "value": "trending"
+ },
+ {
+ "label": "Reyting",
+ "value": "rating"
+ },
+ {
+ "label": "Yeni",
+ "value": "new-manga"
+ }
+ ],
+ "type": "Picker"
+ }
+ },
+ "options": {
+ "lang": "Turkish"
+ }
+ },
+ {
+ "id": "LightNovelUpdates",
+ "sourceSite": "https://www.lightnovelupdates.com/",
+ "sourceName": "Light Novel Updates",
+ "filters": {
+ "sort": {
+ "label": "Order by",
+ "value": "",
+ "options": [
+ {
+ "label": "Rating",
+ "value": "rating"
+ },
+ {
+ "label": "A-Z",
+ "value": "alphabet"
+ },
+ {
+ "label": "Latest",
+ "value": "latest"
+ },
+ {
+ "label": "Most Views",
+ "value": "views"
+ },
+ {
+ "label": "New",
+ "value": "new-manga"
+ },
+ {
+ "label": "Trending",
+ "value": "trending"
+ }
+ ],
+ "type": "Picker"
+ },
+ "genres": {
+ "label": "GENRES",
+ "value": "",
+ "options": [
+ {
+ "label": "Action",
+ "value": "action"
+ },
+ {
+ "label": "Adventure",
+ "value": "adventure"
+ },
+ {
+ "label": "Chinese",
+ "value": "chinese"
+ },
+ {
+ "label": "Chinese Novel",
+ "value": "chinese-novel"
+ },
+ {
+ "label": "Comedy",
+ "value": "comedy"
+ },
+ {
+ "label": "Drama",
+ "value": "drama"
+ },
+ {
+ "label": "Ecchi",
+ "value": "ecchi"
+ },
+ {
+ "label": "Fantasy",
+ "value": "fantasy"
+ },
+ {
+ "label": "Filipino",
+ "value": "filipino"
+ },
+ {
+ "label": "Filipino Novel",
+ "value": "filipino-novel"
+ },
+ {
+ "label": "Gender Bender",
+ "value": "gender-bender"
+ },
+ {
+ "label": "Genre",
+ "value": "genre"
+ },
+ {
+ "label": "Harem",
+ "value": "harem"
+ },
+ {
+ "label": "Historical",
+ "value": "historical"
+ },
+ {
+ "label": "Horror",
+ "value": "horror"
+ },
+ {
+ "label": "Indonesia",
+ "value": "indonesia"
+ },
+ {
+ "label": "Indonesia Novel",
+ "value": "indonesia-novel"
+ },
+ {
+ "label": "Japanese",
+ "value": "japanese"
+ },
+ {
+ "label": "Josei",
+ "value": "josei"
+ },
+ {
+ "label": "Khmer",
+ "value": "khmer"
+ },
+ {
+ "label": "Korean",
+ "value": "korean"
+ },
+ {
+ "label": "Korean Novel",
+ "value": "korean-novel"
+ },
+ {
+ "label": "Language",
+ "value": "language"
+ },
+ {
+ "label": "Light Novel",
+ "value": "light-novel"
+ },
+ {
+ "label": "Lolicon",
+ "value": "lolicon"
+ },
+ {
+ "label": "Malaysian",
+ "value": "malaysian"
+ },
+ {
+ "label": "Malaysian Novel",
+ "value": "malaysian-novel"
+ },
+ {
+ "label": "Martial Arts",
+ "value": "martial-arts"
+ },
+ {
+ "label": "Mature",
+ "value": "mature"
+ },
+ {
+ "label": "Mecha",
+ "value": "mecha"
+ },
+ {
+ "label": "Mystery",
+ "value": "mystery"
+ },
+ {
+ "label": "N/A",
+ "value": "n-a"
+ },
+ {
+ "label": "Novel Type",
+ "value": "novel-type"
+ },
+ {
+ "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": "Shotacon",
+ "value": "shotacon"
+ },
+ {
+ "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-3"
+ },
+ {
+ "label": "Slice of Life",
+ "value": "slice-of-life"
+ },
+ {
+ "label": "Smut",
+ "value": "smut"
+ },
+ {
+ "label": "Sports",
+ "value": "sports"
+ },
+ {
+ "label": "Supernatural",
+ "value": "supernatural"
+ },
+ {
+ "label": "Thai",
+ "value": "thai"
+ },
+ {
+ "label": "Thai Novel",
+ "value": "thai-novel"
+ },
+ {
+ "label": "Tragedy",
+ "value": "tragedy"
+ },
+ {
+ "label": "Vietnamese",
+ "value": "vietnamese"
+ },
+ {
+ "label": "Vietnamese Novel",
+ "value": "vietnamese-novel"
+ },
+ {
+ "label": "Web Novel",
+ "value": "web-novel"
+ },
+ {
+ "label": "Wuxia",
+ "value": "wuxia"
+ },
+ {
+ "label": "Xianxia",
+ "value": "xianxia"
+ },
+ {
+ "label": "Xuanhuan",
+ "value": "xuanhuan"
+ },
+ {
+ "label": "Yaoi",
+ "value": "yaoi"
+ },
+ {
+ "label": "Yuri",
+ "value": "yuri"
+ }
+ ],
+ "type": "Picker"
+ }
+ }
+ },
+ {
+ "id": "foxaholic",
+ "sourceSite": "https://www.foxaholic.com/",
+ "sourceName": "Foxaholic"
+ },
+ {
+ "id": "nitromanga",
+ "sourceSite": "https://nitromanga.com/",
+ "sourceName": "Nitro Manga",
+ "filters": {
+ "sort": {
+ "label": "Order by",
+ "value": "",
+ "options": [
+ {
+ "label": "Rating",
+ "value": "rating"
+ },
+ {
+ "label": "A-Z",
+ "value": "alphabet"
+ },
+ {
+ "label": "Latest",
+ "value": "latest"
+ },
+ {
+ "label": "Most Views",
+ "value": "views"
+ },
+ {
+ "label": "New",
+ "value": "new-manga"
+ },
+ {
+ "label": "Trending",
+ "value": "trending"
+ }
+ ],
+ "type": "Picker"
+ },
+ "genres": {
+ "label": "GENRES",
+ "value": "",
+ "options": [
+ {
+ "label": "Action",
+ "value": "action"
+ },
+ {
+ "label": "Adventure",
+ "value": "adventure"
+ },
+ {
+ "label": "Apocalyptic",
+ "value": "apocalyptic"
+ },
+ {
+ "label": "Beasts",
+ "value": "beasts"
+ },
+ {
+ "label": "Cheat Systems",
+ "value": "cheat-systems"
+ },
+ {
+ "label": "Comedy",
+ "value": "comedy"
+ },
+ {
+ "label": "Completed",
+ "value": "completed"
+ },
+ {
+ "label": "Crime",
+ "value": "crime"
+ },
+ {
+ "label": "Cultivation",
+ "value": "cultivation"
+ },
+ {
+ "label": "Demons",
+ "value": "demons"
+ },
+ {
+ "label": "Drama",
+ "value": "drama"
+ },
+ {
+ "label": "Dungeons",
+ "value": "dungeons"
+ },
+ {
+ "label": "Ecchi",
+ "value": "ecchi"
+ },
+ {
+ "label": "Fantasy",
+ "value": "fantasy"
+ },
+ {
+ "label": "Game",
+ "value": "game"
+ },
+ {
+ "label": "Genius MC",
+ "value": "genius-mc"
+ },
+ {
+ "label": "Ghosts",
+ "value": "ghosts"
+ },
+ {
+ "label": "Harem",
+ "value": "harem"
+ },
+ {
+ "label": "Historical",
+ "value": "historical"
+ },
+ {
+ "label": "Horror",
+ "value": "horror"
+ },
+ {
+ "label": "Hunter",
+ "value": "hunter"
+ },
+ {
+ "label": "Isekai",
+ "value": "isekai"
+ },
+ {
+ "label": "Magic",
+ "value": "magic"
+ },
+ {
+ "label": "Manga",
+ "value": "manga"
+ },
+ {
+ "label": "Manhua",
+ "value": "manhua"
+ },
+ {
+ "label": "Manhwa",
+ "value": "manhwa"
+ },
+ {
+ "label": "Martial Arts",
+ "value": "martial-arts"
+ },
+ {
+ "label": "Mature",
+ "value": "mature"
+ },
+ {
+ "label": "Mecha",
+ "value": "mecha"
+ },
+ {
+ "label": "Medical",
+ "value": "medical"
+ },
+ {
+ "label": "Monsters",
+ "value": "monsters"
+ },
+ {
+ "label": "Murim",
+ "value": "murim"
+ },
+ {
+ "label": "Mystery",
+ "value": "mystery"
+ },
+ {
+ "label": "Novel",
+ "value": "novel"
+ },
+ {
+ "label": "Overpowered",
+ "value": "overpowered"
+ },
+ {
+ "label": "Psychological",
+ "value": "psychological"
+ },
+ {
+ "label": "Rebirth",
+ "value": "rebirth"
+ },
+ {
+ "label": "Regression",
+ "value": "regression"
+ },
+ {
+ "label": "Reincarnation",
+ "value": "reincarnation"
+ },
+ {
+ "label": "Revenge",
+ "value": "revenge"
+ },
+ {
+ "label": "Romance",
+ "value": "romance"
+ },
+ {
+ "label": "School Life",
+ "value": "school-life"
+ },
+ {
+ "label": "Sci-fi",
+ "value": "sci-fi"
+ },
+ {
+ "label": "Seinen",
+ "value": "seinen"
+ },
+ {
+ "label": "Shounen",
+ "value": "shounen"
+ },
+ {
+ "label": "Slice of Life",
+ "value": "slice-of-life"
+ },
+ {
+ "label": "Sports",
+ "value": "sports"
+ },
+ {
+ "label": "Super Power",
+ "value": "super-power"
+ },
+ {
+ "label": "Supernatural",
+ "value": "supernatural"
+ },
+ {
+ "label": "System",
+ "value": "system"
+ },
+ {
+ "label": "Time Travel",
+ "value": "time-travel"
+ },
+ {
+ "label": "Tragedy",
+ "value": "tragedy"
+ },
+ {
+ "label": "Video Games",
+ "value": "video-games"
+ },
+ {
+ "label": "Webtoon",
+ "value": "webtoon"
+ },
+ {
+ "label": "Wuxia",
+ "value": "wuxia"
+ },
+ {
+ "label": "Zombie",
+ "value": "zombie"
+ }
+ ],
+ "type": "Picker"
+ }
+ },
+ "options": {
+ "path": {
+ "genres": "mangas-genre",
+ "novels": "mangas-genre/novel"
+ },
+ "useNewChapterEndpoint": true
+ }
+ },
+ {
+ "id": "kiniga",
+ "sourceSite": "https://kiniga.com/",
+ "sourceName": "Kiniga",
+ "filters": {
+ "sort": {
+ "label": "Orden por",
+ "options": [
+ { "label": "Relevância", "value": "" },
+ {
+ "label": "A-Z",
+ "value": "alphabet"
+ },
+ {
+ "label": "Mais Antigo",
+ "value": "latest"
+ },
+ {
+ "label": "Mais vistos",
+ "value": "views"
+ },
+ {
+ "label": "Tendência",
+ "value": "trending"
+ },
+ {
+ "label": "Avaliação",
+ "value": "rating"
+ },
+ {
+ "label": "Novo",
+ "value": "new-manga"
+ }
+ ],
+ "value": "",
+ "type": "Picker"
+ },
+ "genres": {
+ "label": "Generos",
+ "options": [
+ { "label": "Sem Filtro", "value": "" },
+ { "label": "Ação", "value": "action" },
+ { "label": "Artes Marciais", "value": "artes-marciais" },
+ { "label": "Aventura", "value": "aventura" },
+ { "label": "Comédia", "value": "comedia" },
+ { "label": "Contemporâneo", "value": "contemporaneo" },
+ { "label": "Contos Originais", "value": "contos-originais" },
+ { "label": "Crime", "value": "crime" },
+ { "label": "Cyberpunk", "value": "cyberpunk" },
+ { "label": "Destaque", "value": "destaque" },
+ { "label": "Distopia", "value": "distopia" },
+ { "label": "Drama", "value": "drama" },
+ { "label": "Ecchi", "value": "ecchi" },
+ { "label": "Espacial", "value": "espacial" },
+ { "label": "Esportes", "value": "esportes" },
+ { "label": "Fanfic", "value": "fanfic" },
+ { "label": "Fantasia", "value": "fantasia" },
+ { "label": "Ficção Científica", "value": "ficcao-cientifica" },
+ { "label": "Gastronomia", "value": "gastronomia" },
+ { "label": "Harem", "value": "harem" },
+ { "label": "Histórico", "value": "historico" },
+ { "label": "Horror", "value": "horror" },
+ { "label": "Infantil", "value": "infantil" },
+ { "label": "Isekai", "value": "isekai" },
+ { "label": "Jogos", "value": "jogos" },
+ { "label": "LGBT+", "value": "lgbt" },
+ { "label": "Magia", "value": "magia" },
+ { "label": "Mecha", "value": "mecha" },
+ { "label": "Medieval", "value": "medieval" },
+ { "label": "Militar", "value": "militar" },
+ { "label": "Mistério", "value": "misterio" },
+ { "label": "Mitologia", "value": "mitologia" },
+ { "label": "Moderno", "value": "moderno" },
+ { "label": "Pós-Apocalíptico", "value": "pos-apocaliptico" },
+ { "label": "Psicológico", "value": "psicologico" },
+ { "label": "Realidade Virtual", "value": "realidade-virtual" },
+ { "label": "Recomendado", "value": "recomendado" },
+ { "label": "Romance", "value": "romance" },
+ { "label": "RPG", "value": "rpg" },
+ { "label": "Ficção Científica", "value": "sci-fi" },
+ { "label": "Seinen", "value": "seinen" },
+ { "label": "Shounen", "value": "shounen" },
+ { "label": "Sistema de Jogo", "value": "sistema-de-jogo" },
+ { "label": "Slice of Life", "value": "slice-of-life" },
+ { "label": "SNKHome", "value": "snkhome" },
+ { "label": "Sobrenatural", "value": "sobrenatural" },
+ { "label": "Somente na Kiniga", "value": "somente-na-kiniga" },
+ { "label": "Suspense", "value": "suspense" },
+ { "label": "Terror", "value": "terror" },
+ { "label": "Terror Psicológico", "value": "terror-psicologico" },
+ { "label": "Traduções", "value": "traducoes" },
+ { "label": "Tragédia", "value": "tragedia" },
+ { "label": "Urbano", "value": "urbano" },
+ { "label": "Vida Escolar", "value": "vida-escolar" }
+ ],
+ "value": "",
+ "type": "Picker"
+ }
+ },
+ "options": {
+ "path": {
+ "novels": "projetos",
+ "novel": "projeto",
+ "chapter": "capitulo",
+ "genres": "genero"
+ },
+ "lang": "Portuguese"
+ }
+ }
]
-
diff --git a/scripts/multisrc/madara/template.ts b/scripts/multisrc/madara/template.ts
index d721f11..5c08ba7 100644
--- a/scripts/multisrc/madara/template.ts
+++ b/scripts/multisrc/madara/template.ts
@@ -4,275 +4,321 @@ import { Plugin } from "@typings/plugin";
import { load as parseHTML } from "cheerio";
import { defaultCover } from "@libs/defaultCover";
import { NovelStatus } from "@libs/novelStatus";
-import { parseMadaraDate } from "@libs/parseMadaraDate";
import dayjs from "dayjs";
+const delay = (ms: number) => new Promise((res) => setTimeout(res, ms));
+const includesAny = (str: string, keywords: string[]) =>
+ new RegExp(keywords.join("|")).test(str);
+
interface MadaraOptionPath {
- genres?: string;
- novels?: string;
- novel?: string;
- chapter?: string;
+ genres?: string;
+ novels?: string;
+ novel?: string;
+ chapter?: string;
}
const MadaraDefaultPath = {
- genres: "novel-genre",
- novels: "novel",
- novel: "novel",
- chapter: "novel",
+ genres: "novel-genre",
+ novels: "novel",
+ novel: "novel",
+ chapter: "novel",
};
interface MadaraOptions {
- useNewChapterEndpoint?: boolean;
- path?: MadaraOptionPath;
- lang?: string;
- orderBy?: string;
+ useNewChapterEndpoint?: boolean;
+ path?: MadaraOptionPath;
+ lang?: string;
+ orderBy?: string;
}
export interface MadaraMetadata {
- id: string;
- sourceSite: string;
- sourceName: string;
- options?: MadaraOptions;
- filters?: Filters;
+ id: string;
+ sourceSite: string;
+ sourceName: string;
+ options?: MadaraOptions;
+ filters?: Filters;
}
class MadaraPlugin implements Plugin.PluginBase {
- id: string;
- name: string;
- icon: string;
- site: string;
- version: string;
- options?: MadaraOptions;
- filters?: Filters | undefined;
+ id: string;
+ name: string;
+ icon: string;
+ site: string;
+ version: string;
+ options?: MadaraOptions;
+ filters?: Filters | undefined;
- constructor(metadata: MadaraMetadata) {
- this.id = metadata.id;
- this.name = metadata.sourceName + "[madara]";
- const iconFileName = metadata.sourceName
- .replace(/\s+/g, "")
- .toLowerCase();
- this.icon = `multisrc/madara/icons/${iconFileName}.png`;
- this.site = metadata.sourceSite;
- this.version = "1.0.0";
- this.options = metadata.options;
- this.filters = metadata.filters;
+ constructor(metadata: MadaraMetadata) {
+ this.id = metadata.id;
+ this.name = metadata.sourceName;
+ const iconFileName = metadata.sourceName.replace(/\s+/g, "").toLowerCase();
+ this.icon = `multisrc/madara/icons/${iconFileName}.png`;
+ this.site = metadata.sourceSite;
+ this.version = "1.0.0";
+ this.options = metadata.options;
+ this.filters = metadata.filters;
+ }
+ async popularNovels(
+ pageNo: number,
+ {
+ filters,
+ showLatestNovels,
+ }: Plugin.PopularNovelsOptions,
+ ): Promise {
+ const novels: Plugin.NovelItem[] = [];
+
+ let url = this.site;
+ if (filters?.genres?.value) {
+ url +=
+ (this.options?.path?.genres || MadaraDefaultPath.genres) +
+ "/" + filters.genres.value;
+ } else {
+ url += this.options?.path?.novels || MadaraDefaultPath.novels;
}
- async popularNovels(
- pageNo: number,
- {
- filters,
- showLatestNovels,
- }: Plugin.PopularNovelsOptions
- ): Promise {
- const novels: Plugin.NovelItem[] = [];
- let url = this.site;
- if (filters?.genres?.value) {
- url += (this.options?.path?.genres || MadaraDefaultPath.genres) +
- "/" +
- filters.genres.value;
- } else {
- url += this.options?.path?.novels || MadaraDefaultPath.novels;
- }
+ url += "/page/" + pageNo + "/?m_orderby=" +
+ (showLatestNovels ? "latest" : filters?.sort?.value || "rating");
- url +=
- "/page/" +
- pageNo +
- "/" +
- "?m_orderby=" +
- (showLatestNovels ? "latest" : filters?.sort?.value || "rating");
+ const body = await fetchApi(url).then((res) => res.text());
+ const loadedCheerio = parseHTML(body);
- const body = await fetchApi(url).then((res) => res.text());
+ loadedCheerio(".manga-title-badges").remove();
- const loadedCheerio = parseHTML(body);
+ loadedCheerio(".page-item-detail").each(function () {
+ const novelName = loadedCheerio(this).find(".post-title").text().trim();
+ const image = loadedCheerio(this).find("img");
+ const novelCover = image.attr("data-src") || image.attr("src");
+ const novelUrl =
+ loadedCheerio(this).find(".post-title").find("a").attr("href") || "";
+ if (!novelName || !novelUrl) return;
- loadedCheerio(".manga-title-badges").remove();
+ const novel: Plugin.NovelItem = {
+ name: novelName,
+ cover: novelCover,
+ url: novelUrl,
+ };
- loadedCheerio(".page-item-detail").each(function () {
- const novelName = loadedCheerio(this)
- .find(".post-title")
- .text()
- .trim();
- let image = loadedCheerio(this).find("img");
- const novelCover = image.attr("data-src") || image.attr("src");
+ novels.push(novel);
+ });
- let novelUrl =
- loadedCheerio(this)
- .find(".post-title")
- .find("a")
- .attr("href") || "";
- const novel: Plugin.NovelItem = {
- name: novelName,
- cover: novelCover,
- url: novelUrl,
- };
+ return novels;
+ }
+ async parseNovelAndChapters(novelUrl: string): Promise {
+ const novel: Plugin.SourceNovel = {
+ url: novelUrl,
+ };
- novels.push(novel);
- });
+ const body = await fetchApi(novelUrl).then((res) => res.text());
- return novels;
+ let loadedCheerio = parseHTML(body);
+
+ loadedCheerio(".manga-title-badges, #manga-title span").remove();
+ novel.name =
+ loadedCheerio(".post-title h1").text().trim() ||
+ loadedCheerio("#manga-title h1").text();
+
+ novel.cover =
+ loadedCheerio(".summary_image > a > img").attr("data-lazy-src") ||
+ loadedCheerio(".summary_image > a > img").attr("data-src") ||
+ loadedCheerio(".summary_image > a > img").attr("src") ||
+ loadedCheerio(".summary_image > a > img").attr("src") ||
+ defaultCover;
+
+ loadedCheerio(".post-content_item, .post-content").each(function () {
+ const detailName = loadedCheerio(this).find("h5").text().trim();
+ const detail = loadedCheerio(this).find(".summary-content").text().trim();
+
+ switch (detailName) {
+ case "Genre(s)":
+ case "Género(s)":
+ case "التصنيفات":
+ novel.genres = detail;
+ break;
+ case "Author(s)":
+ case "Autor(es)":
+ case "المؤلف":
+ case "المؤلف (ين)":
+ novel.author = detail;
+ break;
+ case "Status":
+ case "Estado":
+ novel.status =
+ detail.includes("OnGoing") || detail.includes("مستمرة")
+ ? NovelStatus.Ongoing
+ : NovelStatus.Completed;
+ break;
+ }
+ });
+
+ loadedCheerio("div.summary__content .code-block,script").remove();
+ novel.summary =
+ loadedCheerio("div.summary__content").text().trim() ||
+ loadedCheerio("#tab-manga-about").text().trim() ||
+ loadedCheerio('.post-content_item h5:contains("Summary")')
+ .next()
+ .text()
+ .trim();
+ const chapters: Plugin.ChapterItem[] = [];
+ let html = "";
+
+ if (this.options?.useNewChapterEndpoint) {
+ html = await fetchApi(novelUrl + "ajax/chapters/", {
+ method: "POST",
+ }).then((res) => res.text());
+ } else {
+ const novelId =
+ loadedCheerio(".rating-post-id").attr("value") ||
+ loadedCheerio("#manga-chapters-holder").attr("data-id") ||
+ "";
+
+ const formData = new FormData();
+ formData.append("action", "manga_get_chapters");
+ formData.append("manga", novelId);
+
+ html = await fetchApi(this.site + "wp-admin/admin-ajax.php", {
+ method: "POST",
+ body: formData,
+ }).then((res) => res.text());
}
- async parseNovelAndChapters(novelUrl: string): Promise {
- const novel: Plugin.SourceNovel = {
- url: novelUrl,
- };
- const body = await fetchApi(novelUrl).then((res) => res.text());
-
- let loadedCheerio = parseHTML(body);
-
- loadedCheerio(".manga-title-badges, #manga-title span").remove();
- novel.name =
- loadedCheerio(".post-title h1").text().trim() ||
- loadedCheerio("#manga-title h1").text();
-
- novel.cover =
- loadedCheerio(".summary_image > a > img").attr("data-lazy-src") ||
- loadedCheerio(".summary_image > a > img").attr("data-src") ||
- loadedCheerio(".summary_image > a > img").attr("src") ||
- defaultCover;
-
- loadedCheerio(".post-content_item, .post-content").each(function () {
- const detailName = loadedCheerio(this).find("h5").text().trim();
- const detail = loadedCheerio(this)
- .find(".summary-content")
- .text()
- .trim();
-
- switch (detailName) {
- case "Genre(s)":
- case "التصنيفات":
- novel.genres = detail.replace(/[\\t\\n]/g, ",");
- break;
- case "Author(s)":
- case "المؤلف":
- case "المؤلف (ين)":
- novel.author = detail;
- break;
- case "Status":
- case "الحالة":
- novel.status =
- detail.includes("OnGoing") || detail.includes("مستمرة")
- ? NovelStatus.Ongoing
- : NovelStatus.Completed;
- break;
- }
- });
-
- loadedCheerio("div.summary__content .code-block,script").remove();
- novel.summary =
- loadedCheerio("div.summary__content").text().trim() ||
- loadedCheerio("#tab-manga-about").text().trim() ||
- loadedCheerio('.post-content_item h5:contains("Summary")')
- .next()
- .text()
- .trim();
-
- let html;
-
- if (this.options?.useNewChapterEndpoint !== true) {
- const novelId =
- loadedCheerio(".rating-post-id").attr("value") ||
- loadedCheerio("#manga-chapters-holder").attr("data-id") ||
- "";
-
- const formData = new FormData();
- formData.append("action", "manga_get_chapters");
- formData.append("manga", novelId);
-
- html = await fetchApi(this.site + "wp-admin/admin-ajax.php", {
- method: "POST",
- body: formData,
- }).then((res) => res.text());
- } else {
- html = await fetchApi(novelUrl + "ajax/chapters/", {
- method: "POST",
- }).then((res) => res.text());
- }
-
- if (html !== "0") {
- loadedCheerio = parseHTML(html);
- }
-
- const chapters: Plugin.ChapterItem[] = [];
- loadedCheerio(".wp-manga-chapter").each(function () {
- const chapterName = loadedCheerio(this).find("a").text().trim();
-
- let releaseDate = null;
- releaseDate = loadedCheerio(this)
- .find("span.chapter-release-date")
- .text()
- .trim();
-
- if (releaseDate) {
- releaseDate = parseMadaraDate(releaseDate);
- } else {
- /**
- * Insert current date
- */
-
- releaseDate = dayjs().format("LL");
- }
-
- let chapterUrl = loadedCheerio(this).find("a").attr("href") || "";
-
- chapters.push({
- name: chapterName,
- releaseTime: releaseDate,
- url: chapterUrl,
- });
- });
-
- novel.chapters = chapters.reverse();
- return novel;
+ if (html !== "0") {
+ loadedCheerio = parseHTML(html);
}
- async parseChapter(chapterUrl: string): Promise {
- const body = await fetchApi(chapterUrl).then((res) => res.text());
- const loadedCheerio = parseHTML(body);
- const chapterText =
- loadedCheerio(".text-left").html() ||
- loadedCheerio(".text-right").html() ||
- loadedCheerio(".entry-content").html() ||
- "";
+ const totalChapters = loadedCheerio(".wp-manga-chapter").length;
+ loadedCheerio(".wp-manga-chapter").each((chapterIndex, element) => {
+ const chapterName = loadedCheerio(element).find("a").text().trim();
- return chapterText;
+ let releaseDate = loadedCheerio(element)
+ .find("span.chapter-release-date")
+ .text()
+ .trim();
+
+ if (releaseDate) {
+ releaseDate = this.parseData(releaseDate);
+ } else {
+ releaseDate = dayjs().format("LL");
+ }
+
+ let chapterUrl = loadedCheerio(element).find("a").attr("href") || "";
+
+ chapters.push({
+ name: chapterName,
+ url: chapterUrl,
+ releaseTime: releaseDate || null,
+ chapterNumber: totalChapters - chapterIndex,
+ });
+ });
+
+ novel.chapters = chapters.reverse();
+ return novel;
+ }
+ async parseChapter(chapterUrl: string): Promise {
+ const body = await fetchApi(chapterUrl).then((res) => res.text());
+
+ const loadedCheerio = parseHTML(body);
+ const chapterText =
+ loadedCheerio(".text-left").html() ||
+ loadedCheerio(".text-right").html() ||
+ loadedCheerio(".entry-content").html() ||
+ loadedCheerio(".c-blog-post > div > div:nth-child(2)").html() ||
+ "";
+
+ return chapterText;
+ }
+ async searchNovels(
+ searchTerm: string,
+ pageNo?: number | undefined,
+ ): Promise {
+ const novels: Plugin.NovelItem[] = [];
+ const url = this.site + "?s=" + searchTerm + "&post_type=wp-manga";
+
+ const body = await fetchApi(url).then((res) => res.text());
+
+ const loadedCheerio = parseHTML(body);
+
+ loadedCheerio(".c-tabs-item__content").each(function () {
+ const novelName = loadedCheerio(this).find(".post-title").text().trim();
+
+ let image = loadedCheerio(this).find("img");
+ const novelCover = image.attr("data-src") || image.attr("src");
+
+ let novelUrl =
+ loadedCheerio(this).find(".post-title").find("a").attr("href") || "";
+ const novel = {
+ name: novelName,
+ cover: novelCover,
+ url: novelUrl,
+ };
+
+ novels.push(novel);
+ });
+ return novels;
+ }
+
+ fetchImage = fetchFile;
+
+ parseData = (date: string) => {
+ const dayJSDate = dayjs(); // today
+ const timeAgo = date.match(/\d+/)?.[0] || "";
+ const timeAgoInt = parseInt(timeAgo, 10);
+
+ if (!timeAgo) return date; // there is no number!
+
+ if (includesAny(date, ["detik", "segundo", "second", "วินาที"])) {
+ dayJSDate.subtract(timeAgoInt, "second"); // go back N seconds
+ } else if (
+ includesAny(date, [
+ "menit",
+ "dakika",
+ "min",
+ "minute",
+ "minuto",
+ "นาที",
+ "دقائق",
+ ])
+ ) {
+ dayJSDate.subtract(timeAgoInt, "minute"); // go back N minute
+ } else if (
+ includesAny(date, [
+ "jam",
+ "saat",
+ "heure",
+ "hora",
+ "hour",
+ "ชั่วโมง",
+ "giờ",
+ "ore",
+ "ساعة",
+ "小时",
+ ])
+ ) {
+ dayJSDate.subtract(timeAgoInt, "hours"); // go back N hours
+ } else if (
+ includesAny(date, [
+ "hari",
+ "gün",
+ "jour",
+ "día",
+ "dia",
+ "day",
+ "วัน",
+ "ngày",
+ "giorni",
+ "أيام",
+ "天",
+ ])
+ ) {
+ dayJSDate.subtract(timeAgoInt, "days"); // go back N days
+ } else if (includesAny(date, ["week", "semana"])) {
+ dayJSDate.subtract(timeAgoInt, "week"); // go back N a week
+ } else if (includesAny(date, ["month", "mes"])) {
+ dayJSDate.subtract(timeAgoInt, "month"); // go back N months
+ } else if (includesAny(date, ["year", "año"])) {
+ dayJSDate.subtract(timeAgoInt, "year"); // go back N years
+ } else {
+ return date;
}
- async searchNovels(
- searchTerm: string,
- pageNo?: number | undefined
- ): Promise {
- const novels: Plugin.NovelItem[] = [];
- const url = this.site + "?s=" + searchTerm + "&post_type=wp-manga";
- const body = await fetchApi(url).then((res) => res.text());
-
- const loadedCheerio = parseHTML(body);
-
- loadedCheerio(".c-tabs-item__content").each(function () {
- const novelName = loadedCheerio(this)
- .find(".post-title")
- .text()
- .trim();
-
- let image = loadedCheerio(this).find("img");
- const novelCover = image.attr("data-src") || image.attr("src");
-
- let novelUrl =
- loadedCheerio(this)
- .find(".post-title")
- .find("a")
- .attr("href") || "";
- const novel = {
- name: novelName,
- cover: novelCover,
- url: novelUrl,
- };
-
- novels.push(novel);
- });
- return novels;
- }
- async fetchImage(url: string): Promise {
- return await fetchFile(url, {});
- }
+ return dayJSDate.format("LL");
+ };
}
diff --git a/scripts/multisrc/readwn/settings.json b/scripts/multisrc/readwn/settings.json
index 5057f55..ef4480f 100644
--- a/scripts/multisrc/readwn/settings.json
+++ b/scripts/multisrc/readwn/settings.json
@@ -76,10 +76,6 @@
"label": "Fantasy Romance",
"value": "fantasy-romance"
},
- {
- "label": "Game",
- "value": "game"
- },
{
"label": "Gender Bender",
"value": "gender-bender"
diff --git a/scripts/multisrc/readwn/sources.json b/scripts/multisrc/readwn/sources.json
index 0b46816..63a1ab3 100644
--- a/scripts/multisrc/readwn/sources.json
+++ b/scripts/multisrc/readwn/sources.json
@@ -23,6 +23,10 @@
"label": "Fan-Fiction",
"value": "fan-fiction"
},
+ {
+ "label": "Game",
+ "value": "game"
+ },
{
"label": "Hentai",
"value": "hentai"
@@ -198,6 +202,10 @@
"label": "Academy",
"value": "50"
},
+ {
+ "label": "Academystr",
+ "value": "6155"
+ },
{
"label": "Acane",
"value": "5993"
@@ -362,6 +370,10 @@
"label": "Adventurer",
"value": "4342"
},
+ {
+ "label": "Aesthetic",
+ "value": "6163"
+ },
{
"label": "Affair",
"value": "670"
@@ -554,6 +566,10 @@
"label": "Alien",
"value": "3111"
},
+ {
+ "label": "Alienbeast",
+ "value": "6186"
+ },
{
"label": "Aliens",
"value": "243"
@@ -1902,6 +1918,10 @@
"label": "bewitching",
"value": "2828"
},
+ {
+ "label": "Bgfellow",
+ "value": "6162"
+ },
{
"label": "BickeringC",
"value": "79"
@@ -3530,6 +3550,10 @@
"label": "chromatics",
"value": "5155"
},
+ {
+ "label": "Chronicles",
+ "value": "6169"
+ },
{
"label": "Chronology",
"value": "1451"
@@ -3586,6 +3610,10 @@
"label": "CitySky1",
"value": "4819"
},
+ {
+ "label": "Cityurban",
+ "value": "6159"
+ },
{
"label": "cityya",
"value": "2738"
@@ -3614,6 +3642,10 @@
"label": "CivilServa",
"value": "1491"
},
+ {
+ "label": "ciweimao",
+ "value": "6168"
+ },
{
"label": "ClanBuildi",
"value": "327"
@@ -4034,6 +4066,10 @@
"label": "Comprehens",
"value": "3119"
},
+ {
+ "label": "Comprehens",
+ "value": "6172"
+ },
{
"label": "Comprehens",
"value": "3071"
@@ -7346,6 +7382,10 @@
"label": "FightingCo",
"value": "2450"
},
+ {
+ "label": "Fightingfo",
+ "value": "6164"
+ },
{
"label": "Fightingpi",
"value": "5687"
@@ -7574,6 +7614,10 @@
"label": "flowerdust",
"value": "4400"
},
+ {
+ "label": "Flowerprot",
+ "value": "6171"
+ },
{
"label": "Flowersblo",
"value": "5952"
@@ -7818,6 +7862,10 @@
"label": "FoxSpirits",
"value": "256"
},
+ {
+ "label": "fqloo",
+ "value": "6183"
+ },
{
"label": "Fragmentof",
"value": "4696"
@@ -8042,6 +8090,10 @@
"label": "gamealienV",
"value": "2966"
},
+ {
+ "label": "Gamealienw",
+ "value": "6154"
+ },
{
"label": "gameelemen",
"value": "1627"
@@ -9586,6 +9638,10 @@
"label": "hornreverb",
"value": "4691"
},
+ {
+ "label": "Horor",
+ "value": "6160"
+ },
{
"label": "horror",
"value": "818"
@@ -10754,6 +10810,14 @@
"label": "Jiaqi",
"value": "4173"
},
+ {
+ "label": "JiDaoliu",
+ "value": "6170"
+ },
+ {
+ "label": "Jin",
+ "value": "6176"
+ },
{
"label": "JinglongTa",
"value": "2763"
@@ -13070,6 +13134,10 @@
"label": "Martialart",
"value": "130"
},
+ {
+ "label": "Martialart",
+ "value": "6181"
+ },
{
"label": "Martialart",
"value": "5710"
@@ -14734,6 +14802,10 @@
"label": "Noble",
"value": "1600"
},
+ {
+ "label": "nobledaugh",
+ "value": "6190"
+ },
{
"label": "Noblenessi",
"value": "4832"
@@ -14974,6 +15046,10 @@
"label": "NotYaoi",
"value": "1032"
},
+ {
+ "label": "Novel",
+ "value": "6184"
+ },
{
"label": "Nowadays",
"value": "2604"
@@ -15266,6 +15342,10 @@
"label": "Onlinegame",
"value": "3168"
},
+ {
+ "label": "Onlinegame",
+ "value": "6193"
+ },
{
"label": "OnlineGame",
"value": "762"
@@ -15542,6 +15622,10 @@
"label": "Overlord",
"value": "1184"
},
+ {
+ "label": "overpower",
+ "value": "6156"
+ },
{
"label": "Overpowerd",
"value": "821"
@@ -15606,6 +15690,10 @@
"label": "palace",
"value": "5048"
},
+ {
+ "label": "Palacefigh",
+ "value": "6174"
+ },
{
"label": "palacemaid",
"value": "3452"
@@ -16502,6 +16590,10 @@
"label": "Profession",
"value": "3201"
},
+ {
+ "label": "Profession",
+ "value": "6153"
+ },
{
"label": "Profession",
"value": "4202"
@@ -17046,6 +17138,10 @@
"label": "rakepig",
"value": "5398"
},
+ {
+ "label": "RanchFarmi",
+ "value": "6182"
+ },
{
"label": "randomstre",
"value": "5631"
@@ -17410,6 +17506,10 @@
"label": "rejoice",
"value": "3228"
},
+ {
+ "label": "rejoiceine",
+ "value": "6188"
+ },
{
"label": "Rejoiceint",
"value": "4446"
@@ -17526,6 +17626,10 @@
"label": "Reunion",
"value": "1487"
},
+ {
+ "label": "Reunionaft",
+ "value": "6191"
+ },
{
"label": "revenge",
"value": "1398"
@@ -18190,6 +18294,10 @@
"label": "sciencefic",
"value": "1046"
},
+ {
+ "label": "Sciencefic",
+ "value": "6161"
+ },
{
"label": "Scientist",
"value": "1523"
@@ -18342,6 +18450,10 @@
"label": "Sect",
"value": "3547"
},
+ {
+ "label": "Sectbuildi",
+ "value": "6158"
+ },
{
"label": "SectDevelo",
"value": "692"
@@ -19370,6 +19482,10 @@
"label": "Son-in-law",
"value": "1461"
},
+ {
+ "label": "Son-in-law",
+ "value": "6166"
+ },
{
"label": "Song",
"value": "5695"
@@ -20306,6 +20422,10 @@
"label": "supplier",
"value": "3602"
},
+ {
+ "label": "Supporting",
+ "value": "6189"
+ },
{
"label": "Supporting",
"value": "5682"
@@ -21578,6 +21698,10 @@
"label": "Time-Trave",
"value": "1940"
},
+ {
+ "label": "timeandspa",
+ "value": "6173"
+ },
{
"label": "TimeandSpa",
"value": "1499"
@@ -22434,6 +22558,14 @@
"label": "UrbanMilit",
"value": "2505"
},
+ {
+ "label": "Urbanroman",
+ "value": "6157"
+ },
+ {
+ "label": "UrbanRoman",
+ "value": "6187"
+ },
{
"label": "urbanshark",
"value": "2256"
@@ -22798,6 +22930,10 @@
"label": "Wasteland",
"value": "898"
},
+ {
+ "label": "wastestrea",
+ "value": "6185"
+ },
{
"label": "WasteWoodA",
"value": "2167"
@@ -24142,6 +24278,10 @@
"label": "ZhangLuo",
"value": "4703"
},
+ {
+ "label": "Zhangmenli",
+ "value": "6165"
+ },
{
"label": "ZhangShuan",
"value": "3669"
@@ -24326,6 +24466,10 @@
"label": "半弦",
"value": "3873"
},
+ {
+ "label": "双洁",
+ "value": "6178"
+ },
{
"label": "夜独",
"value": "6009"
@@ -24334,6 +24478,10 @@
"label": "天律",
"value": "6032"
},
+ {
+ "label": "女强",
+ "value": "6175"
+ },
{
"label": "女神",
"value": "3212"
@@ -24346,6 +24494,10 @@
"label": "婚姻",
"value": "5123"
},
+ {
+ "label": "嫡女",
+ "value": "6177"
+ },
{
"label": "宋朝",
"value": "3124"
@@ -24434,6 +24586,10 @@
"label": "空间",
"value": "3103"
},
+ {
+ "label": "群穿",
+ "value": "6192"
+ },
{
"label": "肆灵",
"value": "6123"
@@ -24446,6 +24602,10 @@
"label": "蝉眠",
"value": "5514"
},
+ {
+ "label": "西幻",
+ "value": "6167"
+ },
{
"label": "谢邀",
"value": "1904"
@@ -24454,10 +24614,18 @@
"label": "财女",
"value": "5989"
},
+ {
+ "label": "贵女",
+ "value": "6180"
+ },
{
"label": "越泽",
"value": "5963"
},
+ {
+ "label": "追妻",
+ "value": "6179"
+ },
{
"label": "酣歌",
"value": "2182"
@@ -24540,6 +24708,10 @@
"label": "Farming",
"value": "farming"
},
+ {
+ "label": "Game",
+ "value": "game"
+ },
{
"label": "Games",
"value": "games"
@@ -24815,6 +24987,10 @@
"label": "Adventurer",
"value": "1012"
},
+ {
+ "label": "Aesthetic",
+ "value": "3299"
+ },
{
"label": "Affair",
"value": "605"
@@ -25663,6 +25839,10 @@
"label": "bewitching",
"value": "2890"
},
+ {
+ "label": "Bgfellow",
+ "value": "3298"
+ },
{
"label": "BickeringC",
"value": "467"
@@ -26619,6 +26799,10 @@
"label": "CityGod",
"value": "2323"
},
+ {
+ "label": "Cityurban",
+ "value": "3293"
+ },
{
"label": "cityya",
"value": "2800"
@@ -26639,6 +26823,10 @@
"label": "CivilServa",
"value": "1527"
},
+ {
+ "label": "ciweimao",
+ "value": "3300"
+ },
{
"label": "ClanBuildi",
"value": "343"
@@ -29031,6 +29219,10 @@
"label": "FoxSpirits",
"value": "325"
},
+ {
+ "label": "fqloo",
+ "value": "3303"
+ },
{
"label": "France",
"value": "1533"
@@ -29995,6 +30187,10 @@
"label": "HonkaiImpa",
"value": "1425"
},
+ {
+ "label": "Horor",
+ "value": "3294"
+ },
{
"label": "horror",
"value": "825"
@@ -31619,6 +31815,10 @@
"label": "Martialart",
"value": "954"
},
+ {
+ "label": "Martialart",
+ "value": "3302"
+ },
{
"label": "MartialArt",
"value": "1508"
@@ -32631,6 +32831,10 @@
"label": "notscary",
"value": "2521"
},
+ {
+ "label": "Novel",
+ "value": "3305"
+ },
{
"label": "Nowadays",
"value": "2665"
@@ -32675,6 +32879,10 @@
"label": "Official",
"value": "3067"
},
+ {
+ "label": "Officialwo",
+ "value": "3304"
+ },
{
"label": "ohmygod",
"value": "2488"
@@ -32807,6 +33015,10 @@
"label": "Onlinegame",
"value": "3269"
},
+ {
+ "label": "Onlinegame",
+ "value": "3307"
+ },
{
"label": "OnlineGame",
"value": "776"
@@ -32979,6 +33191,10 @@
"label": "Overlord",
"value": "1231"
},
+ {
+ "label": "overpower",
+ "value": "3296"
+ },
{
"label": "overpowere",
"value": "1443"
@@ -33839,6 +34055,10 @@
"label": "raisedache",
"value": "2655"
},
+ {
+ "label": "RanchFarmi",
+ "value": "3301"
+ },
{
"label": "RankingLis",
"value": "1786"
@@ -34443,6 +34663,10 @@
"label": "Sciencefic",
"value": "1706"
},
+ {
+ "label": "Sciencefic",
+ "value": "3297"
+ },
{
"label": "Scientist",
"value": "1560"
@@ -34539,6 +34763,10 @@
"label": "Sect",
"value": "3018"
},
+ {
+ "label": "Sectbuildi",
+ "value": "3295"
+ },
{
"label": "SectDevelo",
"value": "507"
@@ -36855,6 +37083,10 @@
"label": "urbanroman",
"value": "3282"
},
+ {
+ "label": "UrbanRoman",
+ "value": "3306"
+ },
{
"label": "urbanshark",
"value": "2295"
@@ -37722,7 +37954,7 @@
}
},
{
- "id": "Ltnovel.com",
+ "id": "ltnovel",
"sourceSite": "https://www.ltnovel.com",
"sourceName": "Ltnovel",
"filters": {
@@ -37737,6 +37969,10 @@
"label": "Ecchi",
"value": "ecchi"
},
+ {
+ "label": "Game",
+ "value": "game"
+ },
{
"label": "Mature",
"value": "mature"
@@ -41665,5 +41901,19807 @@
"type": "Picker"
}
}
+ },
+ {
+ "id": "wuxiamtl",
+ "sourceSite": "https://www.wuxiamtl.com",
+ "sourceName": "WuxiaMTL",
+ "filters": {
+ "genres": {
+ "label": "Genre / Category",
+ "options": [
+ {
+ "label": "Ecchi",
+ "value": "ecchi"
+ },
+ {
+ "label": "Faloo",
+ "value": "faloo"
+ },
+ {
+ "label": "Fan-Fiction",
+ "value": "fan-fiction"
+ },
+ {
+ "label": "Korean",
+ "value": "korean"
+ },
+ {
+ "label": "Smut",
+ "value": "smut"
+ },
+ {
+ "label": "Urban",
+ "value": "urban"
+ },
+ {
+ "label": "Virtual Reality",
+ "value": "virtual-reality"
+ }
+ ],
+ "value": "",
+ "type": "Picker"
+ },
+ "tags": {
+ "label": "Tags",
+ "options": [
+ {
+ "label": "A.I",
+ "value": "2941"
+ },
+ {
+ "label": "Aaron&0",
+ "value": "1912"
+ },
+ {
+ "label": "Abandoned",
+ "value": "3037"
+ },
+ {
+ "label": "AbandonedC",
+ "value": "395"
+ },
+ {
+ "label": "AbandonedC",
+ "value": "1198"
+ },
+ {
+ "label": "Abandoning",
+ "value": "3174"
+ },
+ {
+ "label": "Abilities",
+ "value": "1279"
+ },
+ {
+ "label": "Ability",
+ "value": "819"
+ },
+ {
+ "label": "AbilitySte",
+ "value": "97"
+ },
+ {
+ "label": "ABO",
+ "value": "780"
+ },
+ {
+ "label": "ABO(AlphaB",
+ "value": "1531"
+ },
+ {
+ "label": "Abortion",
+ "value": "1284"
+ },
+ {
+ "label": "AbsentPare",
+ "value": "255"
+ },
+ {
+ "label": "absolutely",
+ "value": "2112"
+ },
+ {
+ "label": "Abuse",
+ "value": "1269"
+ },
+ {
+ "label": "AbusiveCha",
+ "value": "1"
+ },
+ {
+ "label": "AbusiveCha",
+ "value": "1475"
+ },
+ {
+ "label": "Abusivelov",
+ "value": "3009"
+ },
+ {
+ "label": "Abyss",
+ "value": "2878"
+ },
+ {
+ "label": "Academy",
+ "value": "8"
+ },
+ {
+ "label": "AcasualPaw",
+ "value": "1290"
+ },
+ {
+ "label": "Accelerate",
+ "value": "59"
+ },
+ {
+ "label": "AcceptingD",
+ "value": "1096"
+ },
+ {
+ "label": "ACGN",
+ "value": "1252"
+ },
+ {
+ "label": "Acting",
+ "value": "52"
+ },
+ {
+ "label": "Actingweak",
+ "value": "3141"
+ },
+ {
+ "label": "Action",
+ "value": "118"
+ },
+ {
+ "label": "Actor",
+ "value": "2990"
+ },
+ {
+ "label": "Actors",
+ "value": "893"
+ },
+ {
+ "label": "Actress",
+ "value": "1118"
+ },
+ {
+ "label": "AdaptedtoA",
+ "value": "367"
+ },
+ {
+ "label": "AdaptedtoD",
+ "value": "237"
+ },
+ {
+ "label": "AdaptedtoD",
+ "value": "510"
+ },
+ {
+ "label": "AdaptedtoG",
+ "value": "106"
+ },
+ {
+ "label": "AdaptedtoM",
+ "value": "164"
+ },
+ {
+ "label": "AdaptedtoM",
+ "value": "88"
+ },
+ {
+ "label": "AdaptedtoM",
+ "value": "471"
+ },
+ {
+ "label": "AdaptedtoM",
+ "value": "1437"
+ },
+ {
+ "label": "AdaptedtoV",
+ "value": "1042"
+ },
+ {
+ "label": "ADeadBody",
+ "value": "3014"
+ },
+ {
+ "label": "Adopted",
+ "value": "844"
+ },
+ {
+ "label": "AdoptedChi",
+ "value": "396"
+ },
+ {
+ "label": "AdoptedPro",
+ "value": "431"
+ },
+ {
+ "label": "Adoption",
+ "value": "1285"
+ },
+ {
+ "label": "Adrogynous",
+ "value": "923"
+ },
+ {
+ "label": "Adult",
+ "value": "1012"
+ },
+ {
+ "label": "Adultery",
+ "value": "292"
+ },
+ {
+ "label": "AdvancedKn",
+ "value": "1164"
+ },
+ {
+ "label": "Advancedte",
+ "value": "3152"
+ },
+ {
+ "label": "adventerer",
+ "value": "2811"
+ },
+ {
+ "label": "Adventur",
+ "value": "3163"
+ },
+ {
+ "label": "Adventure",
+ "value": "933"
+ },
+ {
+ "label": "Adventurer",
+ "value": "165"
+ },
+ {
+ "label": "Adventurer",
+ "value": "2913"
+ },
+ {
+ "label": "Aesthetic",
+ "value": "3232"
+ },
+ {
+ "label": "Affair",
+ "value": "579"
+ },
+ {
+ "label": "AfricanEmi",
+ "value": "1740"
+ },
+ {
+ "label": "Aftertheso",
+ "value": "1668"
+ },
+ {
+ "label": "Age-gap",
+ "value": "1794"
+ },
+ {
+ "label": "AgeDiffere",
+ "value": "1580"
+ },
+ {
+ "label": "AgeGap",
+ "value": "1246"
+ },
+ {
+ "label": "Agent",
+ "value": "3035"
+ },
+ {
+ "label": "AgeofGods",
+ "value": "1748"
+ },
+ {
+ "label": "AgeProgres",
+ "value": "333"
+ },
+ {
+ "label": "AgeRegress",
+ "value": "457"
+ },
+ {
+ "label": "AggresiveC",
+ "value": "809"
+ },
+ {
+ "label": "Aggressive",
+ "value": "416"
+ },
+ {
+ "label": "Aggressive",
+ "value": "1053"
+ },
+ {
+ "label": "agrass",
+ "value": "1743"
+ },
+ {
+ "label": "ahveryfish",
+ "value": "1732"
+ },
+ {
+ "label": "AI",
+ "value": "628"
+ },
+ {
+ "label": "AI-chip",
+ "value": "902"
+ },
+ {
+ "label": "Alchemist",
+ "value": "1278"
+ },
+ {
+ "label": "Alchemy",
+ "value": "16"
+ },
+ {
+ "label": "AlienInvas",
+ "value": "1526"
+ },
+ {
+ "label": "Aliens",
+ "value": "40"
+ },
+ {
+ "label": "Aliverday",
+ "value": "2533"
+ },
+ {
+ "label": "allenzhang",
+ "value": "1867"
+ },
+ {
+ "label": "AllHeavens",
+ "value": "2204"
+ },
+ {
+ "label": "Alljobs",
+ "value": "3143"
+ },
+ {
+ "label": "AlmightyCo",
+ "value": "2661"
+ },
+ {
+ "label": "Almightypl",
+ "value": "2663"
+ },
+ {
+ "label": "Alone",
+ "value": "2489"
+ },
+ {
+ "label": "alpha",
+ "value": "2910"
+ },
+ {
+ "label": "AlterateHi",
+ "value": "2761"
+ },
+ {
+ "label": "AlternateH",
+ "value": "784"
+ },
+ {
+ "label": "AlternateW",
+ "value": "274"
+ },
+ {
+ "label": "Alternativ",
+ "value": "2857"
+ },
+ {
+ "label": "Amagicpill",
+ "value": "2298"
+ },
+ {
+ "label": "America",
+ "value": "2846"
+ },
+ {
+ "label": "AmericanCo",
+ "value": "2757"
+ },
+ {
+ "label": "Americas",
+ "value": "2762"
+ },
+ {
+ "label": "Amnesia",
+ "value": "144"
+ },
+ {
+ "label": "AmusementP",
+ "value": "1408"
+ },
+ {
+ "label": "Anal",
+ "value": "60"
+ },
+ {
+ "label": "Anautumnra",
+ "value": "2451"
+ },
+ {
+ "label": "Ancient",
+ "value": "1142"
+ },
+ {
+ "label": "AncientBus",
+ "value": "785"
+ },
+ {
+ "label": "AncientChi",
+ "value": "145"
+ },
+ {
+ "label": "AncientChi",
+ "value": "322"
+ },
+ {
+ "label": "AncientChi",
+ "value": "2751"
+ },
+ {
+ "label": "AncientRea",
+ "value": "1055"
+ },
+ {
+ "label": "ancientset",
+ "value": "1032"
+ },
+ {
+ "label": "ancienttim",
+ "value": "1586"
+ },
+ {
+ "label": "AncientTim",
+ "value": "146"
+ },
+ {
+ "label": "AncientWea",
+ "value": "1338"
+ },
+ {
+ "label": "Androgynou",
+ "value": "895"
+ },
+ {
+ "label": "Androgynou",
+ "value": "3115"
+ },
+ {
+ "label": "Androids",
+ "value": "598"
+ },
+ {
+ "label": "Angel",
+ "value": "1190"
+ },
+ {
+ "label": "Angels",
+ "value": "353"
+ },
+ {
+ "label": "angryhouse",
+ "value": "2196"
+ },
+ {
+ "label": "AnimalChar",
+ "value": "334"
+ },
+ {
+ "label": "AnimalRear",
+ "value": "493"
+ },
+ {
+ "label": "animals",
+ "value": "1282"
+ },
+ {
+ "label": "Animation",
+ "value": "2890"
+ },
+ {
+ "label": "AnimationD",
+ "value": "2891"
+ },
+ {
+ "label": "Animator",
+ "value": "1305"
+ },
+ {
+ "label": "Anime",
+ "value": "1060"
+ },
+ {
+ "label": "animenewco",
+ "value": "2065"
+ },
+ {
+ "label": "Anl",
+ "value": "293"
+ },
+ {
+ "label": "AnlanInvin",
+ "value": "2721"
+ },
+ {
+ "label": "anoldman",
+ "value": "2126"
+ },
+ {
+ "label": "AnotherWor",
+ "value": "921"
+ },
+ {
+ "label": "AnotherWor",
+ "value": "1149"
+ },
+ {
+ "label": "Antagonist",
+ "value": "3042"
+ },
+ {
+ "label": "Anti-HeroL",
+ "value": "621"
+ },
+ {
+ "label": "Anti-heroP",
+ "value": "1509"
+ },
+ {
+ "label": "Anti-Magic",
+ "value": "499"
+ },
+ {
+ "label": "Anti-MC",
+ "value": "2775"
+ },
+ {
+ "label": "Anti-socia",
+ "value": "532"
+ },
+ {
+ "label": "antihero",
+ "value": "1399"
+ },
+ {
+ "label": "AntiheroPr",
+ "value": "323"
+ },
+ {
+ "label": "AntiqueSho",
+ "value": "1386"
+ },
+ {
+ "label": "ApartmentL",
+ "value": "994"
+ },
+ {
+ "label": "ApatheticP",
+ "value": "393"
+ },
+ {
+ "label": "Apocalypse",
+ "value": "201"
+ },
+ {
+ "label": "Apocalypse",
+ "value": "1612"
+ },
+ {
+ "label": "Apocalypti",
+ "value": "1065"
+ },
+ {
+ "label": "Appearance",
+ "value": "61"
+ },
+ {
+ "label": "Appearance",
+ "value": "275"
+ },
+ {
+ "label": "Apple",
+ "value": "1818"
+ },
+ {
+ "label": "Appraisal",
+ "value": "898"
+ },
+ {
+ "label": "Apprentice",
+ "value": "977"
+ },
+ {
+ "label": "arayofsuns",
+ "value": "1979"
+ },
+ {
+ "label": "Archer",
+ "value": "2474"
+ },
+ {
+ "label": "Archery",
+ "value": "215"
+ },
+ {
+ "label": "Aristocrac",
+ "value": "387"
+ },
+ {
+ "label": "Aristocrat",
+ "value": "724"
+ },
+ {
+ "label": "Aristrocac",
+ "value": "1201"
+ },
+ {
+ "label": "Arknights",
+ "value": "1135"
+ },
+ {
+ "label": "armoredcit",
+ "value": "2830"
+ },
+ {
+ "label": "ArmsDealer",
+ "value": "398"
+ },
+ {
+ "label": "ArmsDealer",
+ "value": "2766"
+ },
+ {
+ "label": "ArmsTrade",
+ "value": "1000"
+ },
+ {
+ "label": "Army",
+ "value": "41"
+ },
+ {
+ "label": "Army-build",
+ "value": "970"
+ },
+ {
+ "label": "ArmyBuildi",
+ "value": "107"
+ },
+ {
+ "label": "ArrangedMa",
+ "value": "163"
+ },
+ {
+ "label": "ArrogantCh",
+ "value": "62"
+ },
+ {
+ "label": "Artifact",
+ "value": "1506"
+ },
+ {
+ "label": "ArtifactCr",
+ "value": "147"
+ },
+ {
+ "label": "Artifacts",
+ "value": "89"
+ },
+ {
+ "label": "ArtifactsB",
+ "value": "148"
+ },
+ {
+ "label": "ArtifactsC",
+ "value": "63"
+ },
+ {
+ "label": "artificer",
+ "value": "1373"
+ },
+ {
+ "label": "Artificial",
+ "value": "206"
+ },
+ {
+ "label": "Artificial",
+ "value": "2777"
+ },
+ {
+ "label": "Artis",
+ "value": "1500"
+ },
+ {
+ "label": "Artist",
+ "value": "1468"
+ },
+ {
+ "label": "Artists",
+ "value": "494"
+ },
+ {
+ "label": "Ashknightw",
+ "value": "3043"
+ },
+ {
+ "label": "askTaichi",
+ "value": "2181"
+ },
+ {
+ "label": "assasin",
+ "value": "1387"
+ },
+ {
+ "label": "Assasins",
+ "value": "1525"
+ },
+ {
+ "label": "Assassin",
+ "value": "1161"
+ },
+ {
+ "label": "Assassins",
+ "value": "149"
+ },
+ {
+ "label": "Astrologer",
+ "value": "880"
+ },
+ {
+ "label": "atravellin",
+ "value": "1684"
+ },
+ {
+ "label": "Auspicious",
+ "value": "2146"
+ },
+ {
+ "label": "Authoroffa",
+ "value": "1870"
+ },
+ {
+ "label": "Autism",
+ "value": "841"
+ },
+ {
+ "label": "AutomaticU",
+ "value": "1243"
+ },
+ {
+ "label": "AutomaticU",
+ "value": "655"
+ },
+ {
+ "label": "Automatons",
+ "value": "1419"
+ },
+ {
+ "label": "autumnautu",
+ "value": "1685"
+ },
+ {
+ "label": "Avatar",
+ "value": "2912"
+ },
+ {
+ "label": "Average-lo",
+ "value": "378"
+ },
+ {
+ "label": "AverageLoo",
+ "value": "1001"
+ },
+ {
+ "label": "avigorous",
+ "value": "2341"
+ },
+ {
+ "label": "Award-winn",
+ "value": "2778"
+ },
+ {
+ "label": "AwkwardPro",
+ "value": "568"
+ },
+ {
+ "label": "Ayanokoji",
+ "value": "1914"
+ },
+ {
+ "label": "AZanpakut",
+ "value": "2512"
+ },
+ {
+ "label": "Azeroth",
+ "value": "1303"
+ },
+ {
+ "label": "AzurLane",
+ "value": "1594"
+ },
+ {
+ "label": "Babies",
+ "value": "750"
+ },
+ {
+ "label": "Baby",
+ "value": "3045"
+ },
+ {
+ "label": "backstabbi",
+ "value": "3139"
+ },
+ {
+ "label": "Badassprot",
+ "value": "1283"
+ },
+ {
+ "label": "Badboy",
+ "value": "2999"
+ },
+ {
+ "label": "BaiXiaowei",
+ "value": "2698"
+ },
+ {
+ "label": "baldman",
+ "value": "2248"
+ },
+ {
+ "label": "baldnessat",
+ "value": "2173"
+ },
+ {
+ "label": "balduncle",
+ "value": "2710"
+ },
+ {
+ "label": "Band",
+ "value": "1529"
+ },
+ {
+ "label": "Bandit",
+ "value": "2796"
+ },
+ {
+ "label": "Banking",
+ "value": "1538"
+ },
+ {
+ "label": "BarrenEmpe",
+ "value": "2117"
+ },
+ {
+ "label": "Baseball",
+ "value": "460"
+ },
+ {
+ "label": "BasedonaMo",
+ "value": "382"
+ },
+ {
+ "label": "BasedonaTV",
+ "value": "593"
+ },
+ {
+ "label": "Basket",
+ "value": "1209"
+ },
+ {
+ "label": "Basketball",
+ "value": "243"
+ },
+ {
+ "label": "BattleAcad",
+ "value": "226"
+ },
+ {
+ "label": "BattleComp",
+ "value": "189"
+ },
+ {
+ "label": "BattleThro",
+ "value": "685"
+ },
+ {
+ "label": "BDSM",
+ "value": "1082"
+ },
+ {
+ "label": "beaming",
+ "value": "2384"
+ },
+ {
+ "label": "Beansandgr",
+ "value": "2667"
+ },
+ {
+ "label": "Bearcat",
+ "value": "1999"
+ },
+ {
+ "label": "BearChild",
+ "value": "2821"
+ },
+ {
+ "label": "Bearchildl",
+ "value": "2085"
+ },
+ {
+ "label": "bearcocoa",
+ "value": "2529"
+ },
+ {
+ "label": "Beast",
+ "value": "788"
+ },
+ {
+ "label": "Beastamer",
+ "value": "3052"
+ },
+ {
+ "label": "BeastCompa",
+ "value": "35"
+ },
+ {
+ "label": "BeastCompa",
+ "value": "1139"
+ },
+ {
+ "label": "Beastkin",
+ "value": "476"
+ },
+ {
+ "label": "beastman",
+ "value": "1301"
+ },
+ {
+ "label": "Beastmen",
+ "value": "968"
+ },
+ {
+ "label": "beastprota",
+ "value": "2165"
+ },
+ {
+ "label": "Beasts",
+ "value": "64"
+ },
+ {
+ "label": "BeastTamer",
+ "value": "660"
+ },
+ {
+ "label": "Beasttamin",
+ "value": "2983"
+ },
+ {
+ "label": "Beatthefem",
+ "value": "2994"
+ },
+ {
+ "label": "Beatthemal",
+ "value": "2993"
+ },
+ {
+ "label": "beatyourse",
+ "value": "2061"
+ },
+ {
+ "label": "Beauties",
+ "value": "3119"
+ },
+ {
+ "label": "beautifula",
+ "value": "2568"
+ },
+ {
+ "label": "Beautifulc",
+ "value": "3066"
+ },
+ {
+ "label": "beautifulf",
+ "value": "1361"
+ },
+ {
+ "label": "Beautifulf",
+ "value": "1021"
+ },
+ {
+ "label": "BeautifulF",
+ "value": "50"
+ },
+ {
+ "label": "BeautifulF",
+ "value": "1363"
+ },
+ {
+ "label": "beautifulh",
+ "value": "65"
+ },
+ {
+ "label": "BeautifulH",
+ "value": "3153"
+ },
+ {
+ "label": "Beautifull",
+ "value": "1104"
+ },
+ {
+ "label": "BeautifulP",
+ "value": "871"
+ },
+ {
+ "label": "Beauty",
+ "value": "3021"
+ },
+ {
+ "label": "becausesoh",
+ "value": "2524"
+ },
+ {
+ "label": "Becomefamo",
+ "value": "1773"
+ },
+ {
+ "label": "BecomeLove",
+ "value": "3129"
+ },
+ {
+ "label": "beggingfor",
+ "value": "2584"
+ },
+ {
+ "label": "BehindtheS",
+ "value": "1247"
+ },
+ {
+ "label": "BehindtheS",
+ "value": "1093"
+ },
+ {
+ "label": "Belltouche",
+ "value": "2257"
+ },
+ {
+ "label": "belovedbab",
+ "value": "1843"
+ },
+ {
+ "label": "Bestiality",
+ "value": "920"
+ },
+ {
+ "label": "Betrayal",
+ "value": "150"
+ },
+ {
+ "label": "Betrayed",
+ "value": "3147"
+ },
+ {
+ "label": "bewitching",
+ "value": "2709"
+ },
+ {
+ "label": "Bgfellow",
+ "value": "3231"
+ },
+ {
+ "label": "BickeringC",
+ "value": "53"
+ },
+ {
+ "label": "bickeringl",
+ "value": "2954"
+ },
+ {
+ "label": "BigBroHasD",
+ "value": "612"
+ },
+ {
+ "label": "bigcitysma",
+ "value": "2220"
+ },
+ {
+ "label": "Bigcockcut",
+ "value": "2471"
+ },
+ {
+ "label": "Bigdog",
+ "value": "1895"
+ },
+ {
+ "label": "bighippo",
+ "value": "2567"
+ },
+ {
+ "label": "bigorangew",
+ "value": "2168"
+ },
+ {
+ "label": "bigpicture",
+ "value": "1648"
+ },
+ {
+ "label": "Bigplayers",
+ "value": "1733"
+ },
+ {
+ "label": "Bigshot",
+ "value": "3151"
+ },
+ {
+ "label": "BigSkeleto",
+ "value": "2091"
+ },
+ {
+ "label": "bigtent",
+ "value": "2483"
+ },
+ {
+ "label": "bigwhitewh",
+ "value": "1762"
+ },
+ {
+ "label": "Billionair",
+ "value": "1022"
+ },
+ {
+ "label": "billionpeo",
+ "value": "2444"
+ },
+ {
+ "label": "BingtangHu",
+ "value": "1992"
+ },
+ {
+ "label": "Biochip",
+ "value": "388"
+ },
+ {
+ "label": "Biomass",
+ "value": "1307"
+ },
+ {
+ "label": "Biotechnol",
+ "value": "1549"
+ },
+ {
+ "label": "Biscuits",
+ "value": "1690"
+ },
+ {
+ "label": "BisexualPr",
+ "value": "1326"
+ },
+ {
+ "label": "bitefire",
+ "value": "2070"
+ },
+ {
+ "label": "BL",
+ "value": "1501"
+ },
+ {
+ "label": "Black-bell",
+ "value": "815"
+ },
+ {
+ "label": "Black-bell",
+ "value": "1573"
+ },
+ {
+ "label": "blackandim",
+ "value": "2077"
+ },
+ {
+ "label": "blackandwh",
+ "value": "1722"
+ },
+ {
+ "label": "blackandwh",
+ "value": "2677"
+ },
+ {
+ "label": "Blackbelli",
+ "value": "1156"
+ },
+ {
+ "label": "BlackBelly",
+ "value": "151"
+ },
+ {
+ "label": "BlackBelly",
+ "value": "1590"
+ },
+ {
+ "label": "blackcatis",
+ "value": "2589"
+ },
+ {
+ "label": "BlackDrago",
+ "value": "2601"
+ },
+ {
+ "label": "Blackening",
+ "value": "2926"
+ },
+ {
+ "label": "blackice",
+ "value": "2808"
+ },
+ {
+ "label": "Blacklight",
+ "value": "1308"
+ },
+ {
+ "label": "Blackmail",
+ "value": "294"
+ },
+ {
+ "label": "Blacksmith",
+ "value": "368"
+ },
+ {
+ "label": "blacksoil",
+ "value": "1998"
+ },
+ {
+ "label": "BlackTechn",
+ "value": "1515"
+ },
+ {
+ "label": "Bleach",
+ "value": "659"
+ },
+ {
+ "label": "Blind",
+ "value": "734"
+ },
+ {
+ "label": "BlindDates",
+ "value": "1249"
+ },
+ {
+ "label": "BlindProta",
+ "value": "575"
+ },
+ {
+ "label": "Bloodborne",
+ "value": "1136"
+ },
+ {
+ "label": "blooddemon",
+ "value": "1951"
+ },
+ {
+ "label": "Bloodline",
+ "value": "913"
+ },
+ {
+ "label": "Bloodlines",
+ "value": "17"
+ },
+ {
+ "label": "BloodManip",
+ "value": "306"
+ },
+ {
+ "label": "BloodMoonG",
+ "value": "2089"
+ },
+ {
+ "label": "BloodofAni",
+ "value": "1671"
+ },
+ {
+ "label": "Bloodpumpi",
+ "value": "2985"
+ },
+ {
+ "label": "bloomingon",
+ "value": "1802"
+ },
+ {
+ "label": "blueshirts",
+ "value": "2047"
+ },
+ {
+ "label": "bluesilk",
+ "value": "2712"
+ },
+ {
+ "label": "bluesilksu",
+ "value": "2559"
+ },
+ {
+ "label": "bluestone",
+ "value": "2063"
+ },
+ {
+ "label": "Bodhicitta",
+ "value": "2382"
+ },
+ {
+ "label": "Bodyguards",
+ "value": "261"
+ },
+ {
+ "label": "BodySwap",
+ "value": "54"
+ },
+ {
+ "label": "BodyTemper",
+ "value": "90"
+ },
+ {
+ "label": "Boiled",
+ "value": "2674"
+ },
+ {
+ "label": "BookDustSp",
+ "value": "2267"
+ },
+ {
+ "label": "Books",
+ "value": "488"
+ },
+ {
+ "label": "bookslikeu",
+ "value": "489"
+ },
+ {
+ "label": "BookstoreS",
+ "value": "1994"
+ },
+ {
+ "label": "BookTransm",
+ "value": "1575"
+ },
+ {
+ "label": "BookWearer",
+ "value": "861"
+ },
+ {
+ "label": "Bookworm",
+ "value": "450"
+ },
+ {
+ "label": "Boss",
+ "value": "2768"
+ },
+ {
+ "label": "Boss-Subor",
+ "value": "34"
+ },
+ {
+ "label": "Boundlessf",
+ "value": "1841"
+ },
+ {
+ "label": "BoXiaowen",
+ "value": "2252"
+ },
+ {
+ "label": "Boxing",
+ "value": "1446"
+ },
+ {
+ "label": "boycold",
+ "value": "2499"
+ },
+ {
+ "label": "BoyxBoy",
+ "value": "2885"
+ },
+ {
+ "label": "Brainwashi",
+ "value": "421"
+ },
+ {
+ "label": "BraisedPai",
+ "value": "1991"
+ },
+ {
+ "label": "Breakingth",
+ "value": "2441"
+ },
+ {
+ "label": "breaktheke",
+ "value": "2123"
+ },
+ {
+ "label": "Breakup",
+ "value": "931"
+ },
+ {
+ "label": "Breeze",
+ "value": "1958"
+ },
+ {
+ "label": "breezesilv",
+ "value": "1892"
+ },
+ {
+ "label": "Brightmoon",
+ "value": "1926"
+ },
+ {
+ "label": "Bringaknif",
+ "value": "2515"
+ },
+ {
+ "label": "BritishEmp",
+ "value": "1070"
+ },
+ {
+ "label": "broalwaysg",
+ "value": "2353"
+ },
+ {
+ "label": "BrokenEnga",
+ "value": "152"
+ },
+ {
+ "label": "BrortherCo",
+ "value": "1523"
+ },
+ {
+ "label": "BrotherChe",
+ "value": "2035"
+ },
+ {
+ "label": "BrotherCom",
+ "value": "302"
+ },
+ {
+ "label": "Brotherhoo",
+ "value": "369"
+ },
+ {
+ "label": "BrotherInL",
+ "value": "2920"
+ },
+ {
+ "label": "BrotherZhu",
+ "value": "2092"
+ },
+ {
+ "label": "Brownsugar",
+ "value": "1717"
+ },
+ {
+ "label": "BTTH",
+ "value": "833"
+ },
+ {
+ "label": "BuddhaofNi",
+ "value": "2807"
+ },
+ {
+ "label": "Buddhism",
+ "value": "259"
+ },
+ {
+ "label": "building",
+ "value": "3216"
+ },
+ {
+ "label": "buildingki",
+ "value": "1388"
+ },
+ {
+ "label": "BuildKingd",
+ "value": "1134"
+ },
+ {
+ "label": "Buildthewo",
+ "value": "2452"
+ },
+ {
+ "label": "Bulldozer",
+ "value": "1218"
+ },
+ {
+ "label": "Bully",
+ "value": "620"
+ },
+ {
+ "label": "Bullying",
+ "value": "549"
+ },
+ {
+ "label": "BuLofan",
+ "value": "1916"
+ },
+ {
+ "label": "BungouStra",
+ "value": "1400"
+ },
+ {
+ "label": "BunguoStra",
+ "value": "985"
+ },
+ {
+ "label": "Burningmou",
+ "value": "2581"
+ },
+ {
+ "label": "burnout",
+ "value": "2574"
+ },
+ {
+ "label": "Business",
+ "value": "625"
+ },
+ {
+ "label": "BusinessDe",
+ "value": "1587"
+ },
+ {
+ "label": "BusinessEm",
+ "value": "1469"
+ },
+ {
+ "label": "Businessma",
+ "value": "850"
+ },
+ {
+ "label": "BusinessMa",
+ "value": "66"
+ },
+ {
+ "label": "Businessme",
+ "value": "238"
+ },
+ {
+ "label": "businessor",
+ "value": "1577"
+ },
+ {
+ "label": "BusinessRi",
+ "value": "1664"
+ },
+ {
+ "label": "Businesswo",
+ "value": "3022"
+ },
+ {
+ "label": "Bussinesma",
+ "value": "1102"
+ },
+ {
+ "label": "Bussiness",
+ "value": "1015"
+ },
+ {
+ "label": "Butlers",
+ "value": "597"
+ },
+ {
+ "label": "ButterflyD",
+ "value": "1830"
+ },
+ {
+ "label": "Caicolorsh",
+ "value": "2516"
+ },
+ {
+ "label": "callthebea",
+ "value": "2278"
+ },
+ {
+ "label": "Calm",
+ "value": "2822"
+ },
+ {
+ "label": "Calmdown",
+ "value": "2931"
+ },
+ {
+ "label": "CalmMalePr",
+ "value": "1488"
+ },
+ {
+ "label": "CalmProtag",
+ "value": "18"
+ },
+ {
+ "label": "camera",
+ "value": "1856"
+ },
+ {
+ "label": "Campus",
+ "value": "1271"
+ },
+ {
+ "label": "CampusLife",
+ "value": "816"
+ },
+ {
+ "label": "CampusLove",
+ "value": "375"
+ },
+ {
+ "label": "CampusRoma",
+ "value": "2738"
+ },
+ {
+ "label": "Can&039",
+ "value": "2268"
+ },
+ {
+ "label": "Can&039",
+ "value": "2506"
+ },
+ {
+ "label": "Cancat",
+ "value": "2147"
+ },
+ {
+ "label": "canfly",
+ "value": "1864"
+ },
+ {
+ "label": "CangxueFei",
+ "value": "2786"
+ },
+ {
+ "label": "Cannibalis",
+ "value": "472"
+ },
+ {
+ "label": "Canolaflow",
+ "value": "1828"
+ },
+ {
+ "label": "Cantaloupe",
+ "value": "2662"
+ },
+ {
+ "label": "Canteendry",
+ "value": "2082"
+ },
+ {
+ "label": "Capitalism",
+ "value": "1071"
+ },
+ {
+ "label": "Capitalist",
+ "value": "1516"
+ },
+ {
+ "label": "CarambolaJ",
+ "value": "2582"
+ },
+ {
+ "label": "Card",
+ "value": "981"
+ },
+ {
+ "label": "CardGames",
+ "value": "782"
+ },
+ {
+ "label": "Cards",
+ "value": "350"
+ },
+ {
+ "label": "CareerOrie",
+ "value": "1595"
+ },
+ {
+ "label": "CarefreePr",
+ "value": "295"
+ },
+ {
+ "label": "CaringMale",
+ "value": "1152"
+ },
+ {
+ "label": "CaringProt",
+ "value": "435"
+ },
+ {
+ "label": "carpenter",
+ "value": "3221"
+ },
+ {
+ "label": "cartoonwil",
+ "value": "2023"
+ },
+ {
+ "label": "Casinos",
+ "value": "1539"
+ },
+ {
+ "label": "Castlecult",
+ "value": "3125"
+ },
+ {
+ "label": "CatchaGhos",
+ "value": "3016"
+ },
+ {
+ "label": "Catchtheca",
+ "value": "1996"
+ },
+ {
+ "label": "catdaylist",
+ "value": "1756"
+ },
+ {
+ "label": "cateatingp",
+ "value": "2669"
+ },
+ {
+ "label": "catgod",
+ "value": "2318"
+ },
+ {
+ "label": "catisrisin",
+ "value": "2446"
+ },
+ {
+ "label": "catloveson",
+ "value": "2415"
+ },
+ {
+ "label": "catpowerfi",
+ "value": "2505"
+ },
+ {
+ "label": "Catswithfi",
+ "value": "2130"
+ },
+ {
+ "label": "catthatwan",
+ "value": "1876"
+ },
+ {
+ "label": "catthousan",
+ "value": "2183"
+ },
+ {
+ "label": "CautiousMc",
+ "value": "904"
+ },
+ {
+ "label": "CautiousPr",
+ "value": "108"
+ },
+ {
+ "label": "caviar",
+ "value": "1982"
+ },
+ {
+ "label": "Celebritie",
+ "value": "55"
+ },
+ {
+ "label": "Celebrity",
+ "value": "979"
+ },
+ {
+ "label": "CelestialC",
+ "value": "1986"
+ },
+ {
+ "label": "Celestials",
+ "value": "1294"
+ },
+ {
+ "label": "Ceo",
+ "value": "2976"
+ },
+ {
+ "label": "ChainsawMa",
+ "value": "2747"
+ },
+ {
+ "label": "championge",
+ "value": "2228"
+ },
+ {
+ "label": "Champions",
+ "value": "3130"
+ },
+ {
+ "label": "ChanelNo.1",
+ "value": "1849"
+ },
+ {
+ "label": "Changeever",
+ "value": "2087"
+ },
+ {
+ "label": "Chaos",
+ "value": "957"
+ },
+ {
+ "label": "chaoticwor",
+ "value": "1730"
+ },
+ {
+ "label": "CharacterD",
+ "value": "119"
+ },
+ {
+ "label": "CharacterG",
+ "value": "67"
+ },
+ {
+ "label": "Charismati",
+ "value": "363"
+ },
+ {
+ "label": "CharmingPr",
+ "value": "347"
+ },
+ {
+ "label": "chasingthe",
+ "value": "2656"
+ },
+ {
+ "label": "chat",
+ "value": "1377"
+ },
+ {
+ "label": "chat-room",
+ "value": "798"
+ },
+ {
+ "label": "ChatGroup",
+ "value": "673"
+ },
+ {
+ "label": "ChatRooms",
+ "value": "267"
+ },
+ {
+ "label": "Cheat",
+ "value": "705"
+ },
+ {
+ "label": "Cheats",
+ "value": "36"
+ },
+ {
+ "label": "Chef",
+ "value": "1480"
+ },
+ {
+ "label": "chef&03",
+ "value": "1943"
+ },
+ {
+ "label": "Chefs",
+ "value": "314"
+ },
+ {
+ "label": "ChefSurviv",
+ "value": "2031"
+ },
+ {
+ "label": "ChenChangf",
+ "value": "2199"
+ },
+ {
+ "label": "ChenHegao",
+ "value": "1309"
+ },
+ {
+ "label": "ChenTwelve",
+ "value": "1980"
+ },
+ {
+ "label": "CherryBlos",
+ "value": "1811"
+ },
+ {
+ "label": "ChiDongdon",
+ "value": "1813"
+ },
+ {
+ "label": "child",
+ "value": "2883"
+ },
+ {
+ "label": "ChildAbuse",
+ "value": "470"
+ },
+ {
+ "label": "Childbirth",
+ "value": "949"
+ },
+ {
+ "label": "Childcare",
+ "value": "44"
+ },
+ {
+ "label": "ChildhoodE",
+ "value": "1229"
+ },
+ {
+ "label": "Childhoodf",
+ "value": "2805"
+ },
+ {
+ "label": "ChildhoodF",
+ "value": "370"
+ },
+ {
+ "label": "ChildhoodL",
+ "value": "430"
+ },
+ {
+ "label": "ChildhoodP",
+ "value": "475"
+ },
+ {
+ "label": "ChildhoodS",
+ "value": "376"
+ },
+ {
+ "label": "ChildhoodS",
+ "value": "863"
+ },
+ {
+ "label": "ChildishPr",
+ "value": "418"
+ },
+ {
+ "label": "ChildProta",
+ "value": "268"
+ },
+ {
+ "label": "ChinaNamba",
+ "value": "1306"
+ },
+ {
+ "label": "ChinaRefor",
+ "value": "950"
+ },
+ {
+ "label": "Chinese",
+ "value": "1342"
+ },
+ {
+ "label": "ChineseAnc",
+ "value": "1280"
+ },
+ {
+ "label": "Chinesenov",
+ "value": "2886"
+ },
+ {
+ "label": "ChinesePre",
+ "value": "639"
+ },
+ {
+ "label": "Chirika",
+ "value": "1696"
+ },
+ {
+ "label": "ChocolateI",
+ "value": "1777"
+ },
+ {
+ "label": "ChoiceSele",
+ "value": "647"
+ },
+ {
+ "label": "Chosen12",
+ "value": "2410"
+ },
+ {
+ "label": "Chronology",
+ "value": "1014"
+ },
+ {
+ "label": "ChuningMC",
+ "value": "1002"
+ },
+ {
+ "label": "Church",
+ "value": "954"
+ },
+ {
+ "label": "Chuunibyou",
+ "value": "522"
+ },
+ {
+ "label": "Cicadasand",
+ "value": "2195"
+ },
+ {
+ "label": "City",
+ "value": "3083"
+ },
+ {
+ "label": "CityGod",
+ "value": "2138"
+ },
+ {
+ "label": "Cityurban",
+ "value": "3225"
+ },
+ {
+ "label": "cityya",
+ "value": "2607"
+ },
+ {
+ "label": "civetcatat",
+ "value": "2437"
+ },
+ {
+ "label": "Civilizati",
+ "value": "1215"
+ },
+ {
+ "label": "Civilizati",
+ "value": "1550"
+ },
+ {
+ "label": "CivilServa",
+ "value": "1072"
+ },
+ {
+ "label": "ciweimao",
+ "value": "3233"
+ },
+ {
+ "label": "ClanBuildi",
+ "value": "19"
+ },
+ {
+ "label": "ClanSectDe",
+ "value": "662"
+ },
+ {
+ "label": "ClassroomO",
+ "value": "3213"
+ },
+ {
+ "label": "CleverProt",
+ "value": "9"
+ },
+ {
+ "label": "CleverProt",
+ "value": "523"
+ },
+ {
+ "label": "ClingyLove",
+ "value": "277"
+ },
+ {
+ "label": "Clones",
+ "value": "448"
+ },
+ {
+ "label": "cloudmadeo",
+ "value": "2654"
+ },
+ {
+ "label": "Cloudseest",
+ "value": "1904"
+ },
+ {
+ "label": "CloudSummi",
+ "value": "1850"
+ },
+ {
+ "label": "Cloudtopfi",
+ "value": "1944"
+ },
+ {
+ "label": "Cloudtop丨",
+ "value": "2062"
+ },
+ {
+ "label": "CloudTop丨",
+ "value": "1799"
+ },
+ {
+ "label": "CloudTop丨",
+ "value": "1989"
+ },
+ {
+ "label": "cloudysky",
+ "value": "1776"
+ },
+ {
+ "label": "Club",
+ "value": "1184"
+ },
+ {
+ "label": "Clubs",
+ "value": "1126"
+ },
+ {
+ "label": "Cluelessly",
+ "value": "667"
+ },
+ {
+ "label": "CluelessPr",
+ "value": "963"
+ },
+ {
+ "label": "ClumsyLove",
+ "value": "473"
+ },
+ {
+ "label": "cluthullu",
+ "value": "1264"
+ },
+ {
+ "label": "Co-Workers",
+ "value": "454"
+ },
+ {
+ "label": "cockroache",
+ "value": "2604"
+ },
+ {
+ "label": "codegeass",
+ "value": "1398"
+ },
+ {
+ "label": "Codeuntilt",
+ "value": "2626"
+ },
+ {
+ "label": "codewordge",
+ "value": "2572"
+ },
+ {
+ "label": "coffeefatc",
+ "value": "1900"
+ },
+ {
+ "label": "coffeeinst",
+ "value": "2400"
+ },
+ {
+ "label": "coffeewith",
+ "value": "1656"
+ },
+ {
+ "label": "Cohabitati",
+ "value": "474"
+ },
+ {
+ "label": "CokeII",
+ "value": "2329"
+ },
+ {
+ "label": "coldcolddo",
+ "value": "2326"
+ },
+ {
+ "label": "ColdLoveIn",
+ "value": "56"
+ },
+ {
+ "label": "ColdLoveIn",
+ "value": "1365"
+ },
+ {
+ "label": "ColdMaleLe",
+ "value": "1567"
+ },
+ {
+ "label": "ColdMistre",
+ "value": "3036"
+ },
+ {
+ "label": "ColdNightL",
+ "value": "2695"
+ },
+ {
+ "label": "ColdProtag",
+ "value": "37"
+ },
+ {
+ "label": "coldrivers",
+ "value": "1956"
+ },
+ {
+ "label": "ColdStar&a",
+ "value": "1724"
+ },
+ {
+ "label": "Collection",
+ "value": "873"
+ },
+ {
+ "label": "College",
+ "value": "1018"
+ },
+ {
+ "label": "CollegeUni",
+ "value": "192"
+ },
+ {
+ "label": "ColonialEr",
+ "value": "1556"
+ },
+ {
+ "label": "Colonializ",
+ "value": "915"
+ },
+ {
+ "label": "Colonizati",
+ "value": "1494"
+ },
+ {
+ "label": "Colony",
+ "value": "1557"
+ },
+ {
+ "label": "Coma",
+ "value": "779"
+ },
+ {
+ "label": "Comed",
+ "value": "3167"
+ },
+ {
+ "label": "ComedicUnd",
+ "value": "91"
+ },
+ {
+ "label": "ComedicUnd",
+ "value": "1568"
+ },
+ {
+ "label": "comedy",
+ "value": "829"
+ },
+ {
+ "label": "Comeon",
+ "value": "1961"
+ },
+ {
+ "label": "Comic",
+ "value": "1167"
+ },
+ {
+ "label": "ComingofAg",
+ "value": "1147"
+ },
+ {
+ "label": "Commandand",
+ "value": "1472"
+ },
+ {
+ "label": "CommonerLi",
+ "value": "1317"
+ },
+ {
+ "label": "Companies",
+ "value": "824"
+ },
+ {
+ "label": "Competitio",
+ "value": "1210"
+ },
+ {
+ "label": "Complete",
+ "value": "3140"
+ },
+ {
+ "label": "ComplexFam",
+ "value": "153"
+ },
+ {
+ "label": "ComplexFam",
+ "value": "1583"
+ },
+ {
+ "label": "Complicate",
+ "value": "836"
+ },
+ {
+ "label": "Comprehens",
+ "value": "2093"
+ },
+ {
+ "label": "Conditiona",
+ "value": "413"
+ },
+ {
+ "label": "ConfidentP",
+ "value": "346"
+ },
+ {
+ "label": "Confinemen",
+ "value": "912"
+ },
+ {
+ "label": "Conflictin",
+ "value": "796"
+ },
+ {
+ "label": "Conquer",
+ "value": "2987"
+ },
+ {
+ "label": "Conspiracy",
+ "value": "2816"
+ },
+ {
+ "label": "Conspirati",
+ "value": "1103"
+ },
+ {
+ "label": "Constructi",
+ "value": "1624"
+ },
+ {
+ "label": "Contagonis",
+ "value": "1310"
+ },
+ {
+ "label": "contempora",
+ "value": "3138"
+ },
+ {
+ "label": "Contract",
+ "value": "891"
+ },
+ {
+ "label": "ContractLo",
+ "value": "1581"
+ },
+ {
+ "label": "Contractma",
+ "value": "3072"
+ },
+ {
+ "label": "Contracts",
+ "value": "379"
+ },
+ {
+ "label": "Cooking",
+ "value": "315"
+ },
+ {
+ "label": "Coolguy",
+ "value": "3190"
+ },
+ {
+ "label": "CoolText",
+ "value": "736"
+ },
+ {
+ "label": "cornjuice",
+ "value": "2706"
+ },
+ {
+ "label": "CorpseFrag",
+ "value": "2543"
+ },
+ {
+ "label": "Corruption",
+ "value": "550"
+ },
+ {
+ "label": "CosmicHorr",
+ "value": "757"
+ },
+ {
+ "label": "CosmicWars",
+ "value": "219"
+ },
+ {
+ "label": "Cosplay",
+ "value": "1460"
+ },
+ {
+ "label": "Counteratt",
+ "value": "1225"
+ },
+ {
+ "label": "CountrySid",
+ "value": "2917"
+ },
+ {
+ "label": "CoupleGrow",
+ "value": "526"
+ },
+ {
+ "label": "CourtOffic",
+ "value": "485"
+ },
+ {
+ "label": "Cousins",
+ "value": "519"
+ },
+ {
+ "label": "coverthesu",
+ "value": "1688"
+ },
+ {
+ "label": "CowardlyPr",
+ "value": "100"
+ },
+ {
+ "label": "coyote",
+ "value": "1837"
+ },
+ {
+ "label": "Crafting",
+ "value": "327"
+ },
+ {
+ "label": "Crazyforam",
+ "value": "2083"
+ },
+ {
+ "label": "CrazyProta",
+ "value": "758"
+ },
+ {
+ "label": "Crazystory",
+ "value": "2260"
+ },
+ {
+ "label": "Creation",
+ "value": "837"
+ },
+ {
+ "label": "Creator",
+ "value": "1148"
+ },
+ {
+ "label": "Creatures",
+ "value": "307"
+ },
+ {
+ "label": "Crime",
+ "value": "556"
+ },
+ {
+ "label": "Crimes",
+ "value": "1527"
+ },
+ {
+ "label": "crimesolvi",
+ "value": "2841"
+ },
+ {
+ "label": "Criminals",
+ "value": "290"
+ },
+ {
+ "label": "Criminolog",
+ "value": "1476"
+ },
+ {
+ "label": "crookeddoo",
+ "value": "2659"
+ },
+ {
+ "label": "Cross-dres",
+ "value": "210"
+ },
+ {
+ "label": "Crossdress",
+ "value": "756"
+ },
+ {
+ "label": "Crossing",
+ "value": "2760"
+ },
+ {
+ "label": "Crossover",
+ "value": "269"
+ },
+ {
+ "label": "Cruel",
+ "value": "2779"
+ },
+ {
+ "label": "CruelChara",
+ "value": "68"
+ },
+ {
+ "label": "Crush",
+ "value": "3047"
+ },
+ {
+ "label": "Cryostasis",
+ "value": "1447"
+ },
+ {
+ "label": "Cthulhu",
+ "value": "1137"
+ },
+ {
+ "label": "CubRaising",
+ "value": "1565"
+ },
+ {
+ "label": "CucumberHa",
+ "value": "1765"
+ },
+ {
+ "label": "Culinary",
+ "value": "3076"
+ },
+ {
+ "label": "Cultivatin",
+ "value": "3145"
+ },
+ {
+ "label": "Cultivatio",
+ "value": "20"
+ },
+ {
+ "label": "Cultivatio",
+ "value": "2812"
+ },
+ {
+ "label": "Cultivatio",
+ "value": "2849"
+ },
+ {
+ "label": "Cultivatio",
+ "value": "3093"
+ },
+ {
+ "label": "Cultivatio",
+ "value": "3117"
+ },
+ {
+ "label": "Cultivator",
+ "value": "958"
+ },
+ {
+ "label": "Cunnilingu",
+ "value": "1455"
+ },
+ {
+ "label": "cunning",
+ "value": "2755"
+ },
+ {
+ "label": "cunningfem",
+ "value": "795"
+ },
+ {
+ "label": "cunningmc",
+ "value": "1380"
+ },
+ {
+ "label": "CunningPro",
+ "value": "195"
+ },
+ {
+ "label": "CunningPro",
+ "value": "1168"
+ },
+ {
+ "label": "Cupola",
+ "value": "2683"
+ },
+ {
+ "label": "curechildr",
+ "value": "2848"
+ },
+ {
+ "label": "CuriousPro",
+ "value": "1275"
+ },
+ {
+ "label": "Curse",
+ "value": "1299"
+ },
+ {
+ "label": "Curses",
+ "value": "516"
+ },
+ {
+ "label": "Cute",
+ "value": "1258"
+ },
+ {
+ "label": "Cuteadorab",
+ "value": "3116"
+ },
+ {
+ "label": "CuteChild",
+ "value": "1016"
+ },
+ {
+ "label": "CuteChildr",
+ "value": "239"
+ },
+ {
+ "label": "cutegrapef",
+ "value": "2004"
+ },
+ {
+ "label": "cutelovein",
+ "value": "2733"
+ },
+ {
+ "label": "CuteMaleLe",
+ "value": "1113"
+ },
+ {
+ "label": "CutePet",
+ "value": "1339"
+ },
+ {
+ "label": "cutepomelo",
+ "value": "2646"
+ },
+ {
+ "label": "CuteProtag",
+ "value": "452"
+ },
+ {
+ "label": "CuteProtag",
+ "value": "1105"
+ },
+ {
+ "label": "cuteshadow",
+ "value": "1816"
+ },
+ {
+ "label": "CuteStory",
+ "value": "380"
+ },
+ {
+ "label": "Daddywants",
+ "value": "2291"
+ },
+ {
+ "label": "dagougou",
+ "value": "2387"
+ },
+ {
+ "label": "Dahunjun",
+ "value": "2201"
+ },
+ {
+ "label": "DamingYong",
+ "value": "2019"
+ },
+ {
+ "label": "Dancers",
+ "value": "1445"
+ },
+ {
+ "label": "dancetofig",
+ "value": "1803"
+ },
+ {
+ "label": "Danmei",
+ "value": "580"
+ },
+ {
+ "label": "DaoCompani",
+ "value": "521"
+ },
+ {
+ "label": "DaoCompreh",
+ "value": "92"
+ },
+ {
+ "label": "Daoism",
+ "value": "93"
+ },
+ {
+ "label": "DaoyanShen",
+ "value": "2043"
+ },
+ {
+ "label": "DaqingXiao",
+ "value": "2095"
+ },
+ {
+ "label": "Dark",
+ "value": "328"
+ },
+ {
+ "label": "DarkDeatho",
+ "value": "561"
+ },
+ {
+ "label": "DarkFantas",
+ "value": "759"
+ },
+ {
+ "label": "DarkForest",
+ "value": "3090"
+ },
+ {
+ "label": "darknight",
+ "value": "1731"
+ },
+ {
+ "label": "darkpirate",
+ "value": "1666"
+ },
+ {
+ "label": "DarkPower",
+ "value": "961"
+ },
+ {
+ "label": "Dashuaihen",
+ "value": "2279"
+ },
+ {
+ "label": "DatangDaqi",
+ "value": "1787"
+ },
+ {
+ "label": "DatangDaqi",
+ "value": "2225"
+ },
+ {
+ "label": "DatangErwu",
+ "value": "1836"
+ },
+ {
+ "label": "Datangpota",
+ "value": "2728"
+ },
+ {
+ "label": "Datangsupe",
+ "value": "1854"
+ },
+ {
+ "label": "daughterco",
+ "value": "1934"
+ },
+ {
+ "label": "Daybyday",
+ "value": "2418"
+ },
+ {
+ "label": "DC",
+ "value": "669"
+ },
+ {
+ "label": "deadfatfas",
+ "value": "2179"
+ },
+ {
+ "label": "DeadProtag",
+ "value": "541"
+ },
+ {
+ "label": "Death",
+ "value": "542"
+ },
+ {
+ "label": "DeathofLov",
+ "value": "38"
+ },
+ {
+ "label": "Debts",
+ "value": "524"
+ },
+ {
+ "label": "Decadeligh",
+ "value": "1812"
+ },
+ {
+ "label": "Decisive",
+ "value": "2794"
+ },
+ {
+ "label": "DecisiveMc",
+ "value": "2905"
+ },
+ {
+ "label": "deepbluese",
+ "value": "1821"
+ },
+ {
+ "label": "DeepLTrans",
+ "value": "969"
+ },
+ {
+ "label": "Deityhero",
+ "value": "3118"
+ },
+ {
+ "label": "Delinquent",
+ "value": "605"
+ },
+ {
+ "label": "Delusions",
+ "value": "1422"
+ },
+ {
+ "label": "Demi-Human",
+ "value": "571"
+ },
+ {
+ "label": "Demon",
+ "value": "748"
+ },
+ {
+ "label": "Demondomai",
+ "value": "2266"
+ },
+ {
+ "label": "DemonicCul",
+ "value": "232"
+ },
+ {
+ "label": "DemonInvas",
+ "value": "2081"
+ },
+ {
+ "label": "DemonKing",
+ "value": "2565"
+ },
+ {
+ "label": "DemonLord",
+ "value": "154"
+ },
+ {
+ "label": "DemonPower",
+ "value": "2832"
+ },
+ {
+ "label": "Demons",
+ "value": "209"
+ },
+ {
+ "label": "DemonsFami",
+ "value": "1617"
+ },
+ {
+ "label": "DemonSlaye",
+ "value": "695"
+ },
+ {
+ "label": "DenseProta",
+ "value": "10"
+ },
+ {
+ "label": "Depictions",
+ "value": "329"
+ },
+ {
+ "label": "Depictions",
+ "value": "729"
+ },
+ {
+ "label": "Depression",
+ "value": "906"
+ },
+ {
+ "label": "Desperate",
+ "value": "3061"
+ },
+ {
+ "label": "Desperatel",
+ "value": "2209"
+ },
+ {
+ "label": "DestinedLo",
+ "value": "1124"
+ },
+ {
+ "label": "Destiny",
+ "value": "120"
+ },
+ {
+ "label": "Destroyerf",
+ "value": "2170"
+ },
+ {
+ "label": "Detailed",
+ "value": "3024"
+ },
+ {
+ "label": "Detective",
+ "value": "774"
+ },
+ {
+ "label": "DetectiveC",
+ "value": "927"
+ },
+ {
+ "label": "Detectives",
+ "value": "557"
+ },
+ {
+ "label": "Determined",
+ "value": "227"
+ },
+ {
+ "label": "Devil",
+ "value": "3078"
+ },
+ {
+ "label": "DevilPosse",
+ "value": "1555"
+ },
+ {
+ "label": "Devils",
+ "value": "638"
+ },
+ {
+ "label": "Devilveget",
+ "value": "2148"
+ },
+ {
+ "label": "DevotedCou",
+ "value": "1628"
+ },
+ {
+ "label": "Devotedlov",
+ "value": "1346"
+ },
+ {
+ "label": "DevotedLov",
+ "value": "155"
+ },
+ {
+ "label": "DevotedLov",
+ "value": "1514"
+ },
+ {
+ "label": "Devourande",
+ "value": "3180"
+ },
+ {
+ "label": "Devouringt",
+ "value": "3142"
+ },
+ {
+ "label": "DifferentS",
+ "value": "381"
+ },
+ {
+ "label": "differentw",
+ "value": "965"
+ },
+ {
+ "label": "Diga",
+ "value": "2430"
+ },
+ {
+ "label": "Diggingtos",
+ "value": "3135"
+ },
+ {
+ "label": "Digimon",
+ "value": "1392"
+ },
+ {
+ "label": "digitalold",
+ "value": "1872"
+ },
+ {
+ "label": "digthreefe",
+ "value": "2472"
+ },
+ {
+ "label": "Dikabenka",
+ "value": "2422"
+ },
+ {
+ "label": "dimensiona",
+ "value": "2737"
+ },
+ {
+ "label": "Dinosaurs",
+ "value": "878"
+ },
+ {
+ "label": "Diplomacy",
+ "value": "2967"
+ },
+ {
+ "label": "Diplomats",
+ "value": "1073"
+ },
+ {
+ "label": "Director",
+ "value": "760"
+ },
+ {
+ "label": "Directors",
+ "value": "1554"
+ },
+ {
+ "label": "dirtylittl",
+ "value": "2610"
+ },
+ {
+ "label": "Disabiliti",
+ "value": "603"
+ },
+ {
+ "label": "disability",
+ "value": "2944"
+ },
+ {
+ "label": "DisabledPr",
+ "value": "1281"
+ },
+ {
+ "label": "DiscipleLo",
+ "value": "978"
+ },
+ {
+ "label": "DiscipleTr",
+ "value": "664"
+ },
+ {
+ "label": "Discrimina",
+ "value": "286"
+ },
+ {
+ "label": "Disfigurem",
+ "value": "1110"
+ },
+ {
+ "label": "DishonestP",
+ "value": "1405"
+ },
+ {
+ "label": "Disobedien",
+ "value": "1237"
+ },
+ {
+ "label": "Distrustfu",
+ "value": "1438"
+ },
+ {
+ "label": "Divination",
+ "value": "308"
+ },
+ {
+ "label": "Divination",
+ "value": "1466"
+ },
+ {
+ "label": "Divineacti",
+ "value": "3121"
+ },
+ {
+ "label": "DivineBook",
+ "value": "2350"
+ },
+ {
+ "label": "Divinechoo",
+ "value": "3155"
+ },
+ {
+ "label": "DivineProt",
+ "value": "1487"
+ },
+ {
+ "label": "divinesign",
+ "value": "1653"
+ },
+ {
+ "label": "Divorce",
+ "value": "257"
+ },
+ {
+ "label": "Doctor",
+ "value": "749"
+ },
+ {
+ "label": "DoctorData",
+ "value": "2538"
+ },
+ {
+ "label": "Doctors",
+ "value": "169"
+ },
+ {
+ "label": "Dog",
+ "value": "1364"
+ },
+ {
+ "label": "dogeggsold",
+ "value": "2321"
+ },
+ {
+ "label": "DoingBusin",
+ "value": "1318"
+ },
+ {
+ "label": "Dollsister",
+ "value": "2110"
+ },
+ {
+ "label": "DollsPuppe",
+ "value": "196"
+ },
+ {
+ "label": "DomesticAf",
+ "value": "429"
+ },
+ {
+ "label": "Dominator",
+ "value": "1090"
+ },
+ {
+ "label": "Domineerin",
+ "value": "2769"
+ },
+ {
+ "label": "don&039",
+ "value": "1823"
+ },
+ {
+ "label": "don&039",
+ "value": "1911"
+ },
+ {
+ "label": "Don&039",
+ "value": "2361"
+ },
+ {
+ "label": "Donaldtrum",
+ "value": "3084"
+ },
+ {
+ "label": "Donotbecon",
+ "value": "2440"
+ },
+ {
+ "label": "Donotforge",
+ "value": "2445"
+ },
+ {
+ "label": "Doomdays",
+ "value": "1125"
+ },
+ {
+ "label": "Doomsday",
+ "value": "877"
+ },
+ {
+ "label": "Doomsdaywa",
+ "value": "2519"
+ },
+ {
+ "label": "Doraemon",
+ "value": "2748"
+ },
+ {
+ "label": "dotingfami",
+ "value": "973"
+ },
+ {
+ "label": "dotinglove",
+ "value": "974"
+ },
+ {
+ "label": "DotingLove",
+ "value": "156"
+ },
+ {
+ "label": "Dotingmale",
+ "value": "3171"
+ },
+ {
+ "label": "DotingOlde",
+ "value": "432"
+ },
+ {
+ "label": "DotingPare",
+ "value": "316"
+ },
+ {
+ "label": "DotingPare",
+ "value": "1265"
+ },
+ {
+ "label": "DotingSibl",
+ "value": "1266"
+ },
+ {
+ "label": "DoubleLife",
+ "value": "905"
+ },
+ {
+ "label": "DoubleRebi",
+ "value": "737"
+ },
+ {
+ "label": "Doujin",
+ "value": "820"
+ },
+ {
+ "label": "Douluo",
+ "value": "1553"
+ },
+ {
+ "label": "DouluoDalu",
+ "value": "85"
+ },
+ {
+ "label": "Doupo",
+ "value": "834"
+ },
+ {
+ "label": "DoupoBTTH",
+ "value": "719"
+ },
+ {
+ "label": "DouTuKing",
+ "value": "1908"
+ },
+ {
+ "label": "doyoueator",
+ "value": "2153"
+ },
+ {
+ "label": "doyouwantc",
+ "value": "2364"
+ },
+ {
+ "label": "Dragon",
+ "value": "939"
+ },
+ {
+ "label": "dragon-eat",
+ "value": "2254"
+ },
+ {
+ "label": "DragonandL",
+ "value": "2554"
+ },
+ {
+ "label": "DragonBall",
+ "value": "648"
+ },
+ {
+ "label": "DragonBall",
+ "value": "2150"
+ },
+ {
+ "label": "Dragoncult",
+ "value": "3126"
+ },
+ {
+ "label": "DragonPala",
+ "value": "1857"
+ },
+ {
+ "label": "DragonPowe",
+ "value": "2833"
+ },
+ {
+ "label": "DragonRide",
+ "value": "793"
+ },
+ {
+ "label": "Dragons",
+ "value": "233"
+ },
+ {
+ "label": "DragonSlay",
+ "value": "586"
+ },
+ {
+ "label": "dragracing",
+ "value": "1784"
+ },
+ {
+ "label": "Drama",
+ "value": "723"
+ },
+ {
+ "label": "Dramatic",
+ "value": "3069"
+ },
+ {
+ "label": "Dream",
+ "value": "859"
+ },
+ {
+ "label": "dreamblizz",
+ "value": "2691"
+ },
+ {
+ "label": "dreamcatch",
+ "value": "2348"
+ },
+ {
+ "label": "dreamintot",
+ "value": "2272"
+ },
+ {
+ "label": "dreamleave",
+ "value": "1646"
+ },
+ {
+ "label": "Dreamofthe",
+ "value": "2012"
+ },
+ {
+ "label": "Dreams",
+ "value": "284"
+ },
+ {
+ "label": "DriftwoodD",
+ "value": "2390"
+ },
+ {
+ "label": "Drugs",
+ "value": "934"
+ },
+ {
+ "label": "Druids",
+ "value": "842"
+ },
+ {
+ "label": "Drunklifed",
+ "value": "2720"
+ },
+ {
+ "label": "DualCultiv",
+ "value": "3208"
+ },
+ {
+ "label": "DumbProtag",
+ "value": "1603"
+ },
+ {
+ "label": "dungeon",
+ "value": "944"
+ },
+ {
+ "label": "DungeonMas",
+ "value": "600"
+ },
+ {
+ "label": "Dungeons",
+ "value": "469"
+ },
+ {
+ "label": "Dwarf",
+ "value": "1159"
+ },
+ {
+ "label": "Dwarfs",
+ "value": "132"
+ },
+ {
+ "label": "Dwarves",
+ "value": "610"
+ },
+ {
+ "label": "Dynasty",
+ "value": "2817"
+ },
+ {
+ "label": "Dystopia",
+ "value": "1439"
+ },
+ {
+ "label": "Dystopian",
+ "value": "3002"
+ },
+ {
+ "label": "e-Sports",
+ "value": "513"
+ },
+ {
+ "label": "EarlyRoman",
+ "value": "2"
+ },
+ {
+ "label": "EarthInvas",
+ "value": "554"
+ },
+ {
+ "label": "eartwarmin",
+ "value": "2834"
+ },
+ {
+ "label": "Eastern",
+ "value": "3104"
+ },
+ {
+ "label": "easternfan",
+ "value": "534"
+ },
+ {
+ "label": "Easternmys",
+ "value": "3077"
+ },
+ {
+ "label": "EasyGoingL",
+ "value": "287"
+ },
+ {
+ "label": "Easygoingp",
+ "value": "1157"
+ },
+ {
+ "label": "EatingBroa",
+ "value": "1238"
+ },
+ {
+ "label": "Eccentricp",
+ "value": "1196"
+ },
+ {
+ "label": "Ecchi",
+ "value": "2974"
+ },
+ {
+ "label": "Economics",
+ "value": "288"
+ },
+ {
+ "label": "EconomicsE",
+ "value": "157"
+ },
+ {
+ "label": "Editors",
+ "value": "946"
+ },
+ {
+ "label": "Education",
+ "value": "1504"
+ },
+ {
+ "label": "Eggpie",
+ "value": "2045"
+ },
+ {
+ "label": "Eggplantan",
+ "value": "2673"
+ },
+ {
+ "label": "Egoism",
+ "value": "3124"
+ },
+ {
+ "label": "Egoist",
+ "value": "3075"
+ },
+ {
+ "label": "EideticMem",
+ "value": "234"
+ },
+ {
+ "label": "Eighteence",
+ "value": "2781"
+ },
+ {
+ "label": "eincarnate",
+ "value": "616"
+ },
+ {
+ "label": "EldestSist",
+ "value": "1508"
+ },
+ {
+ "label": "electricia",
+ "value": "1394"
+ },
+ {
+ "label": "electricmo",
+ "value": "2495"
+ },
+ {
+ "label": "elemental",
+ "value": "2921"
+ },
+ {
+ "label": "ElementalM",
+ "value": "309"
+ },
+ {
+ "label": "Elements",
+ "value": "3105"
+ },
+ {
+ "label": "Elf",
+ "value": "838"
+ },
+ {
+ "label": "Elfcold",
+ "value": "1758"
+ },
+ {
+ "label": "Elite",
+ "value": "817"
+ },
+ {
+ "label": "Elves",
+ "value": "133"
+ },
+ {
+ "label": "Emotional",
+ "value": "2894"
+ },
+ {
+ "label": "Emotionall",
+ "value": "338"
+ },
+ {
+ "label": "Emperialpo",
+ "value": "1101"
+ },
+ {
+ "label": "Emperor",
+ "value": "2844"
+ },
+ {
+ "label": "EmperorCha",
+ "value": "2363"
+ },
+ {
+ "label": "EmperorYao",
+ "value": "1789"
+ },
+ {
+ "label": "Empire",
+ "value": "916"
+ },
+ {
+ "label": "EmpireBuil",
+ "value": "1495"
+ },
+ {
+ "label": "Empires",
+ "value": "517"
+ },
+ {
+ "label": "empressfem",
+ "value": "2947"
+ },
+ {
+ "label": "emptymonol",
+ "value": "2261"
+ },
+ {
+ "label": "Encryption",
+ "value": "3102"
+ },
+ {
+ "label": "EndoftheWo",
+ "value": "2378"
+ },
+ {
+ "label": "Enemies",
+ "value": "3128"
+ },
+ {
+ "label": "EnemiesBec",
+ "value": "324"
+ },
+ {
+ "label": "EnemiesBec",
+ "value": "198"
+ },
+ {
+ "label": "enemiestol",
+ "value": "1397"
+ },
+ {
+ "label": "EnemytoLov",
+ "value": "1230"
+ },
+ {
+ "label": "EnemytoLov",
+ "value": "864"
+ },
+ {
+ "label": "engageinba",
+ "value": "2545"
+ },
+ {
+ "label": "Engagement",
+ "value": "158"
+ },
+ {
+ "label": "Engineer",
+ "value": "581"
+ },
+ {
+ "label": "Enlightenm",
+ "value": "606"
+ },
+ {
+ "label": "Entertaime",
+ "value": "892"
+ },
+ {
+ "label": "Entertaini",
+ "value": "2313"
+ },
+ {
+ "label": "entertainm",
+ "value": "1300"
+ },
+ {
+ "label": "entertainm",
+ "value": "2477"
+ },
+ {
+ "label": "entertainm",
+ "value": "2664"
+ },
+ {
+ "label": "Entertainm",
+ "value": "187"
+ },
+ {
+ "label": "Entertainm",
+ "value": "738"
+ },
+ {
+ "label": "Entertainm",
+ "value": "752"
+ },
+ {
+ "label": "Entertainm",
+ "value": "1521"
+ },
+ {
+ "label": "Episodic",
+ "value": "438"
+ },
+ {
+ "label": "Erwazi",
+ "value": "2658"
+ },
+ {
+ "label": "Esper",
+ "value": "3223"
+ },
+ {
+ "label": "eternityor",
+ "value": "2312"
+ },
+ {
+ "label": "Eunuch",
+ "value": "121"
+ },
+ {
+ "label": "EunuchJinr",
+ "value": "1681"
+ },
+ {
+ "label": "Europe",
+ "value": "2916"
+ },
+ {
+ "label": "EuropeanAm",
+ "value": "851"
+ },
+ {
+ "label": "EuropeanAm",
+ "value": "1052"
+ },
+ {
+ "label": "evenge",
+ "value": "2969"
+ },
+ {
+ "label": "Evergrande",
+ "value": "2592"
+ },
+ {
+ "label": "Evergrande",
+ "value": "2210"
+ },
+ {
+ "label": "everlastin",
+ "value": "2550"
+ },
+ {
+ "label": "everydayfi",
+ "value": "2383"
+ },
+ {
+ "label": "Evil",
+ "value": "1289"
+ },
+ {
+ "label": "Evil-prota",
+ "value": "1056"
+ },
+ {
+ "label": "EvilAuthor",
+ "value": "3095"
+ },
+ {
+ "label": "EvilCharac",
+ "value": "761"
+ },
+ {
+ "label": "EvilGod",
+ "value": "955"
+ },
+ {
+ "label": "EvilGods",
+ "value": "134"
+ },
+ {
+ "label": "Evilmc",
+ "value": "3186"
+ },
+ {
+ "label": "EvilOrgani",
+ "value": "69"
+ },
+ {
+ "label": "EvilOrgani",
+ "value": "991"
+ },
+ {
+ "label": "EvilProtag",
+ "value": "336"
+ },
+ {
+ "label": "EvilReligi",
+ "value": "495"
+ },
+ {
+ "label": "EvilSpirit",
+ "value": "3015"
+ },
+ {
+ "label": "EvilSprits",
+ "value": "1313"
+ },
+ {
+ "label": "Evolution",
+ "value": "202"
+ },
+ {
+ "label": "Ex",
+ "value": "3030"
+ },
+ {
+ "label": "Ex-girlfri",
+ "value": "1128"
+ },
+ {
+ "label": "Excessivel",
+ "value": "3034"
+ },
+ {
+ "label": "exercise",
+ "value": "3122"
+ },
+ {
+ "label": "exes",
+ "value": "1368"
+ },
+ {
+ "label": "Exhaustion",
+ "value": "2868"
+ },
+ {
+ "label": "Exorcism",
+ "value": "481"
+ },
+ {
+ "label": "Exorcist",
+ "value": "908"
+ },
+ {
+ "label": "Experience",
+ "value": "686"
+ },
+ {
+ "label": "Exploratio",
+ "value": "3131"
+ },
+ {
+ "label": "Extraordin",
+ "value": "1206"
+ },
+ {
+ "label": "Extremelyi",
+ "value": "2100"
+ },
+ {
+ "label": "eyepower",
+ "value": "987"
+ },
+ {
+ "label": "EyePowers",
+ "value": "170"
+ },
+ {
+ "label": "Faceslap",
+ "value": "1226"
+ },
+ {
+ "label": "FaceSlappi",
+ "value": "739"
+ },
+ {
+ "label": "FahaiInvin",
+ "value": "2537"
+ },
+ {
+ "label": "Fahaiunder",
+ "value": "2105"
+ },
+ {
+ "label": "Fairies",
+ "value": "726"
+ },
+ {
+ "label": "Fairy",
+ "value": "2823"
+ },
+ {
+ "label": "fairygirlf",
+ "value": "2327"
+ },
+ {
+ "label": "FairySword",
+ "value": "1822"
+ },
+ {
+ "label": "FairyTail",
+ "value": "646"
+ },
+ {
+ "label": "Fairy丨Pin",
+ "value": "1673"
+ },
+ {
+ "label": "Fakeandrea",
+ "value": "3032"
+ },
+ {
+ "label": "fakegod",
+ "value": "2432"
+ },
+ {
+ "label": "FaketoReal",
+ "value": "1582"
+ },
+ {
+ "label": "FallenAnge",
+ "value": "1441"
+ },
+ {
+ "label": "Fallenleav",
+ "value": "1959"
+ },
+ {
+ "label": "FallenNobi",
+ "value": "297"
+ },
+ {
+ "label": "FallenWing",
+ "value": "2644"
+ },
+ {
+ "label": "FallingRai",
+ "value": "1798"
+ },
+ {
+ "label": "fallintoth",
+ "value": "2690"
+ },
+ {
+ "label": "Faloo",
+ "value": "640"
+ },
+ {
+ "label": "FamilialLo",
+ "value": "101"
+ },
+ {
+ "label": "Familiars",
+ "value": "1443"
+ },
+ {
+ "label": "FamillialL",
+ "value": "917"
+ },
+ {
+ "label": "Family",
+ "value": "228"
+ },
+ {
+ "label": "FamilyBuil",
+ "value": "1592"
+ },
+ {
+ "label": "FamilyBusi",
+ "value": "248"
+ },
+ {
+ "label": "FamilyConf",
+ "value": "548"
+ },
+ {
+ "label": "familylife",
+ "value": "1192"
+ },
+ {
+ "label": "FamilyLove",
+ "value": "1270"
+ },
+ {
+ "label": "Familyreun",
+ "value": "3008"
+ },
+ {
+ "label": "Famous",
+ "value": "1522"
+ },
+ {
+ "label": "famouscoup",
+ "value": "1263"
+ },
+ {
+ "label": "Famousdete",
+ "value": "1769"
+ },
+ {
+ "label": "FamousPare",
+ "value": "335"
+ },
+ {
+ "label": "FamousProt",
+ "value": "249"
+ },
+ {
+ "label": "Fan-fictio",
+ "value": "115"
+ },
+ {
+ "label": "Fanaticism",
+ "value": "576"
+ },
+ {
+ "label": "Fanfic",
+ "value": "718"
+ },
+ {
+ "label": "Fanfiction",
+ "value": "86"
+ },
+ {
+ "label": "FanFicton",
+ "value": "1144"
+ },
+ {
+ "label": "FangQingya",
+ "value": "2233"
+ },
+ {
+ "label": "FanJiu",
+ "value": "2128"
+ },
+ {
+ "label": "fanofstar",
+ "value": "2599"
+ },
+ {
+ "label": "fanqienove",
+ "value": "2942"
+ },
+ {
+ "label": "FantaCola",
+ "value": "2122"
+ },
+ {
+ "label": "Fantasia",
+ "value": "3056"
+ },
+ {
+ "label": "Fantasy",
+ "value": "240"
+ },
+ {
+ "label": "Fantasybos",
+ "value": "2373"
+ },
+ {
+ "label": "FantasyCre",
+ "value": "374"
+ },
+ {
+ "label": "FantasyCre",
+ "value": "2915"
+ },
+ {
+ "label": "Fantasyfut",
+ "value": "1369"
+ },
+ {
+ "label": "FantasyMag",
+ "value": "310"
+ },
+ {
+ "label": "Fantasyrom",
+ "value": "3106"
+ },
+ {
+ "label": "FantasyWor",
+ "value": "47"
+ },
+ {
+ "label": "Farm",
+ "value": "1254"
+ },
+ {
+ "label": "Farming",
+ "value": "102"
+ },
+ {
+ "label": "FarmingTex",
+ "value": "928"
+ },
+ {
+ "label": "FastCultiv",
+ "value": "70"
+ },
+ {
+ "label": "FastGrowth",
+ "value": "1219"
+ },
+ {
+ "label": "FastLearne",
+ "value": "71"
+ },
+ {
+ "label": "Fastpace",
+ "value": "3191"
+ },
+ {
+ "label": "Fastpaced",
+ "value": "3094"
+ },
+ {
+ "label": "fasttravel",
+ "value": "2927"
+ },
+ {
+ "label": "FastWearin",
+ "value": "1035"
+ },
+ {
+ "label": "FatDiddy",
+ "value": "2467"
+ },
+ {
+ "label": "Fatedlove",
+ "value": "3006"
+ },
+ {
+ "label": "FatedLover",
+ "value": "442"
+ },
+ {
+ "label": "FateSeries",
+ "value": "1186"
+ },
+ {
+ "label": "fatmanoffa",
+ "value": "1901"
+ },
+ {
+ "label": "FatProtago",
+ "value": "998"
+ },
+ {
+ "label": "FattoFit",
+ "value": "582"
+ },
+ {
+ "label": "Faucet",
+ "value": "2588"
+ },
+ {
+ "label": "Favoritebl",
+ "value": "1965"
+ },
+ {
+ "label": "Favoriteco",
+ "value": "2642"
+ },
+ {
+ "label": "FearlessPr",
+ "value": "434"
+ },
+ {
+ "label": "Feelgood",
+ "value": "2998"
+ },
+ {
+ "label": "FeiLuEdiso",
+ "value": "1796"
+ },
+ {
+ "label": "Fellatio",
+ "value": "433"
+ },
+ {
+ "label": "FemaleEmpe",
+ "value": "2880"
+ },
+ {
+ "label": "FemaleFigh",
+ "value": "1187"
+ },
+ {
+ "label": "FemaleLead",
+ "value": "678"
+ },
+ {
+ "label": "FemaleMast",
+ "value": "588"
+ },
+ {
+ "label": "FemaleMast",
+ "value": "339"
+ },
+ {
+ "label": "FemaleMC",
+ "value": "1003"
+ },
+ {
+ "label": "FemalePart",
+ "value": "2925"
+ },
+ {
+ "label": "FemalePres",
+ "value": "1023"
+ },
+ {
+ "label": "Femaleprot",
+ "value": "744"
+ },
+ {
+ "label": "FemaleProt",
+ "value": "45"
+ },
+ {
+ "label": "FemaleProt",
+ "value": "2770"
+ },
+ {
+ "label": "Femaleside",
+ "value": "2970"
+ },
+ {
+ "label": "FemaleSpie",
+ "value": "1074"
+ },
+ {
+ "label": "FemalesPro",
+ "value": "900"
+ },
+ {
+ "label": "FemaletoMa",
+ "value": "1329"
+ },
+ {
+ "label": "Fengqing",
+ "value": "2282"
+ },
+ {
+ "label": "FengShui",
+ "value": "420"
+ },
+ {
+ "label": "FengziXiao",
+ "value": "1925"
+ },
+ {
+ "label": "FerrariEnz",
+ "value": "1779"
+ },
+ {
+ "label": "Fetish",
+ "value": "3207"
+ },
+ {
+ "label": "Fiction",
+ "value": "3220"
+ },
+ {
+ "label": "fierce",
+ "value": "1984"
+ },
+ {
+ "label": "Fifi&03",
+ "value": "2689"
+ },
+ {
+ "label": "FifthEmper",
+ "value": "2306"
+ },
+ {
+ "label": "Fightforhe",
+ "value": "2929"
+ },
+ {
+ "label": "FightingCo",
+ "value": "2311"
+ },
+ {
+ "label": "Finance",
+ "value": "1540"
+ },
+ {
+ "label": "Firearms",
+ "value": "330"
+ },
+ {
+ "label": "Fireinthes",
+ "value": "1891"
+ },
+ {
+ "label": "fireonfire",
+ "value": "2476"
+ },
+ {
+ "label": "Firethief",
+ "value": "1655"
+ },
+ {
+ "label": "FireWinged",
+ "value": "2241"
+ },
+ {
+ "label": "First-time",
+ "value": "747"
+ },
+ {
+ "label": "First-time",
+ "value": "491"
+ },
+ {
+ "label": "firstgreen",
+ "value": "2409"
+ },
+ {
+ "label": "FirstLove",
+ "value": "504"
+ },
+ {
+ "label": "firstperso",
+ "value": "1832"
+ },
+ {
+ "label": "fishandraf",
+ "value": "2336"
+ },
+ {
+ "label": "fisheatpan",
+ "value": "2443"
+ },
+ {
+ "label": "fishfishda",
+ "value": "1927"
+ },
+ {
+ "label": "Fishheadis",
+ "value": "2696"
+ },
+ {
+ "label": "fishinflam",
+ "value": "2632"
+ },
+ {
+ "label": "Fishing",
+ "value": "1085"
+ },
+ {
+ "label": "fishswimmi",
+ "value": "2657"
+ },
+ {
+ "label": "Fistfights",
+ "value": "1541"
+ },
+ {
+ "label": "flamingfla",
+ "value": "1693"
+ },
+ {
+ "label": "Flashbacks",
+ "value": "1079"
+ },
+ {
+ "label": "FleetBattl",
+ "value": "569"
+ },
+ {
+ "label": "Floatingli",
+ "value": "2427"
+ },
+ {
+ "label": "flowersoft",
+ "value": "2685"
+ },
+ {
+ "label": "flyingcow",
+ "value": "2424"
+ },
+ {
+ "label": "flyingfish",
+ "value": "2003"
+ },
+ {
+ "label": "flyinglitt",
+ "value": "2398"
+ },
+ {
+ "label": "FlyingLuTi",
+ "value": "2158"
+ },
+ {
+ "label": "flyingshar",
+ "value": "2618"
+ },
+ {
+ "label": "flyingsqui",
+ "value": "2227"
+ },
+ {
+ "label": "Flyingwhit",
+ "value": "2553"
+ },
+ {
+ "label": "flyinthelo",
+ "value": "2492"
+ },
+ {
+ "label": "Folklore",
+ "value": "1417"
+ },
+ {
+ "label": "Followthew",
+ "value": "1941"
+ },
+ {
+ "label": "Food",
+ "value": "972"
+ },
+ {
+ "label": "FoodWars!",
+ "value": "663"
+ },
+ {
+ "label": "Football",
+ "value": "266"
+ },
+ {
+ "label": "Forbiddenl",
+ "value": "3023"
+ },
+ {
+ "label": "Forcedinto",
+ "value": "1424"
+ },
+ {
+ "label": "ForcedLivi",
+ "value": "1141"
+ },
+ {
+ "label": "ForcedMarr",
+ "value": "573"
+ },
+ {
+ "label": "forest",
+ "value": "1988"
+ },
+ {
+ "label": "ForgetfulP",
+ "value": "467"
+ },
+ {
+ "label": "Forgiveyou",
+ "value": "2068"
+ },
+ {
+ "label": "Formation",
+ "value": "2884"
+ },
+ {
+ "label": "Formations",
+ "value": "926"
+ },
+ {
+ "label": "FormerHero",
+ "value": "1470"
+ },
+ {
+ "label": "formworksk",
+ "value": "2701"
+ },
+ {
+ "label": "Fourkeys",
+ "value": "2310"
+ },
+ {
+ "label": "Foursome",
+ "value": "3201"
+ },
+ {
+ "label": "FourthDisa",
+ "value": "801"
+ },
+ {
+ "label": "FoxdemonXi",
+ "value": "2226"
+ },
+ {
+ "label": "foxlisteni",
+ "value": "1680"
+ },
+ {
+ "label": "FoxSpirits",
+ "value": "712"
+ },
+ {
+ "label": "fqloo",
+ "value": "3236"
+ },
+ {
+ "label": "France",
+ "value": "1080"
+ },
+ {
+ "label": "Friction",
+ "value": "1569"
+ },
+ {
+ "label": "Friday",
+ "value": "1744"
+ },
+ {
+ "label": "FriendsBec",
+ "value": "562"
+ },
+ {
+ "label": "Friendship",
+ "value": "392"
+ },
+ {
+ "label": "Friendstol",
+ "value": "3025"
+ },
+ {
+ "label": "Fujoshi",
+ "value": "72"
+ },
+ {
+ "label": "Fullcolor",
+ "value": "2862"
+ },
+ {
+ "label": "fullmeal",
+ "value": "2030"
+ },
+ {
+ "label": "Funny",
+ "value": "2901"
+ },
+ {
+ "label": "furioussna",
+ "value": "2188"
+ },
+ {
+ "label": "Fusión",
+ "value": "810"
+ },
+ {
+ "label": "Futanari",
+ "value": "922"
+ },
+ {
+ "label": "Future",
+ "value": "1287"
+ },
+ {
+ "label": "FutureCivi",
+ "value": "135"
+ },
+ {
+ "label": "FutureCivi",
+ "value": "771"
+ },
+ {
+ "label": "futuredyst",
+ "value": "2949"
+ },
+ {
+ "label": "futureworl",
+ "value": "2773"
+ },
+ {
+ "label": "Futuristic",
+ "value": "199"
+ },
+ {
+ "label": "Futuristic",
+ "value": "1087"
+ },
+ {
+ "label": "gacha",
+ "value": "3218"
+ },
+ {
+ "label": "galacticli",
+ "value": "1043"
+ },
+ {
+ "label": "Galacticos",
+ "value": "1771"
+ },
+ {
+ "label": "Galaxyboy",
+ "value": "2107"
+ },
+ {
+ "label": "Galge",
+ "value": "1618"
+ },
+ {
+ "label": "Gambling",
+ "value": "461"
+ },
+ {
+ "label": "Game",
+ "value": "937"
+ },
+ {
+ "label": "gameelemen",
+ "value": "1234"
+ },
+ {
+ "label": "GameElemen",
+ "value": "73"
+ },
+ {
+ "label": "GameElemen",
+ "value": "843"
+ },
+ {
+ "label": "GameOnline",
+ "value": "1013"
+ },
+ {
+ "label": "GameRangki",
+ "value": "982"
+ },
+ {
+ "label": "GameRankin",
+ "value": "241"
+ },
+ {
+ "label": "Gamers",
+ "value": "160"
+ },
+ {
+ "label": "GameSystem",
+ "value": "1524"
+ },
+ {
+ "label": "gameworld",
+ "value": "953"
+ },
+ {
+ "label": "Gaming",
+ "value": "1121"
+ },
+ {
+ "label": "GamingE-Sp",
+ "value": "496"
+ },
+ {
+ "label": "Gangs",
+ "value": "299"
+ },
+ {
+ "label": "Gangsters",
+ "value": "1295"
+ },
+ {
+ "label": "GaoYuanyao",
+ "value": "2541"
+ },
+ {
+ "label": "GatetoAnot",
+ "value": "109"
+ },
+ {
+ "label": "Geass",
+ "value": "1191"
+ },
+ {
+ "label": "Genderbend",
+ "value": "1512"
+ },
+ {
+ "label": "GenderBend",
+ "value": "872"
+ },
+ {
+ "label": "Genderless",
+ "value": "361"
+ },
+ {
+ "label": "Genderless",
+ "value": "1239"
+ },
+ {
+ "label": "Genderneut",
+ "value": "3114"
+ },
+ {
+ "label": "GenderRole",
+ "value": "1510"
+ },
+ {
+ "label": "GeneModifi",
+ "value": "661"
+ },
+ {
+ "label": "Generals",
+ "value": "256"
+ },
+ {
+ "label": "GeneralXie",
+ "value": "2653"
+ },
+ {
+ "label": "Genetic",
+ "value": "3098"
+ },
+ {
+ "label": "GeneticMod",
+ "value": "422"
+ },
+ {
+ "label": "Genies",
+ "value": "200"
+ },
+ {
+ "label": "genius",
+ "value": "1343"
+ },
+ {
+ "label": "GeniusFema",
+ "value": "3168"
+ },
+ {
+ "label": "GeniusProt",
+ "value": "159"
+ },
+ {
+ "label": "Genshin",
+ "value": "1099"
+ },
+ {
+ "label": "GenshinImp",
+ "value": "668"
+ },
+ {
+ "label": "GentleLove",
+ "value": "1366"
+ },
+ {
+ "label": "gentleman",
+ "value": "1834"
+ },
+ {
+ "label": "GentleProt",
+ "value": "1324"
+ },
+ {
+ "label": "GetRich",
+ "value": "1319"
+ },
+ {
+ "label": "Gettingbac",
+ "value": "3029"
+ },
+ {
+ "label": "Ghost",
+ "value": "813"
+ },
+ {
+ "label": "Ghostexter",
+ "value": "2560"
+ },
+ {
+ "label": "Ghosts",
+ "value": "311"
+ },
+ {
+ "label": "Ghostsinre",
+ "value": "2263"
+ },
+ {
+ "label": "Giantdrago",
+ "value": "3164"
+ },
+ {
+ "label": "giantpanda",
+ "value": "2719"
+ },
+ {
+ "label": "Giants",
+ "value": "1288"
+ },
+ {
+ "label": "Gilf",
+ "value": "3203"
+ },
+ {
+ "label": "GingerLemo",
+ "value": "2803"
+ },
+ {
+ "label": "giveyoutim",
+ "value": "1913"
+ },
+ {
+ "label": "Glasses-we",
+ "value": "1341"
+ },
+ {
+ "label": "Glasses-we",
+ "value": "1453"
+ },
+ {
+ "label": "GLL",
+ "value": "2185"
+ },
+ {
+ "label": "Global",
+ "value": "3162"
+ },
+ {
+ "label": "Go",
+ "value": "1793"
+ },
+ {
+ "label": "goallist",
+ "value": "2544"
+ },
+ {
+ "label": "Goblins",
+ "value": "627"
+ },
+ {
+ "label": "God",
+ "value": "839"
+ },
+ {
+ "label": "God-humanR",
+ "value": "465"
+ },
+ {
+ "label": "God&039",
+ "value": "2027"
+ },
+ {
+ "label": "GodandDevi",
+ "value": "1097"
+ },
+ {
+ "label": "Goddess",
+ "value": "1177"
+ },
+ {
+ "label": "goddessbos",
+ "value": "2238"
+ },
+ {
+ "label": "Goddesses",
+ "value": "166"
+ },
+ {
+ "label": "Goddidnotg",
+ "value": "2271"
+ },
+ {
+ "label": "GodLikeMC",
+ "value": "1006"
+ },
+ {
+ "label": "GodlyPower",
+ "value": "137"
+ },
+ {
+ "label": "GodlyPower",
+ "value": "1183"
+ },
+ {
+ "label": "GodlyProta",
+ "value": "1591"
+ },
+ {
+ "label": "godofduel",
+ "value": "1760"
+ },
+ {
+ "label": "GodofForti",
+ "value": "1848"
+ },
+ {
+ "label": "Godofwings",
+ "value": "2186"
+ },
+ {
+ "label": "GodProtago",
+ "value": "136"
+ },
+ {
+ "label": "Gods",
+ "value": "167"
+ },
+ {
+ "label": "godsaltedf",
+ "value": "2463"
+ },
+ {
+ "label": "Godzilla",
+ "value": "1311"
+ },
+ {
+ "label": "Golden",
+ "value": "2504"
+ },
+ {
+ "label": "GoldenFing",
+ "value": "769"
+ },
+ {
+ "label": "goldenfore",
+ "value": "2630"
+ },
+ {
+ "label": "goldfinger",
+ "value": "1792"
+ },
+ {
+ "label": "goldrush",
+ "value": "2893"
+ },
+ {
+ "label": "Golems",
+ "value": "1291"
+ },
+ {
+ "label": "GoneStrawb",
+ "value": "1928"
+ },
+ {
+ "label": "gongregret",
+ "value": "2871"
+ },
+ {
+ "label": "good-natur",
+ "value": "2528"
+ },
+ {
+ "label": "goodpotdre",
+ "value": "1721"
+ },
+ {
+ "label": "Goodvibes",
+ "value": "3040"
+ },
+ {
+ "label": "Gooifyouca",
+ "value": "2349"
+ },
+ {
+ "label": "Gore",
+ "value": "303"
+ },
+ {
+ "label": "goslowbro",
+ "value": "1712"
+ },
+ {
+ "label": "gossip",
+ "value": "1906"
+ },
+ {
+ "label": "Gotaki",
+ "value": "1942"
+ },
+ {
+ "label": "Gourmet",
+ "value": "1150"
+ },
+ {
+ "label": "Government",
+ "value": "1222"
+ },
+ {
+ "label": "GradeXNUMX",
+ "value": "1649"
+ },
+ {
+ "label": "GreatCeles",
+ "value": "2174"
+ },
+ {
+ "label": "GreatSage",
+ "value": "1880"
+ },
+ {
+ "label": "GreedyProt",
+ "value": "714"
+ },
+ {
+ "label": "greentea",
+ "value": "1629"
+ },
+ {
+ "label": "Grimdark",
+ "value": "631"
+ },
+ {
+ "label": "Grinding",
+ "value": "331"
+ },
+ {
+ "label": "GroupChat",
+ "value": "799"
+ },
+ {
+ "label": "Grouppampe",
+ "value": "3031"
+ },
+ {
+ "label": "GroupPet",
+ "value": "2771"
+ },
+ {
+ "label": "Groupspoil",
+ "value": "3007"
+ },
+ {
+ "label": "Growth",
+ "value": "1066"
+ },
+ {
+ "label": "Grupchat",
+ "value": "1054"
+ },
+ {
+ "label": "GuardianRe",
+ "value": "1272"
+ },
+ {
+ "label": "Guideverse",
+ "value": "2946"
+ },
+ {
+ "label": "Guilds",
+ "value": "482"
+ },
+ {
+ "label": "GuiltyScis",
+ "value": "2455"
+ },
+ {
+ "label": "Gundam",
+ "value": "1353"
+ },
+ {
+ "label": "Gunfighter",
+ "value": "559"
+ },
+ {
+ "label": "Guns",
+ "value": "1542"
+ },
+ {
+ "label": "GuShaoxia",
+ "value": "1707"
+ },
+ {
+ "label": "H11H",
+ "value": "2613"
+ },
+ {
+ "label": "Hacker",
+ "value": "1091"
+ },
+ {
+ "label": "Hackers",
+ "value": "188"
+ },
+ {
+ "label": "Haikyuu",
+ "value": "1393"
+ },
+ {
+ "label": "HakoniwaSe",
+ "value": "2255"
+ },
+ {
+ "label": "Half-human",
+ "value": "1406"
+ },
+ {
+ "label": "halfanoran",
+ "value": "2491"
+ },
+ {
+ "label": "halfstepge",
+ "value": "2345"
+ },
+ {
+ "label": "Halo",
+ "value": "1473"
+ },
+ {
+ "label": "Haminstant",
+ "value": "2563"
+ },
+ {
+ "label": "Handjob",
+ "value": "539"
+ },
+ {
+ "label": "Handsomegu",
+ "value": "2671"
+ },
+ {
+ "label": "HandsomeMa",
+ "value": "11"
+ },
+ {
+ "label": "HandsomeMa",
+ "value": "1256"
+ },
+ {
+ "label": "HandsomeMC",
+ "value": "3209"
+ },
+ {
+ "label": "handsomeon",
+ "value": "2487"
+ },
+ {
+ "label": "HandsomePr",
+ "value": "762"
+ },
+ {
+ "label": "handtearin",
+ "value": "2223"
+ },
+ {
+ "label": "HaotianExt",
+ "value": "2219"
+ },
+ {
+ "label": "HaoyuYingx",
+ "value": "2804"
+ },
+ {
+ "label": "Happy",
+ "value": "865"
+ },
+ {
+ "label": "HappyBeanl",
+ "value": "2032"
+ },
+ {
+ "label": "HappyEndin",
+ "value": "1477"
+ },
+ {
+ "label": "HappyFlow",
+ "value": "2702"
+ },
+ {
+ "label": "Hard-Worki",
+ "value": "103"
+ },
+ {
+ "label": "Hardworkin",
+ "value": "881"
+ },
+ {
+ "label": "Harem",
+ "value": "21"
+ },
+ {
+ "label": "Harem-seek",
+ "value": "138"
+ },
+ {
+ "label": "Haremismta",
+ "value": "2401"
+ },
+ {
+ "label": "HaremSeeki",
+ "value": "1176"
+ },
+ {
+ "label": "HarryPotte",
+ "value": "436"
+ },
+ {
+ "label": "HarshTrain",
+ "value": "952"
+ },
+ {
+ "label": "Hashihime",
+ "value": "1948"
+ },
+ {
+ "label": "HatedProta",
+ "value": "1407"
+ },
+ {
+ "label": "Hawkeye",
+ "value": "2189"
+ },
+ {
+ "label": "Healers",
+ "value": "577"
+ },
+ {
+ "label": "Healing",
+ "value": "1049"
+ },
+ {
+ "label": "Healthewor",
+ "value": "2182"
+ },
+ {
+ "label": "heartandey",
+ "value": "2494"
+ },
+ {
+ "label": "HeartBreak",
+ "value": "2895"
+ },
+ {
+ "label": "HeartHunte",
+ "value": "2556"
+ },
+ {
+ "label": "Heartthrob",
+ "value": "3038"
+ },
+ {
+ "label": "Heartwarmi",
+ "value": "57"
+ },
+ {
+ "label": "Heaven",
+ "value": "938"
+ },
+ {
+ "label": "heavenclea",
+ "value": "2405"
+ },
+ {
+ "label": "HeavenlyTr",
+ "value": "87"
+ },
+ {
+ "label": "heavensong",
+ "value": "2420"
+ },
+ {
+ "label": "Hegemony",
+ "value": "2763"
+ },
+ {
+ "label": "Hell",
+ "value": "543"
+ },
+ {
+ "label": "HelpfulPro",
+ "value": "503"
+ },
+ {
+ "label": "Hentai",
+ "value": "3192"
+ },
+ {
+ "label": "Herbalist",
+ "value": "1459"
+ },
+ {
+ "label": "Hero",
+ "value": "624"
+ },
+ {
+ "label": "Heroes",
+ "value": "462"
+ },
+ {
+ "label": "Heroesofth",
+ "value": "1808"
+ },
+ {
+ "label": "heroine",
+ "value": "1630"
+ },
+ {
+ "label": "Heterochro",
+ "value": "1262"
+ },
+ {
+ "label": "hey",
+ "value": "1950"
+ },
+ {
+ "label": "hi",
+ "value": "1844"
+ },
+ {
+ "label": "HiddenAbil",
+ "value": "190"
+ },
+ {
+ "label": "HiddenBoss",
+ "value": "1063"
+ },
+ {
+ "label": "HiddenGem",
+ "value": "2971"
+ },
+ {
+ "label": "HiddenIden",
+ "value": "1180"
+ },
+ {
+ "label": "HiddenIden",
+ "value": "696"
+ },
+ {
+ "label": "Hiddenmarr",
+ "value": "3010"
+ },
+ {
+ "label": "HiddenTrue",
+ "value": "745"
+ },
+ {
+ "label": "HiddenWeap",
+ "value": "3097"
+ },
+ {
+ "label": "HidingAbil",
+ "value": "1471"
+ },
+ {
+ "label": "HidingTrue",
+ "value": "191"
+ },
+ {
+ "label": "HidingTrue",
+ "value": "39"
+ },
+ {
+ "label": "HidingTrue",
+ "value": "855"
+ },
+ {
+ "label": "HidingTrue",
+ "value": "1584"
+ },
+ {
+ "label": "Highiq",
+ "value": "2981"
+ },
+ {
+ "label": "Highschool",
+ "value": "3194"
+ },
+ {
+ "label": "HighSchool",
+ "value": "879"
+ },
+ {
+ "label": "Higu",
+ "value": "1963"
+ },
+ {
+ "label": "HisMajesty",
+ "value": "2283"
+ },
+ {
+ "label": "Historical",
+ "value": "641"
+ },
+ {
+ "label": "Historical",
+ "value": "2966"
+ },
+ {
+ "label": "Historical",
+ "value": "3064"
+ },
+ {
+ "label": "History",
+ "value": "1496"
+ },
+ {
+ "label": "hitten",
+ "value": "2791"
+ },
+ {
+ "label": "Hogwarts",
+ "value": "1211"
+ },
+ {
+ "label": "Hokage",
+ "value": "1490"
+ },
+ {
+ "label": "Hollywood",
+ "value": "909"
+ },
+ {
+ "label": "holyangel",
+ "value": "1861"
+ },
+ {
+ "label": "HolyKingRa",
+ "value": "1676"
+ },
+ {
+ "label": "HomeAttrib",
+ "value": "2234"
+ },
+ {
+ "label": "HonestandR",
+ "value": "2507"
+ },
+ {
+ "label": "HonestProt",
+ "value": "903"
+ },
+ {
+ "label": "HongfeiQin",
+ "value": "2480"
+ },
+ {
+ "label": "HonghuangN",
+ "value": "2392"
+ },
+ {
+ "label": "Honghuangs",
+ "value": "2073"
+ },
+ {
+ "label": "HongmengSh",
+ "value": "1634"
+ },
+ {
+ "label": "HongTang",
+ "value": "1735"
+ },
+ {
+ "label": "HonkaiImpa",
+ "value": "976"
+ },
+ {
+ "label": "Horor",
+ "value": "3226"
+ },
+ {
+ "label": "horror",
+ "value": "699"
+ },
+ {
+ "label": "horrorgod",
+ "value": "2247"
+ },
+ {
+ "label": "Hospital",
+ "value": "439"
+ },
+ {
+ "label": "Hot-bloode",
+ "value": "426"
+ },
+ {
+ "label": "HotBlood",
+ "value": "2795"
+ },
+ {
+ "label": "hotpot",
+ "value": "2611"
+ },
+ {
+ "label": "houseprope",
+ "value": "2275"
+ },
+ {
+ "label": "howlingpig",
+ "value": "2164"
+ },
+ {
+ "label": "howlingwin",
+ "value": "2655"
+ },
+ {
+ "label": "HuanHuanHu",
+ "value": "1909"
+ },
+ {
+ "label": "Huijingund",
+ "value": "2102"
+ },
+ {
+ "label": "HuiMochou",
+ "value": "1847"
+ },
+ {
+ "label": "Human-Nonh",
+ "value": "321"
+ },
+ {
+ "label": "HumanExper",
+ "value": "312"
+ },
+ {
+ "label": "HumanExper",
+ "value": "1004"
+ },
+ {
+ "label": "HumanoidPr",
+ "value": "528"
+ },
+ {
+ "label": "HumanWeapo",
+ "value": "427"
+ },
+ {
+ "label": "Humiliatio",
+ "value": "3206"
+ },
+ {
+ "label": "humla",
+ "value": "2075"
+ },
+ {
+ "label": "Humour",
+ "value": "3109"
+ },
+ {
+ "label": "Hunter",
+ "value": "2837"
+ },
+ {
+ "label": "Hunter×Hu",
+ "value": "2780"
+ },
+ {
+ "label": "hunterkill",
+ "value": "1734"
+ },
+ {
+ "label": "Hunters",
+ "value": "500"
+ },
+ {
+ "label": "HunterxHun",
+ "value": "692"
+ },
+ {
+ "label": "HuTiandi",
+ "value": "2235"
+ },
+ {
+ "label": "HxH",
+ "value": "956"
+ },
+ {
+ "label": "hyperknigh",
+ "value": "1778"
+ },
+ {
+ "label": "Hypnotism",
+ "value": "860"
+ },
+ {
+ "label": "I&039ma",
+ "value": "2041"
+ },
+ {
+ "label": "I&039mo",
+ "value": "2208"
+ },
+ {
+ "label": "Iamapirate",
+ "value": "2175"
+ },
+ {
+ "label": "Iamarealdi",
+ "value": "2166"
+ },
+ {
+ "label": "IamAsi",
+ "value": "2625"
+ },
+ {
+ "label": "iamatravel",
+ "value": "1781"
+ },
+ {
+ "label": "Iamfifth",
+ "value": "2172"
+ },
+ {
+ "label": "IamGuanxi",
+ "value": "2286"
+ },
+ {
+ "label": "Iamhell",
+ "value": "2300"
+ },
+ {
+ "label": "IamHisMaje",
+ "value": "2151"
+ },
+ {
+ "label": "Iamnotaloc",
+ "value": "1865"
+ },
+ {
+ "label": "Iamolderth",
+ "value": "2125"
+ },
+ {
+ "label": "Iamoldwolf",
+ "value": "2575"
+ },
+ {
+ "label": "Iamthemurd",
+ "value": "2652"
+ },
+ {
+ "label": "Iamtheseak",
+ "value": "1751"
+ },
+ {
+ "label": "Iamtheseco",
+ "value": "2527"
+ },
+ {
+ "label": "Iamtwenty-",
+ "value": "2479"
+ },
+ {
+ "label": "Iateeightc",
+ "value": "2787"
+ },
+ {
+ "label": "Ibuprofen",
+ "value": "2456"
+ },
+ {
+ "label": "icalledthe",
+ "value": "1888"
+ },
+ {
+ "label": "IcedDurian",
+ "value": "2707"
+ },
+ {
+ "label": "icewalk",
+ "value": "1824"
+ },
+ {
+ "label": "IdentityCr",
+ "value": "122"
+ },
+ {
+ "label": "Idol",
+ "value": "845"
+ },
+ {
+ "label": "idon&03",
+ "value": "2049"
+ },
+ {
+ "label": "idropbaby",
+ "value": "1686"
+ },
+ {
+ "label": "ieatgrass",
+ "value": "2485"
+ },
+ {
+ "label": "Ifyoucango",
+ "value": "1973"
+ },
+ {
+ "label": "ihavethere",
+ "value": "2650"
+ },
+ {
+ "label": "Ijustwantt",
+ "value": "1757"
+ },
+ {
+ "label": "Iliveupsta",
+ "value": "1863"
+ },
+ {
+ "label": "Illigitima",
+ "value": "1315"
+ },
+ {
+ "label": "Ilo",
+ "value": "1639"
+ },
+ {
+ "label": "ilovewoo",
+ "value": "2585"
+ },
+ {
+ "label": "Immortal",
+ "value": "1045"
+ },
+ {
+ "label": "ImmortalBi",
+ "value": "2534"
+ },
+ {
+ "label": "ImmortalMa",
+ "value": "2660"
+ },
+ {
+ "label": "Immortals",
+ "value": "260"
+ },
+ {
+ "label": "imperialco",
+ "value": "1048"
+ },
+ {
+ "label": "ImperialEx",
+ "value": "2818"
+ },
+ {
+ "label": "ImperialFa",
+ "value": "1609"
+ },
+ {
+ "label": "ImperialHa",
+ "value": "344"
+ },
+ {
+ "label": "Imposter",
+ "value": "2980"
+ },
+ {
+ "label": "Incest",
+ "value": "453"
+ },
+ {
+ "label": "Incubus",
+ "value": "2810"
+ },
+ {
+ "label": "Indecisive",
+ "value": "359"
+ },
+ {
+ "label": "industrial",
+ "value": "2835"
+ },
+ {
+ "label": "Industrial",
+ "value": "560"
+ },
+ {
+ "label": "Industry",
+ "value": "818"
+ },
+ {
+ "label": "industryel",
+ "value": "2953"
+ },
+ {
+ "label": "Inferior",
+ "value": "2896"
+ },
+ {
+ "label": "Inferiorit",
+ "value": "262"
+ },
+ {
+ "label": "Infernalco",
+ "value": "1924"
+ },
+ {
+ "label": "infinite",
+ "value": "966"
+ },
+ {
+ "label": "InfiniteBu",
+ "value": "2053"
+ },
+ {
+ "label": "InfiniteFl",
+ "value": "822"
+ },
+ {
+ "label": "Infiniteme",
+ "value": "1883"
+ },
+ {
+ "label": "infinitesu",
+ "value": "2412"
+ },
+ {
+ "label": "infrastrac",
+ "value": "975"
+ },
+ {
+ "label": "Infrastruc",
+ "value": "989"
+ },
+ {
+ "label": "Inheritanc",
+ "value": "229"
+ },
+ {
+ "label": "Ink",
+ "value": "2681"
+ },
+ {
+ "label": "InnerVoice",
+ "value": "1242"
+ },
+ {
+ "label": "Inscriptio",
+ "value": "1413"
+ },
+ {
+ "label": "Insects",
+ "value": "244"
+ },
+ {
+ "label": "insitu",
+ "value": "2693"
+ },
+ {
+ "label": "Intelligen",
+ "value": "1534"
+ },
+ {
+ "label": "Intercept0",
+ "value": "1842"
+ },
+ {
+ "label": "Intercept0",
+ "value": "2684"
+ },
+ {
+ "label": "Interconne",
+ "value": "1360"
+ },
+ {
+ "label": "Interdimen",
+ "value": "423"
+ },
+ {
+ "label": "Interestel",
+ "value": "698"
+ },
+ {
+ "label": "Interstell",
+ "value": "710"
+ },
+ {
+ "label": "Introverte",
+ "value": "511"
+ },
+ {
+ "label": "Inuyasha",
+ "value": "2749"
+ },
+ {
+ "label": "Investigat",
+ "value": "1154"
+ },
+ {
+ "label": "Investigat",
+ "value": "885"
+ },
+ {
+ "label": "Investigat",
+ "value": "1513"
+ },
+ {
+ "label": "Invincibil",
+ "value": "3148"
+ },
+ {
+ "label": "Invincible",
+ "value": "3074"
+ },
+ {
+ "label": "Invincible",
+ "value": "1660"
+ },
+ {
+ "label": "Invincible",
+ "value": "1723"
+ },
+ {
+ "label": "Invincible",
+ "value": "1742"
+ },
+ {
+ "label": "Invincible",
+ "value": "1810"
+ },
+ {
+ "label": "IronMaiden",
+ "value": "2784"
+ },
+ {
+ "label": "ironpillar",
+ "value": "2187"
+ },
+ {
+ "label": "IronThanos",
+ "value": "2547"
+ },
+ {
+ "label": "Isekai",
+ "value": "983"
+ },
+ {
+ "label": "isitnecess",
+ "value": "1921"
+ },
+ {
+ "label": "Issekai",
+ "value": "3182"
+ },
+ {
+ "label": "Isuckbrown",
+ "value": "1949"
+ },
+ {
+ "label": "IsumiLily",
+ "value": "2347"
+ },
+ {
+ "label": "It&039s",
+ "value": "2039"
+ },
+ {
+ "label": "Itsdaybrea",
+ "value": "1962"
+ },
+ {
+ "label": "iwantmoney",
+ "value": "2315"
+ },
+ {
+ "label": "Iwanttobea",
+ "value": "2360"
+ },
+ {
+ "label": "Iwanttobeo",
+ "value": "2402"
+ },
+ {
+ "label": "iwanttoeat",
+ "value": "2697"
+ },
+ {
+ "label": "iwanttogot",
+ "value": "2514"
+ },
+ {
+ "label": "Iwishyouat",
+ "value": "1972"
+ },
+ {
+ "label": "JackieChan",
+ "value": "2750"
+ },
+ {
+ "label": "JackofAllT",
+ "value": "75"
+ },
+ {
+ "label": "jadeeveryy",
+ "value": "2198"
+ },
+ {
+ "label": "JangSeok-g",
+ "value": "1642"
+ },
+ {
+ "label": "Japan",
+ "value": "853"
+ },
+ {
+ "label": "Jazz",
+ "value": "2564"
+ },
+ {
+ "label": "Jealousy",
+ "value": "551"
+ },
+ {
+ "label": "jellyjelly",
+ "value": "2365"
+ },
+ {
+ "label": "Jianghu",
+ "value": "786"
+ },
+ {
+ "label": "Jiangshi",
+ "value": "406"
+ },
+ {
+ "label": "Jianjiamix",
+ "value": "2249"
+ },
+ {
+ "label": "JinglongTa",
+ "value": "2643"
+ },
+ {
+ "label": "Jiutianyu",
+ "value": "2029"
+ },
+ {
+ "label": "John117",
+ "value": "2508"
+ },
+ {
+ "label": "JoJo",
+ "value": "2740"
+ },
+ {
+ "label": "JoJo&03",
+ "value": "2741"
+ },
+ {
+ "label": "JOJOWE",
+ "value": "1806"
+ },
+ {
+ "label": "Josei",
+ "value": "876"
+ },
+ {
+ "label": "Journeytot",
+ "value": "677"
+ },
+ {
+ "label": "joydrummer",
+ "value": "1866"
+ },
+ {
+ "label": "Judge",
+ "value": "3063"
+ },
+ {
+ "label": "JujutsuKai",
+ "value": "675"
+ },
+ {
+ "label": "Juliet",
+ "value": "1658"
+ },
+ {
+ "label": "JunCaiXing",
+ "value": "2670"
+ },
+ {
+ "label": "JuniorSist",
+ "value": "2037"
+ },
+ {
+ "label": "Jurassic",
+ "value": "3158"
+ },
+ {
+ "label": "justshout",
+ "value": "2676"
+ },
+ {
+ "label": "K-popIdols",
+ "value": "1620"
+ },
+ {
+ "label": "Kafkajumpi",
+ "value": "1887"
+ },
+ {
+ "label": "Kakashi",
+ "value": "1491"
+ },
+ {
+ "label": "keytocome",
+ "value": "2323"
+ },
+ {
+ "label": "Kidnapping",
+ "value": "552"
+ },
+ {
+ "label": "Killer",
+ "value": "2982"
+ },
+ {
+ "label": "Killthewor",
+ "value": "2056"
+ },
+ {
+ "label": "Kindergart",
+ "value": "1370"
+ },
+ {
+ "label": "KindLoveIn",
+ "value": "544"
+ },
+ {
+ "label": "KindomBuil",
+ "value": "1027"
+ },
+ {
+ "label": "KindProtag",
+ "value": "1031"
+ },
+ {
+ "label": "King",
+ "value": "1745"
+ },
+ {
+ "label": "KingAsura",
+ "value": "2242"
+ },
+ {
+ "label": "Kingdom",
+ "value": "1236"
+ },
+ {
+ "label": "Kingdom-bu",
+ "value": "971"
+ },
+ {
+ "label": "KingdomBui",
+ "value": "245"
+ },
+ {
+ "label": "KingdomBui",
+ "value": "1293"
+ },
+ {
+ "label": "Kingdoms",
+ "value": "139"
+ },
+ {
+ "label": "KingdomsKn",
+ "value": "317"
+ },
+ {
+ "label": "KingKonggo",
+ "value": "2509"
+ },
+ {
+ "label": "kingofdeat",
+ "value": "2468"
+ },
+ {
+ "label": "KingofDest",
+ "value": "1674"
+ },
+ {
+ "label": "KingofMons",
+ "value": "2295"
+ },
+ {
+ "label": "kingpirate",
+ "value": "2044"
+ },
+ {
+ "label": "Kiritani",
+ "value": "2395"
+ },
+ {
+ "label": "Kneelingan",
+ "value": "2678"
+ },
+ {
+ "label": "Kneelingth",
+ "value": "2161"
+ },
+ {
+ "label": "KnifePromi",
+ "value": "1852"
+ },
+ {
+ "label": "Knight",
+ "value": "1559"
+ },
+ {
+ "label": "Knights",
+ "value": "389"
+ },
+ {
+ "label": "Knightsand",
+ "value": "3067"
+ },
+ {
+ "label": "KnightsLev",
+ "value": "417"
+ },
+ {
+ "label": "Knowtheric",
+ "value": "2335"
+ },
+ {
+ "label": "Koi",
+ "value": "1181"
+ },
+ {
+ "label": "Kojin",
+ "value": "2072"
+ },
+ {
+ "label": "KonohaVoll",
+ "value": "2403"
+ },
+ {
+ "label": "Korean",
+ "value": "3103"
+ },
+ {
+ "label": "KoreanNove",
+ "value": "652"
+ },
+ {
+ "label": "KpopIdols",
+ "value": "1337"
+ },
+ {
+ "label": "KurongTemp",
+ "value": "1858"
+ },
+ {
+ "label": "Kuudere",
+ "value": "1371"
+ },
+ {
+ "label": "KwunTong",
+ "value": "1898"
+ },
+ {
+ "label": "laborhonor",
+ "value": "2399"
+ },
+ {
+ "label": "lackofboat",
+ "value": "2120"
+ },
+ {
+ "label": "LackofComm",
+ "value": "340"
+ },
+ {
+ "label": "LacquerNig",
+ "value": "1955"
+ },
+ {
+ "label": "LaidBack",
+ "value": "2850"
+ },
+ {
+ "label": "LameHaoisa",
+ "value": "2162"
+ },
+ {
+ "label": "langyalist",
+ "value": "2292"
+ },
+ {
+ "label": "LaoLaoXu",
+ "value": "1922"
+ },
+ {
+ "label": "LateRomanc",
+ "value": "168"
+ },
+ {
+ "label": "laurel",
+ "value": "2058"
+ },
+ {
+ "label": "Lawyers",
+ "value": "545"
+ },
+ {
+ "label": "lazy",
+ "value": "2827"
+ },
+ {
+ "label": "lazydevil",
+ "value": "1976"
+ },
+ {
+ "label": "LazyProtag",
+ "value": "104"
+ },
+ {
+ "label": "Ldg",
+ "value": "3044"
+ },
+ {
+ "label": "Leadership",
+ "value": "419"
+ },
+ {
+ "label": "LeagueofLe",
+ "value": "1489"
+ },
+ {
+ "label": "Leapeveryd",
+ "value": "2197"
+ },
+ {
+ "label": "Legend",
+ "value": "1451"
+ },
+ {
+ "label": "Legends",
+ "value": "140"
+ },
+ {
+ "label": "LeiJiedoes",
+ "value": "1782"
+ },
+ {
+ "label": "Leisurelys",
+ "value": "2289"
+ },
+ {
+ "label": "LeiXunqing",
+ "value": "2798"
+ },
+ {
+ "label": "lemonandsi",
+ "value": "2149"
+ },
+ {
+ "label": "lendmefive",
+ "value": "2718"
+ },
+ {
+ "label": "lesstime",
+ "value": "1691"
+ },
+ {
+ "label": "Levelingup",
+ "value": "3088"
+ },
+ {
+ "label": "LevelSyste",
+ "value": "123"
+ },
+ {
+ "label": "Levelup",
+ "value": "2961"
+ },
+ {
+ "label": "Liar",
+ "value": "888"
+ },
+ {
+ "label": "Library",
+ "value": "1464"
+ },
+ {
+ "label": "Life",
+ "value": "2897"
+ },
+ {
+ "label": "LifeScript",
+ "value": "1323"
+ },
+ {
+ "label": "Lightnings",
+ "value": "2020"
+ },
+ {
+ "label": "Lightnovel",
+ "value": "2959"
+ },
+ {
+ "label": "LiJunhao",
+ "value": "2636"
+ },
+ {
+ "label": "LikeaDrago",
+ "value": "1752"
+ },
+ {
+ "label": "LikeaDrago",
+ "value": "1755"
+ },
+ {
+ "label": "LikeMeiAox",
+ "value": "2459"
+ },
+ {
+ "label": "Lillie",
+ "value": "2520"
+ },
+ {
+ "label": "LimitedLif",
+ "value": "285"
+ },
+ {
+ "label": "LimitlessF",
+ "value": "615"
+ },
+ {
+ "label": "LiMumu",
+ "value": "2155"
+ },
+ {
+ "label": "LinBei",
+ "value": "2620"
+ },
+ {
+ "label": "Lindentree",
+ "value": "2628"
+ },
+ {
+ "label": "Lingran",
+ "value": "1939"
+ },
+ {
+ "label": "LingshanIs",
+ "value": "2532"
+ },
+ {
+ "label": "LinXiufigh",
+ "value": "2539"
+ },
+ {
+ "label": "LinZhengyi",
+ "value": "2450"
+ },
+ {
+ "label": "ListAdvent",
+ "value": "2863"
+ },
+ {
+ "label": "ListCreati",
+ "value": "687"
+ },
+ {
+ "label": "listentoth",
+ "value": "2590"
+ },
+ {
+ "label": "literature",
+ "value": "632"
+ },
+ {
+ "label": "LitRPG",
+ "value": "3112"
+ },
+ {
+ "label": "littleahxi",
+ "value": "2054"
+ },
+ {
+ "label": "littlebrot",
+ "value": "2145"
+ },
+ {
+ "label": "Littlebun",
+ "value": "3073"
+ },
+ {
+ "label": "littlecray",
+ "value": "2703"
+ },
+ {
+ "label": "littledemo",
+ "value": "1990"
+ },
+ {
+ "label": "littledete",
+ "value": "2687"
+ },
+ {
+ "label": "littledevi",
+ "value": "2211"
+ },
+ {
+ "label": "littlefing",
+ "value": "2239"
+ },
+ {
+ "label": "littlefox",
+ "value": "2007"
+ },
+ {
+ "label": "littlehson",
+ "value": "1851"
+ },
+ {
+ "label": "littlemoon",
+ "value": "1893"
+ },
+ {
+ "label": "littlesuns",
+ "value": "2176"
+ },
+ {
+ "label": "littlewate",
+ "value": "2727"
+ },
+ {
+ "label": "LittleWhit",
+ "value": "2836"
+ },
+ {
+ "label": "littlewind",
+ "value": "2429"
+ },
+ {
+ "label": "littlezlov",
+ "value": "1884"
+ },
+ {
+ "label": "LiuYujun",
+ "value": "2280"
+ },
+ {
+ "label": "LiveBroadc",
+ "value": "650"
+ },
+ {
+ "label": "LiveBroadc",
+ "value": "1578"
+ },
+ {
+ "label": "LiverPigeo",
+ "value": "1877"
+ },
+ {
+ "label": "Livestream",
+ "value": "700"
+ },
+ {
+ "label": "LiveStream",
+ "value": "1207"
+ },
+ {
+ "label": "LivingAlon",
+ "value": "399"
+ },
+ {
+ "label": "LiWudi",
+ "value": "1725"
+ },
+ {
+ "label": "Loli",
+ "value": "1483"
+ },
+ {
+ "label": "Lolicon",
+ "value": "313"
+ },
+ {
+ "label": "LoliProtag",
+ "value": "1106"
+ },
+ {
+ "label": "LoneCloudP",
+ "value": "2094"
+ },
+ {
+ "label": "lonelyboy",
+ "value": "2359"
+ },
+ {
+ "label": "LonelyCity",
+ "value": "1859"
+ },
+ {
+ "label": "Lonelynota",
+ "value": "1838"
+ },
+ {
+ "label": "LonerProta",
+ "value": "364"
+ },
+ {
+ "label": "Long-dista",
+ "value": "1461"
+ },
+ {
+ "label": "longlivedm",
+ "value": "2735"
+ },
+ {
+ "label": "longlivemy",
+ "value": "2316"
+ },
+ {
+ "label": "Longlivesa",
+ "value": "2435"
+ },
+ {
+ "label": "Longliveth",
+ "value": "2297"
+ },
+ {
+ "label": "Longliveth",
+ "value": "2531"
+ },
+ {
+ "label": "LongMengme",
+ "value": "2140"
+ },
+ {
+ "label": "Longpigeon",
+ "value": "2245"
+ },
+ {
+ "label": "LongSepara",
+ "value": "223"
+ },
+ {
+ "label": "LongStrip",
+ "value": "2864"
+ },
+ {
+ "label": "Lord",
+ "value": "1536"
+ },
+ {
+ "label": "LordAbilit",
+ "value": "1328"
+ },
+ {
+ "label": "LordGodSpa",
+ "value": "1189"
+ },
+ {
+ "label": "LordoftheM",
+ "value": "1112"
+ },
+ {
+ "label": "LordoftheS",
+ "value": "1829"
+ },
+ {
+ "label": "LordTiansh",
+ "value": "2488"
+ },
+ {
+ "label": "LordZhangj",
+ "value": "2190"
+ },
+ {
+ "label": "Loseafewpo",
+ "value": "1775"
+ },
+ {
+ "label": "LostCivili",
+ "value": "42"
+ },
+ {
+ "label": "Lottery",
+ "value": "572"
+ },
+ {
+ "label": "Love",
+ "value": "1083"
+ },
+ {
+ "label": "Loveafterm",
+ "value": "2977"
+ },
+ {
+ "label": "LoveandMar",
+ "value": "990"
+ },
+ {
+ "label": "LoveatFirs",
+ "value": "527"
+ },
+ {
+ "label": "Lovecomedy",
+ "value": "2940"
+ },
+ {
+ "label": "LoveContra",
+ "value": "1178"
+ },
+ {
+ "label": "LoveGrowth",
+ "value": "1532"
+ },
+ {
+ "label": "LoveIntere",
+ "value": "12"
+ },
+ {
+ "label": "LoveIntere",
+ "value": "1231"
+ },
+ {
+ "label": "LoveIntere",
+ "value": "1260"
+ },
+ {
+ "label": "LoveRivals",
+ "value": "948"
+ },
+ {
+ "label": "LoversReun",
+ "value": "443"
+ },
+ {
+ "label": "Lovesnacks",
+ "value": "2042"
+ },
+ {
+ "label": "lovetease",
+ "value": "2666"
+ },
+ {
+ "label": "Lovetriang",
+ "value": "3027"
+ },
+ {
+ "label": "LoveTriang",
+ "value": "848"
+ },
+ {
+ "label": "Low-keylux",
+ "value": "2699"
+ },
+ {
+ "label": "Low-keyPro",
+ "value": "22"
+ },
+ {
+ "label": "LowKeyMc",
+ "value": "1615"
+ },
+ {
+ "label": "LowkeyProt",
+ "value": "960"
+ },
+ {
+ "label": "LoyalProta",
+ "value": "831"
+ },
+ {
+ "label": "LoyalSubor",
+ "value": "341"
+ },
+ {
+ "label": "LoyalSubor",
+ "value": "2814"
+ },
+ {
+ "label": "LoyalSurbo",
+ "value": "1202"
+ },
+ {
+ "label": "lu11034363",
+ "value": "2612"
+ },
+ {
+ "label": "Luck",
+ "value": "1182"
+ },
+ {
+ "label": "LuckPlunde",
+ "value": "1322"
+ },
+ {
+ "label": "Lucky",
+ "value": "2873"
+ },
+ {
+ "label": "LuckyProta",
+ "value": "207"
+ },
+ {
+ "label": "LuDehua",
+ "value": "1985"
+ },
+ {
+ "label": "LuoTianyi",
+ "value": "1716"
+ },
+ {
+ "label": "LuoWei",
+ "value": "1846"
+ },
+ {
+ "label": "LuoXIV",
+ "value": "2407"
+ },
+ {
+ "label": "LuoYuqianq",
+ "value": "2633"
+ },
+ {
+ "label": "LY",
+ "value": "2324"
+ },
+ {
+ "label": "machine",
+ "value": "2922"
+ },
+ {
+ "label": "Mafia",
+ "value": "1533"
+ },
+ {
+ "label": "Mag",
+ "value": "3157"
+ },
+ {
+ "label": "Mage",
+ "value": "763"
+ },
+ {
+ "label": "Magic",
+ "value": "141"
+ },
+ {
+ "label": "MagicalAbi",
+ "value": "1017"
+ },
+ {
+ "label": "MagicalBat",
+ "value": "1188"
+ },
+ {
+ "label": "magicalgir",
+ "value": "1358"
+ },
+ {
+ "label": "MagicalSpa",
+ "value": "79"
+ },
+ {
+ "label": "MagicalTec",
+ "value": "400"
+ },
+ {
+ "label": "MagicBeast",
+ "value": "242"
+ },
+ {
+ "label": "MagicDrago",
+ "value": "3091"
+ },
+ {
+ "label": "MagicForma",
+ "value": "77"
+ },
+ {
+ "label": "MagicOne",
+ "value": "2478"
+ },
+ {
+ "label": "MagicTides",
+ "value": "2244"
+ },
+ {
+ "label": "MagicWorld",
+ "value": "1625"
+ },
+ {
+ "label": "Maid",
+ "value": "1160"
+ },
+ {
+ "label": "Maids",
+ "value": "531"
+ },
+ {
+ "label": "Makeafortu",
+ "value": "2517"
+ },
+ {
+ "label": "makeamirac",
+ "value": "2109"
+ },
+ {
+ "label": "Male-Lead",
+ "value": "940"
+ },
+ {
+ "label": "Male-Prota",
+ "value": "980"
+ },
+ {
+ "label": "MaleLead",
+ "value": "790"
+ },
+ {
+ "label": "MaleMain-l",
+ "value": "722"
+ },
+ {
+ "label": "Malemainch",
+ "value": "2736"
+ },
+ {
+ "label": "MaleMc",
+ "value": "1199"
+ },
+ {
+ "label": "Maleprotag",
+ "value": "825"
+ },
+ {
+ "label": "MaleProtag",
+ "value": "23"
+ },
+ {
+ "label": "MaleProtag",
+ "value": "2759"
+ },
+ {
+ "label": "MaleProtag",
+ "value": "988"
+ },
+ {
+ "label": "MaleProtag",
+ "value": "1507"
+ },
+ {
+ "label": "MaletoFema",
+ "value": "563"
+ },
+ {
+ "label": "MaleYander",
+ "value": "515"
+ },
+ {
+ "label": "mambafight",
+ "value": "2597"
+ },
+ {
+ "label": "man",
+ "value": "2048"
+ },
+ {
+ "label": "Management",
+ "value": "464"
+ },
+ {
+ "label": "Mangaka",
+ "value": "1374"
+ },
+ {
+ "label": "MangoKK",
+ "value": "2293"
+ },
+ {
+ "label": "Manhua",
+ "value": "2865"
+ },
+ {
+ "label": "maninnarut",
+ "value": "2337"
+ },
+ {
+ "label": "Manipulati",
+ "value": "607"
+ },
+ {
+ "label": "Manipulati",
+ "value": "1057"
+ },
+ {
+ "label": "ManlyGayCo",
+ "value": "995"
+ },
+ {
+ "label": "mapleleafb",
+ "value": "2354"
+ },
+ {
+ "label": "MarquisofB",
+ "value": "1805"
+ },
+ {
+ "label": "Marriage",
+ "value": "46"
+ },
+ {
+ "label": "MarriageCo",
+ "value": "1138"
+ },
+ {
+ "label": "Marriageof",
+ "value": "401"
+ },
+ {
+ "label": "Married",
+ "value": "735"
+ },
+ {
+ "label": "MarriedCou",
+ "value": "1367"
+ },
+ {
+ "label": "Martialart",
+ "value": "51"
+ },
+ {
+ "label": "Martialart",
+ "value": "3235"
+ },
+ {
+ "label": "MartialArt",
+ "value": "1046"
+ },
+ {
+ "label": "MartialSpi",
+ "value": "231"
+ },
+ {
+ "label": "MartialSpi",
+ "value": "962"
+ },
+ {
+ "label": "Marvel",
+ "value": "342"
+ },
+ {
+ "label": "MarvelKing",
+ "value": "1960"
+ },
+ {
+ "label": "MarvelPudd",
+ "value": "2416"
+ },
+ {
+ "label": "MarvelUniv",
+ "value": "343"
+ },
+ {
+ "label": "marvelworl",
+ "value": "1631"
+ },
+ {
+ "label": "Marysue",
+ "value": "3033"
+ },
+ {
+ "label": "MaskedAce",
+ "value": "1715"
+ },
+ {
+ "label": "MaskedArmo",
+ "value": "2548"
+ },
+ {
+ "label": "Masochisti",
+ "value": "365"
+ },
+ {
+ "label": "Masquerade",
+ "value": "2103"
+ },
+ {
+ "label": "Massive",
+ "value": "1606"
+ },
+ {
+ "label": "MassiveHar",
+ "value": "1561"
+ },
+ {
+ "label": "Master-App",
+ "value": "740"
+ },
+ {
+ "label": "Master-Dis",
+ "value": "24"
+ },
+ {
+ "label": "Master-Ser",
+ "value": "518"
+ },
+ {
+ "label": "Masterball",
+ "value": "2134"
+ },
+ {
+ "label": "MasterofSi",
+ "value": "2688"
+ },
+ {
+ "label": "Masturbati",
+ "value": "366"
+ },
+ {
+ "label": "Matchmadei",
+ "value": "1347"
+ },
+ {
+ "label": "math",
+ "value": "1633"
+ },
+ {
+ "label": "Matriarchy",
+ "value": "715"
+ },
+ {
+ "label": "Mature",
+ "value": "2824"
+ },
+ {
+ "label": "MatureProt",
+ "value": "383"
+ },
+ {
+ "label": "MCStrongFr",
+ "value": "1098"
+ },
+ {
+ "label": "Mecha",
+ "value": "618"
+ },
+ {
+ "label": "MechDesign",
+ "value": "2963"
+ },
+ {
+ "label": "Mechs",
+ "value": "2962"
+ },
+ {
+ "label": "Medical",
+ "value": "2881"
+ },
+ {
+ "label": "medicalfem",
+ "value": "2950"
+ },
+ {
+ "label": "MedicalKno",
+ "value": "114"
+ },
+ {
+ "label": "MedicalKno",
+ "value": "1622"
+ },
+ {
+ "label": "Medicine",
+ "value": "614"
+ },
+ {
+ "label": "medicineme",
+ "value": "2571"
+ },
+ {
+ "label": "Medieval",
+ "value": "590"
+ },
+ {
+ "label": "meetthebea",
+ "value": "2013"
+ },
+ {
+ "label": "MemoryLoss",
+ "value": "1107"
+ },
+ {
+ "label": "MemoryReve",
+ "value": "1352"
+ },
+ {
+ "label": "MentalIlln",
+ "value": "1665"
+ },
+ {
+ "label": "Meowingbig",
+ "value": "1938"
+ },
+ {
+ "label": "meowmeow",
+ "value": "1932"
+ },
+ {
+ "label": "Mercenarie",
+ "value": "211"
+ },
+ {
+ "label": "Mercenary",
+ "value": "629"
+ },
+ {
+ "label": "Merchant",
+ "value": "2744"
+ },
+ {
+ "label": "Merchants",
+ "value": "1411"
+ },
+ {
+ "label": "Merging",
+ "value": "3071"
+ },
+ {
+ "label": "mermaid",
+ "value": "2734"
+ },
+ {
+ "label": "Middleage",
+ "value": "1011"
+ },
+ {
+ "label": "MiddleAges",
+ "value": "3211"
+ },
+ {
+ "label": "Milf",
+ "value": "3202"
+ },
+ {
+ "label": "Military",
+ "value": "13"
+ },
+ {
+ "label": "Milkgather",
+ "value": "2713"
+ },
+ {
+ "label": "milkgrandm",
+ "value": "2154"
+ },
+ {
+ "label": "Millionair",
+ "value": "1024"
+ },
+ {
+ "label": "millionord",
+ "value": "2231"
+ },
+ {
+ "label": "Miluo",
+ "value": "2124"
+ },
+ {
+ "label": "Mimicry",
+ "value": "1312"
+ },
+ {
+ "label": "MindBreak",
+ "value": "1403"
+ },
+ {
+ "label": "MindContro",
+ "value": "221"
+ },
+ {
+ "label": "MindReader",
+ "value": "1064"
+ },
+ {
+ "label": "mindreadin",
+ "value": "2730"
+ },
+ {
+ "label": "MingDynast",
+ "value": "2845"
+ },
+ {
+ "label": "Mingjiao",
+ "value": "1797"
+ },
+ {
+ "label": "MingjiaoTi",
+ "value": "1879"
+ },
+ {
+ "label": "Ministryof",
+ "value": "1212"
+ },
+ {
+ "label": "Miracledoc",
+ "value": "2956"
+ },
+ {
+ "label": "Mismatched",
+ "value": "847"
+ },
+ {
+ "label": "Mistresspl",
+ "value": "2015"
+ },
+ {
+ "label": "MistyFlyin",
+ "value": "2057"
+ },
+ {
+ "label": "Misunderst",
+ "value": "1009"
+ },
+ {
+ "label": "Misunderst",
+ "value": "80"
+ },
+ {
+ "label": "Misunderst",
+ "value": "1165"
+ },
+ {
+ "label": "Misunderst",
+ "value": "1604"
+ },
+ {
+ "label": "mixedintwo",
+ "value": "2481"
+ },
+ {
+ "label": "MMORPG",
+ "value": "337"
+ },
+ {
+ "label": "Mob",
+ "value": "1185"
+ },
+ {
+ "label": "MobProtago",
+ "value": "409"
+ },
+ {
+ "label": "Models",
+ "value": "444"
+ },
+ {
+ "label": "ModerDays",
+ "value": "967"
+ },
+ {
+ "label": "Modern",
+ "value": "414"
+ },
+ {
+ "label": "ModernDay",
+ "value": "3"
+ },
+ {
+ "label": "ModernDays",
+ "value": "797"
+ },
+ {
+ "label": "modernfant",
+ "value": "2852"
+ },
+ {
+ "label": "Modernhist",
+ "value": "1543"
+ },
+ {
+ "label": "ModernKnow",
+ "value": "48"
+ },
+ {
+ "label": "ModernLife",
+ "value": "2767"
+ },
+ {
+ "label": "modernlove",
+ "value": "1632"
+ },
+ {
+ "label": "ModernRoma",
+ "value": "1378"
+ },
+ {
+ "label": "ModernWorl",
+ "value": "276"
+ },
+ {
+ "label": "Moe",
+ "value": "3003"
+ },
+ {
+ "label": "Moedye",
+ "value": "2672"
+ },
+ {
+ "label": "MoeShinkaw",
+ "value": "2788"
+ },
+ {
+ "label": "Mofamily",
+ "value": "2498"
+ },
+ {
+ "label": "MojiaAeros",
+ "value": "2253"
+ },
+ {
+ "label": "MojiaHills",
+ "value": "2214"
+ },
+ {
+ "label": "Mojunsheep",
+ "value": "1677"
+ },
+ {
+ "label": "MoneyGrubb",
+ "value": "230"
+ },
+ {
+ "label": "MoneyGrumb",
+ "value": "907"
+ },
+ {
+ "label": "Moneylaund",
+ "value": "1544"
+ },
+ {
+ "label": "Monogamy",
+ "value": "910"
+ },
+ {
+ "label": "Monster",
+ "value": "935"
+ },
+ {
+ "label": "MonsterCat",
+ "value": "3159"
+ },
+ {
+ "label": "MonsterGir",
+ "value": "357"
+ },
+ {
+ "label": "Monstergro",
+ "value": "3108"
+ },
+ {
+ "label": "Monsters",
+ "value": "161"
+ },
+ {
+ "label": "MonsterTam",
+ "value": "81"
+ },
+ {
+ "label": "MonsterTar",
+ "value": "1276"
+ },
+ {
+ "label": "moonbug",
+ "value": "1783"
+ },
+ {
+ "label": "MoonlightS",
+ "value": "2535"
+ },
+ {
+ "label": "Moonlikeah",
+ "value": "2325"
+ },
+ {
+ "label": "Moonsea",
+ "value": "1774"
+ },
+ {
+ "label": "Moonwing",
+ "value": "1640"
+ },
+ {
+ "label": "Morallessp",
+ "value": "1350"
+ },
+ {
+ "label": "MorallyAmb",
+ "value": "1075"
+ },
+ {
+ "label": "moreandmor",
+ "value": "2080"
+ },
+ {
+ "label": "Mostertami",
+ "value": "3133"
+ },
+ {
+ "label": "Motherland",
+ "value": "2792"
+ },
+ {
+ "label": "Motivation",
+ "value": "2957"
+ },
+ {
+ "label": "Mountainsa",
+ "value": "1709"
+ },
+ {
+ "label": "Mountainsa",
+ "value": "2002"
+ },
+ {
+ "label": "MovieDirec",
+ "value": "1517"
+ },
+ {
+ "label": "Movies",
+ "value": "250"
+ },
+ {
+ "label": "movingbean",
+ "value": "1987"
+ },
+ {
+ "label": "MoXueqing",
+ "value": "1882"
+ },
+ {
+ "label": "Moyangison",
+ "value": "2447"
+ },
+ {
+ "label": "Mpreg",
+ "value": "402"
+ },
+ {
+ "label": "Mr.EasyPro",
+ "value": "1831"
+ },
+ {
+ "label": "Mr.Huo",
+ "value": "2421"
+ },
+ {
+ "label": "MrMo",
+ "value": "1652"
+ },
+ {
+ "label": "MrSly",
+ "value": "1213"
+ },
+ {
+ "label": "MsPerfect",
+ "value": "1214"
+ },
+ {
+ "label": "mudbodhisa",
+ "value": "2078"
+ },
+ {
+ "label": "Mukbang",
+ "value": "1240"
+ },
+ {
+ "label": "MultipleBo",
+ "value": "1005"
+ },
+ {
+ "label": "MultipleBo",
+ "value": "3062"
+ },
+ {
+ "label": "MultipleCP",
+ "value": "766"
+ },
+ {
+ "label": "MultipleHi",
+ "value": "911"
+ },
+ {
+ "label": "Multipleid",
+ "value": "1335"
+ },
+ {
+ "label": "MultipleId",
+ "value": "412"
+ },
+ {
+ "label": "Multiplele",
+ "value": "3111"
+ },
+ {
+ "label": "Multiplele",
+ "value": "3085"
+ },
+ {
+ "label": "MultipleMo",
+ "value": "882"
+ },
+ {
+ "label": "MultiplePe",
+ "value": "743"
+ },
+ {
+ "label": "MultiplePo",
+ "value": "802"
+ },
+ {
+ "label": "MultiplePO",
+ "value": "171"
+ },
+ {
+ "label": "MultiplePr",
+ "value": "490"
+ },
+ {
+ "label": "multiplere",
+ "value": "1257"
+ },
+ {
+ "label": "MultipleRe",
+ "value": "94"
+ },
+ {
+ "label": "MultipleRe",
+ "value": "508"
+ },
+ {
+ "label": "MultipleTi",
+ "value": "411"
+ },
+ {
+ "label": "MultipleTr",
+ "value": "509"
+ },
+ {
+ "label": "MultipleTr",
+ "value": "764"
+ },
+ {
+ "label": "MultipleVe",
+ "value": "1040"
+ },
+ {
+ "label": "MultipleWo",
+ "value": "858"
+ },
+ {
+ "label": "MultipleWo",
+ "value": "1223"
+ },
+ {
+ "label": "Multiverse",
+ "value": "1111"
+ },
+ {
+ "label": "Multiworld",
+ "value": "3113"
+ },
+ {
+ "label": "Munchkin",
+ "value": "3219"
+ },
+ {
+ "label": "Murder",
+ "value": "124"
+ },
+ {
+ "label": "Murders",
+ "value": "595"
+ },
+ {
+ "label": "Music",
+ "value": "251"
+ },
+ {
+ "label": "musicwilll",
+ "value": "1767"
+ },
+ {
+ "label": "mustdo",
+ "value": "2060"
+ },
+ {
+ "label": "Mutan",
+ "value": "1174"
+ },
+ {
+ "label": "MutantPowe",
+ "value": "929"
+ },
+ {
+ "label": "Mutatedbea",
+ "value": "3181"
+ },
+ {
+ "label": "MutatedCre",
+ "value": "533"
+ },
+ {
+ "label": "Mutation",
+ "value": "856"
+ },
+ {
+ "label": "Mutations",
+ "value": "216"
+ },
+ {
+ "label": "MuteCharac",
+ "value": "1410"
+ },
+ {
+ "label": "Mutualcrus",
+ "value": "874"
+ },
+ {
+ "label": "MxM",
+ "value": "2887"
+ },
+ {
+ "label": "MyHeroAcad",
+ "value": "693"
+ },
+ {
+ "label": "mylittlesi",
+ "value": "2079"
+ },
+ {
+ "label": "MyLubanThi",
+ "value": "2503"
+ },
+ {
+ "label": "MynameisDa",
+ "value": "1929"
+ },
+ {
+ "label": "mynameista",
+ "value": "2127"
+ },
+ {
+ "label": "mysteries",
+ "value": "2840"
+ },
+ {
+ "label": "Mysterious",
+ "value": "332"
+ },
+ {
+ "label": "Mysterious",
+ "value": "1357"
+ },
+ {
+ "label": "Mysterious",
+ "value": "176"
+ },
+ {
+ "label": "Mysterious",
+ "value": "1621"
+ },
+ {
+ "label": "Mystery",
+ "value": "701"
+ },
+ {
+ "label": "MysterySol",
+ "value": "424"
+ },
+ {
+ "label": "Mystical",
+ "value": "1458"
+ },
+ {
+ "label": "Myth",
+ "value": "3054"
+ },
+ {
+ "label": "Mythical",
+ "value": "592"
+ },
+ {
+ "label": "MythicalBe",
+ "value": "142"
+ },
+ {
+ "label": "mythicalfi",
+ "value": "2454"
+ },
+ {
+ "label": "mythicalma",
+ "value": "2296"
+ },
+ {
+ "label": "Mythology",
+ "value": "143"
+ },
+ {
+ "label": "mythunpara",
+ "value": "2264"
+ },
+ {
+ "label": "mywife",
+ "value": "2303"
+ },
+ {
+ "label": "mywifeisya",
+ "value": "2635"
+ },
+ {
+ "label": "NA",
+ "value": "613"
+ },
+ {
+ "label": "NaiveProta",
+ "value": "82"
+ },
+ {
+ "label": "NangongHan",
+ "value": "1975"
+ },
+ {
+ "label": "Nanshen",
+ "value": "2163"
+ },
+ {
+ "label": "Napoleon",
+ "value": "1081"
+ },
+ {
+ "label": "Narcissist",
+ "value": "565"
+ },
+ {
+ "label": "Naruto",
+ "value": "116"
+ },
+ {
+ "label": "narutoceda",
+ "value": "2334"
+ },
+ {
+ "label": "NarutoClou",
+ "value": "2330"
+ },
+ {
+ "label": "NarutoQuiz",
+ "value": "2340"
+ },
+ {
+ "label": "NarutoxRea",
+ "value": "2460"
+ },
+ {
+ "label": "Nationalis",
+ "value": "110"
+ },
+ {
+ "label": "NationBuil",
+ "value": "1626"
+ },
+ {
+ "label": "Navy",
+ "value": "1359"
+ },
+ {
+ "label": "NBA",
+ "value": "459"
+ },
+ {
+ "label": "Near-Death",
+ "value": "83"
+ },
+ {
+ "label": "Necromance",
+ "value": "574"
+ },
+ {
+ "label": "Necromancy",
+ "value": "2939"
+ },
+ {
+ "label": "Neet",
+ "value": "1433"
+ },
+ {
+ "label": "Nerd",
+ "value": "1518"
+ },
+ {
+ "label": "Netorare",
+ "value": "360"
+ },
+ {
+ "label": "Netori",
+ "value": "84"
+ },
+ {
+ "label": "neverfail",
+ "value": "2442"
+ },
+ {
+ "label": "NiangkouSa",
+ "value": "2202"
+ },
+ {
+ "label": "Nidouzi",
+ "value": "2462"
+ },
+ {
+ "label": "nightdance",
+ "value": "2602"
+ },
+ {
+ "label": "nightfire",
+ "value": "1714"
+ },
+ {
+ "label": "Nightmare",
+ "value": "125"
+ },
+ {
+ "label": "Nightmares",
+ "value": "890"
+ },
+ {
+ "label": "nightsilen",
+ "value": "1738"
+ },
+ {
+ "label": "Nine-color",
+ "value": "2288"
+ },
+ {
+ "label": "Nine-Taile",
+ "value": "2038"
+ },
+ {
+ "label": "NinefoldSe",
+ "value": "1809"
+ },
+ {
+ "label": "NineWarsof",
+ "value": "1931"
+ },
+ {
+ "label": "ninja",
+ "value": "1375"
+ },
+ {
+ "label": "Ninjapirat",
+ "value": "1718"
+ },
+ {
+ "label": "Ninjas",
+ "value": "247"
+ },
+ {
+ "label": "NiuBao",
+ "value": "1936"
+ },
+ {
+ "label": "No-Harem",
+ "value": "3079"
+ },
+ {
+ "label": "no-misunde",
+ "value": "3137"
+ },
+ {
+ "label": "Nobility",
+ "value": "1537"
+ },
+ {
+ "label": "Noble",
+ "value": "1203"
+ },
+ {
+ "label": "Nobles",
+ "value": "172"
+ },
+ {
+ "label": "NoblesPoli",
+ "value": "2933"
+ },
+ {
+ "label": "Nocheats",
+ "value": "3172"
+ },
+ {
+ "label": "NoCp",
+ "value": "1208"
+ },
+ {
+ "label": "NoGoldFing",
+ "value": "2918"
+ },
+ {
+ "label": "NoHarem",
+ "value": "832"
+ },
+ {
+ "label": "Noless",
+ "value": "2576"
+ },
+ {
+ "label": "Non-HumanM",
+ "value": "2937"
+ },
+ {
+ "label": "Non-humano",
+ "value": "281"
+ },
+ {
+ "label": "Non-humanP",
+ "value": "1382"
+ },
+ {
+ "label": "Non-System",
+ "value": "654"
+ },
+ {
+ "label": "noncat",
+ "value": "2461"
+ },
+ {
+ "label": "NonHuman",
+ "value": "1623"
+ },
+ {
+ "label": "NonHumanPr",
+ "value": "1132"
+ },
+ {
+ "label": "NoPairing",
+ "value": "803"
+ },
+ {
+ "label": "NoRomance",
+ "value": "672"
+ },
+ {
+ "label": "Nosnacks",
+ "value": "1933"
+ },
+ {
+ "label": "NoSystem",
+ "value": "1131"
+ },
+ {
+ "label": "notlevelth",
+ "value": "2439"
+ },
+ {
+ "label": "notscary",
+ "value": "2342"
+ },
+ {
+ "label": "Novel",
+ "value": "3238"
+ },
+ {
+ "label": "Nowadays",
+ "value": "2482"
+ },
+ {
+ "label": "Npc",
+ "value": "3165"
+ },
+ {
+ "label": "NSFW",
+ "value": "3200"
+ },
+ {
+ "label": "NTL",
+ "value": "2936"
+ },
+ {
+ "label": "Nurses",
+ "value": "440"
+ },
+ {
+ "label": "Obanbrothe",
+ "value": "2009"
+ },
+ {
+ "label": "Obsession",
+ "value": "2851"
+ },
+ {
+ "label": "ObsessiveL",
+ "value": "468"
+ },
+ {
+ "label": "offical",
+ "value": "2756"
+ },
+ {
+ "label": "OfficeRoma",
+ "value": "578"
+ },
+ {
+ "label": "Official",
+ "value": "2874"
+ },
+ {
+ "label": "Officialdo",
+ "value": "1545"
+ },
+ {
+ "label": "Officialwo",
+ "value": "3237"
+ },
+ {
+ "label": "ohmygod",
+ "value": "2307"
+ },
+ {
+ "label": "oldage",
+ "value": "1761"
+ },
+ {
+ "label": "olddemon",
+ "value": "1983"
+ },
+ {
+ "label": "Olderlovei",
+ "value": "2900"
+ },
+ {
+ "label": "OlderLoveI",
+ "value": "177"
+ },
+ {
+ "label": "oldfaceunc",
+ "value": "2579"
+ },
+ {
+ "label": "oldfisheat",
+ "value": "1899"
+ },
+ {
+ "label": "Oldghostsm",
+ "value": "2319"
+ },
+ {
+ "label": "OldQinpeop",
+ "value": "1853"
+ },
+ {
+ "label": "oldtombrob",
+ "value": "2343"
+ },
+ {
+ "label": "omega",
+ "value": "2911"
+ },
+ {
+ "label": "Omegaverse",
+ "value": "14"
+ },
+ {
+ "label": "On-HookSys",
+ "value": "1220"
+ },
+ {
+ "label": "One-Piece",
+ "value": "2732"
+ },
+ {
+ "label": "Oneflower",
+ "value": "2593"
+ },
+ {
+ "label": "OneLeafRed",
+ "value": "2375"
+ },
+ {
+ "label": "onemelonri",
+ "value": "2595"
+ },
+ {
+ "label": "onemeterst",
+ "value": "2675"
+ },
+ {
+ "label": "Onenightst",
+ "value": "3046"
+ },
+ {
+ "label": "OnePiece",
+ "value": "117"
+ },
+ {
+ "label": "Onepunch",
+ "value": "1596"
+ },
+ {
+ "label": "OnePunchMa",
+ "value": "680"
+ },
+ {
+ "label": "Onepunchmo",
+ "value": "2370"
+ },
+ {
+ "label": "Onepunchto",
+ "value": "2616"
+ },
+ {
+ "label": "OneSwordFl",
+ "value": "1890"
+ },
+ {
+ "label": "Onethousan",
+ "value": "1935"
+ },
+ {
+ "label": "onetree",
+ "value": "2594"
+ },
+ {
+ "label": "Oneyearold",
+ "value": "2603"
+ },
+ {
+ "label": "Onlinegame",
+ "value": "3240"
+ },
+ {
+ "label": "OnlineGame",
+ "value": "936"
+ },
+ {
+ "label": "Onlinegami",
+ "value": "3070"
+ },
+ {
+ "label": "OnlineRoma",
+ "value": "536"
+ },
+ {
+ "label": "onlyloveyo",
+ "value": "1804"
+ },
+ {
+ "label": "onlyyouth",
+ "value": "2609"
+ },
+ {
+ "label": "onparadise",
+ "value": "2142"
+ },
+ {
+ "label": "oooobe",
+ "value": "2251"
+ },
+ {
+ "label": "openasmall",
+ "value": "1659"
+ },
+ {
+ "label": "Openyourey",
+ "value": "2191"
+ },
+ {
+ "label": "Operation",
+ "value": "2754"
+ },
+ {
+ "label": "OpFemalePr",
+ "value": "2914"
+ },
+ {
+ "label": "OPheroine",
+ "value": "1039"
+ },
+ {
+ "label": "OPMC",
+ "value": "862"
+ },
+ {
+ "label": "OPProtagon",
+ "value": "787"
+ },
+ {
+ "label": "orangeappl",
+ "value": "2104"
+ },
+ {
+ "label": "Orc",
+ "value": "840"
+ },
+ {
+ "label": "Orcs",
+ "value": "537"
+ },
+ {
+ "label": "Orcsworld",
+ "value": "1589"
+ },
+ {
+ "label": "Ordinary",
+ "value": "3132"
+ },
+ {
+ "label": "Organizati",
+ "value": "1114"
+ },
+ {
+ "label": "OrganizedC",
+ "value": "529"
+ },
+ {
+ "label": "Orientalfa",
+ "value": "1448"
+ },
+ {
+ "label": "Orientalmy",
+ "value": "3110"
+ },
+ {
+ "label": "Original",
+ "value": "3059"
+ },
+ {
+ "label": "OriginalUn",
+ "value": "2178"
+ },
+ {
+ "label": "OriginalYe",
+ "value": "2587"
+ },
+ {
+ "label": "Origuchi",
+ "value": "2623"
+ },
+ {
+ "label": "Orphan",
+ "value": "777"
+ },
+ {
+ "label": "Orphaned",
+ "value": "1535"
+ },
+ {
+ "label": "OrphanMC",
+ "value": "1570"
+ },
+ {
+ "label": "Orphans",
+ "value": "358"
+ },
+ {
+ "label": "Otaku",
+ "value": "478"
+ },
+ {
+ "label": "Otezetta",
+ "value": "1971"
+ },
+ {
+ "label": "Otherworld",
+ "value": "1530"
+ },
+ {
+ "label": "Otherworld",
+ "value": "3099"
+ },
+ {
+ "label": "OTTGroupCh",
+ "value": "2332"
+ },
+ {
+ "label": "Outdoors",
+ "value": "3205"
+ },
+ {
+ "label": "OuterSpace",
+ "value": "220"
+ },
+ {
+ "label": "Over-Power",
+ "value": "2902"
+ },
+ {
+ "label": "OverheadHi",
+ "value": "2764"
+ },
+ {
+ "label": "Overlord",
+ "value": "2997"
+ },
+ {
+ "label": "overpower",
+ "value": "3229"
+ },
+ {
+ "label": "Overpowere",
+ "value": "2955"
+ },
+ {
+ "label": "Overpowere",
+ "value": "1058"
+ },
+ {
+ "label": "Overpowere",
+ "value": "25"
+ },
+ {
+ "label": "Overpowere",
+ "value": "3185"
+ },
+ {
+ "label": "Overprotec",
+ "value": "697"
+ },
+ {
+ "label": "Painting",
+ "value": "741"
+ },
+ {
+ "label": "Paizuri",
+ "value": "1429"
+ },
+ {
+ "label": "palace",
+ "value": "2948"
+ },
+ {
+ "label": "paleandwhi",
+ "value": "2118"
+ },
+ {
+ "label": "Pamper",
+ "value": "3041"
+ },
+ {
+ "label": "PamperingR",
+ "value": "377"
+ },
+ {
+ "label": "panic",
+ "value": "2026"
+ },
+ {
+ "label": "Papaisvery",
+ "value": "2521"
+ },
+ {
+ "label": "ParalelWor",
+ "value": "1479"
+ },
+ {
+ "label": "Parallelsp",
+ "value": "3120"
+ },
+ {
+ "label": "ParallelWo",
+ "value": "252"
+ },
+ {
+ "label": "ParallelWo",
+ "value": "852"
+ },
+ {
+ "label": "Paranoid",
+ "value": "887"
+ },
+ {
+ "label": "Parasite",
+ "value": "1153"
+ },
+ {
+ "label": "Parasites",
+ "value": "43"
+ },
+ {
+ "label": "ParentComp",
+ "value": "446"
+ },
+ {
+ "label": "Parody",
+ "value": "919"
+ },
+ {
+ "label": "Part-TimeJ",
+ "value": "1434"
+ },
+ {
+ "label": "part-timeo",
+ "value": "1875"
+ },
+ {
+ "label": "Partnerofa",
+ "value": "964"
+ },
+ {
+ "label": "Passiveski",
+ "value": "3136"
+ },
+ {
+ "label": "PastPlaysa",
+ "value": "371"
+ },
+ {
+ "label": "PastPlaysa",
+ "value": "932"
+ },
+ {
+ "label": "PastTrauma",
+ "value": "583"
+ },
+ {
+ "label": "Patriarch",
+ "value": "1593"
+ },
+ {
+ "label": "Payback",
+ "value": "3166"
+ },
+ {
+ "label": "Peasant",
+ "value": "2797"
+ },
+ {
+ "label": "Peerlessso",
+ "value": "1647"
+ },
+ {
+ "label": "PeerlessSw",
+ "value": "1643"
+ },
+ {
+ "label": "pendragon",
+ "value": "2708"
+ },
+ {
+ "label": "pendreamst",
+ "value": "1947"
+ },
+ {
+ "label": "Peoplenear",
+ "value": "2510"
+ },
+ {
+ "label": "perfectmag",
+ "value": "1651"
+ },
+ {
+ "label": "PerfectWor",
+ "value": "684"
+ },
+ {
+ "label": "Persistent",
+ "value": "271"
+ },
+ {
+ "label": "Personalit",
+ "value": "1327"
+ },
+ {
+ "label": "PervertedP",
+ "value": "173"
+ },
+ {
+ "label": "Pet",
+ "value": "789"
+ },
+ {
+ "label": "Petbeasts",
+ "value": "3080"
+ },
+ {
+ "label": "Pets",
+ "value": "105"
+ },
+ {
+ "label": "petsurviva",
+ "value": "2389"
+ },
+ {
+ "label": "PhantomThi",
+ "value": "2801"
+ },
+ {
+ "label": "Pharmacist",
+ "value": "501"
+ },
+ {
+ "label": "Philosophi",
+ "value": "608"
+ },
+ {
+ "label": "Phoenixes",
+ "value": "1420"
+ },
+ {
+ "label": "Photograph",
+ "value": "1449"
+ },
+ {
+ "label": "Photograph",
+ "value": "2828"
+ },
+ {
+ "label": "pigeonnext",
+ "value": "2469"
+ },
+ {
+ "label": "PillBasedC",
+ "value": "26"
+ },
+ {
+ "label": "PillConcoc",
+ "value": "235"
+ },
+ {
+ "label": "PillConcot",
+ "value": "626"
+ },
+ {
+ "label": "Pills",
+ "value": "1520"
+ },
+ {
+ "label": "Pilots",
+ "value": "1331"
+ },
+ {
+ "label": "Pipifish",
+ "value": "2088"
+ },
+ {
+ "label": "Pirate",
+ "value": "1376"
+ },
+ {
+ "label": "Pirateacto",
+ "value": "2346"
+ },
+ {
+ "label": "PirateCour",
+ "value": "2372"
+ },
+ {
+ "label": "PirateDaQi",
+ "value": "1702"
+ },
+ {
+ "label": "PirateGrea",
+ "value": "2010"
+ },
+ {
+ "label": "Piratehaha",
+ "value": "1766"
+ },
+ {
+ "label": "Pirates",
+ "value": "390"
+ },
+ {
+ "label": "PiratesofH",
+ "value": "2629"
+ },
+ {
+ "label": "PirateWars",
+ "value": "2367"
+ },
+ {
+ "label": "PiratexFai",
+ "value": "2434"
+ },
+ {
+ "label": "Piscesinth",
+ "value": "2566"
+ },
+ {
+ "label": "PlaneWars",
+ "value": "2879"
+ },
+ {
+ "label": "PlayBlueMo",
+ "value": "1919"
+ },
+ {
+ "label": "Playboymal",
+ "value": "814"
+ },
+ {
+ "label": "Playboys",
+ "value": "1435"
+ },
+ {
+ "label": "Player",
+ "value": "1162"
+ },
+ {
+ "label": "PlayerKill",
+ "value": "1277"
+ },
+ {
+ "label": "Players",
+ "value": "767"
+ },
+ {
+ "label": "PlayfulPro",
+ "value": "589"
+ },
+ {
+ "label": "PlayingGho",
+ "value": "1062"
+ },
+ {
+ "label": "pleasantin",
+ "value": "1896"
+ },
+ {
+ "label": "Pleaseforg",
+ "value": "2785"
+ },
+ {
+ "label": "plumthirte",
+ "value": "2005"
+ },
+ {
+ "label": "poems",
+ "value": "633"
+ },
+ {
+ "label": "Poetry",
+ "value": "609"
+ },
+ {
+ "label": "PoisonMout",
+ "value": "1605"
+ },
+ {
+ "label": "Poisons",
+ "value": "447"
+ },
+ {
+ "label": "Pokemon",
+ "value": "555"
+ },
+ {
+ "label": "PokémonGo",
+ "value": "2640"
+ },
+ {
+ "label": "PokémonTi",
+ "value": "2369"
+ },
+ {
+ "label": "PokémonVo",
+ "value": "2014"
+ },
+ {
+ "label": "Police",
+ "value": "558"
+ },
+ {
+ "label": "PoliteProt",
+ "value": "1415"
+ },
+ {
+ "label": "PoliticalI",
+ "value": "1574"
+ },
+ {
+ "label": "PoliticalS",
+ "value": "804"
+ },
+ {
+ "label": "Politics",
+ "value": "289"
+ },
+ {
+ "label": "Polyandry",
+ "value": "530"
+ },
+ {
+ "label": "Polygamy",
+ "value": "174"
+ },
+ {
+ "label": "Poor",
+ "value": "2930"
+ },
+ {
+ "label": "Poorcrazy",
+ "value": "1637"
+ },
+ {
+ "label": "PoorProtag",
+ "value": "451"
+ },
+ {
+ "label": "PoorRoRich",
+ "value": "1129"
+ },
+ {
+ "label": "PoortoRich",
+ "value": "27"
+ },
+ {
+ "label": "PopeBibiDo",
+ "value": "2371"
+ },
+ {
+ "label": "Popular",
+ "value": "3017"
+ },
+ {
+ "label": "PopularLov",
+ "value": "547"
+ },
+ {
+ "label": "PortableSp",
+ "value": "930"
+ },
+ {
+ "label": "Positive",
+ "value": "2968"
+ },
+ {
+ "label": "Positiveel",
+ "value": "1954"
+ },
+ {
+ "label": "PositiveLe",
+ "value": "1019"
+ },
+ {
+ "label": "Possession",
+ "value": "410"
+ },
+ {
+ "label": "Possessive",
+ "value": "4"
+ },
+ {
+ "label": "Possessive",
+ "value": "2888"
+ },
+ {
+ "label": "Possessive",
+ "value": "716"
+ },
+ {
+ "label": "Post-apoca",
+ "value": "217"
+ },
+ {
+ "label": "potatogirl",
+ "value": "2606"
+ },
+ {
+ "label": "PovertyAll",
+ "value": "805"
+ },
+ {
+ "label": "PowerCoupl",
+ "value": "193"
+ },
+ {
+ "label": "Powerfulco",
+ "value": "945"
+ },
+ {
+ "label": "PowersTran",
+ "value": "1600"
+ },
+ {
+ "label": "PowerStrug",
+ "value": "587"
+ },
+ {
+ "label": "PragmaticP",
+ "value": "428"
+ },
+ {
+ "label": "Precogniti",
+ "value": "1427"
+ },
+ {
+ "label": "Pregnancy",
+ "value": "384"
+ },
+ {
+ "label": "Prehistori",
+ "value": "942"
+ },
+ {
+ "label": "Prehistori",
+ "value": "959"
+ },
+ {
+ "label": "PresentDay",
+ "value": "1340"
+ },
+ {
+ "label": "President",
+ "value": "1316"
+ },
+ {
+ "label": "PretendLov",
+ "value": "1197"
+ },
+ {
+ "label": "PrettyGirl",
+ "value": "3018"
+ },
+ {
+ "label": "Preview",
+ "value": "3005"
+ },
+ {
+ "label": "PreviousLi",
+ "value": "224"
+ },
+ {
+ "label": "PreviousLi",
+ "value": "325"
+ },
+ {
+ "label": "Priestesse",
+ "value": "1503"
+ },
+ {
+ "label": "Priests",
+ "value": "794"
+ },
+ {
+ "label": "PrimitiveT",
+ "value": "2906"
+ },
+ {
+ "label": "Primitivew",
+ "value": "1061"
+ },
+ {
+ "label": "Prince",
+ "value": "2935"
+ },
+ {
+ "label": "Princeandp",
+ "value": "3065"
+ },
+ {
+ "label": "PrinceofHe",
+ "value": "2729"
+ },
+ {
+ "label": "PrinceofTe",
+ "value": "649"
+ },
+ {
+ "label": "PrinceQing",
+ "value": "2502"
+ },
+ {
+ "label": "Princess",
+ "value": "1119"
+ },
+ {
+ "label": "Prison",
+ "value": "584"
+ },
+ {
+ "label": "ProactiveP",
+ "value": "854"
+ },
+ {
+ "label": "Professor",
+ "value": "1571"
+ },
+ {
+ "label": "Programmer",
+ "value": "208"
+ },
+ {
+ "label": "Programmin",
+ "value": "2869"
+ },
+ {
+ "label": "Prophecies",
+ "value": "525"
+ },
+ {
+ "label": "Prostitute",
+ "value": "1409"
+ },
+ {
+ "label": "Protagonis",
+ "value": "1245"
+ },
+ {
+ "label": "Protagonis",
+ "value": "175"
+ },
+ {
+ "label": "Protagonis",
+ "value": "318"
+ },
+ {
+ "label": "Protagonis",
+ "value": "403"
+ },
+ {
+ "label": "Protagonis",
+ "value": "644"
+ },
+ {
+ "label": "Protagonis",
+ "value": "694"
+ },
+ {
+ "label": "Protagonis",
+ "value": "1117"
+ },
+ {
+ "label": "Protagonis",
+ "value": "2739"
+ },
+ {
+ "label": "PseudoHolo",
+ "value": "806"
+ },
+ {
+ "label": "PseudoReli",
+ "value": "807"
+ },
+ {
+ "label": "psionic",
+ "value": "2774"
+ },
+ {
+ "label": "Psychic",
+ "value": "1601"
+ },
+ {
+ "label": "PsychicPow",
+ "value": "918"
+ },
+ {
+ "label": "Psychologi",
+ "value": "1611"
+ },
+ {
+ "label": "Psychology",
+ "value": "1140"
+ },
+ {
+ "label": "Psychopath",
+ "value": "480"
+ },
+ {
+ "label": "Punch",
+ "value": "1814"
+ },
+ {
+ "label": "pureimpuls",
+ "value": "2414"
+ },
+ {
+ "label": "purekitten",
+ "value": "2339"
+ },
+ {
+ "label": "PureLove",
+ "value": "2858"
+ },
+ {
+ "label": "Putin",
+ "value": "3086"
+ },
+ {
+ "label": "Puzzles",
+ "value": "1122"
+ },
+ {
+ "label": "QianshanTw",
+ "value": "2600"
+ },
+ {
+ "label": "qidian",
+ "value": "2943"
+ },
+ {
+ "label": "QiLuck",
+ "value": "1244"
+ },
+ {
+ "label": "qimao",
+ "value": "3214"
+ },
+ {
+ "label": "QinBichu",
+ "value": "1706"
+ },
+ {
+ "label": "Qingfeng1D",
+ "value": "1701"
+ },
+ {
+ "label": "QingheTaoi",
+ "value": "1885"
+ },
+ {
+ "label": "Qingliansw",
+ "value": "1819"
+ },
+ {
+ "label": "qingyu",
+ "value": "2215"
+ },
+ {
+ "label": "QiXuan",
+ "value": "1969"
+ },
+ {
+ "label": "QT",
+ "value": "1379"
+ },
+ {
+ "label": "Quasi-GodS",
+ "value": "1768"
+ },
+ {
+ "label": "QueenofBla",
+ "value": "2302"
+ },
+ {
+ "label": "Question&a",
+ "value": "1334"
+ },
+ {
+ "label": "QuickPass",
+ "value": "1227"
+ },
+ {
+ "label": "QuickTrans",
+ "value": "449"
+ },
+ {
+ "label": "QuickTrans",
+ "value": "1259"
+ },
+ {
+ "label": "QuickTrans",
+ "value": "1602"
+ },
+ {
+ "label": "Quickwear",
+ "value": "1143"
+ },
+ {
+ "label": "QuietChara",
+ "value": "1372"
+ },
+ {
+ "label": "quietflowe",
+ "value": "1698"
+ },
+ {
+ "label": "QuirkyChar",
+ "value": "1402"
+ },
+ {
+ "label": "quitesharp",
+ "value": "1952"
+ },
+ {
+ "label": "Quququ",
+ "value": "2496"
+ },
+ {
+ "label": "R-15",
+ "value": "617"
+ },
+ {
+ "label": "R-18",
+ "value": "553"
+ },
+ {
+ "label": "R18",
+ "value": "1095"
+ },
+ {
+ "label": "RabbitToot",
+ "value": "2411"
+ },
+ {
+ "label": "RaceChange",
+ "value": "407"
+ },
+ {
+ "label": "Races",
+ "value": "3096"
+ },
+ {
+ "label": "Racism",
+ "value": "111"
+ },
+ {
+ "label": "rainandsno",
+ "value": "2111"
+ },
+ {
+ "label": "rainboweig",
+ "value": "2558"
+ },
+ {
+ "label": "rainydaywi",
+ "value": "2668"
+ },
+ {
+ "label": "Raiseaghos",
+ "value": "2486"
+ },
+ {
+ "label": "raisedache",
+ "value": "2473"
+ },
+ {
+ "label": "RanchFarmi",
+ "value": "3234"
+ },
+ {
+ "label": "RankingLis",
+ "value": "1356"
+ },
+ {
+ "label": "Rape",
+ "value": "236"
+ },
+ {
+ "label": "Rapeseedra",
+ "value": "2016"
+ },
+ {
+ "label": "RapeVictim",
+ "value": "6"
+ },
+ {
+ "label": "RapeVictim",
+ "value": "1481"
+ },
+ {
+ "label": "Rarebloodl",
+ "value": "2988"
+ },
+ {
+ "label": "Ras",
+ "value": "1274"
+ },
+ {
+ "label": "reallyking",
+ "value": "2137"
+ },
+ {
+ "label": "Realmmonst",
+ "value": "2692"
+ },
+ {
+ "label": "reasoning",
+ "value": "3224"
+ },
+ {
+ "label": "Rebellion",
+ "value": "1432"
+ },
+ {
+ "label": "Rebirth",
+ "value": "28"
+ },
+ {
+ "label": "RebirthedP",
+ "value": "643"
+ },
+ {
+ "label": "Reborn",
+ "value": "899"
+ },
+ {
+ "label": "recreation",
+ "value": "2180"
+ },
+ {
+ "label": "Redalert",
+ "value": "1552"
+ },
+ {
+ "label": "RedAlert2",
+ "value": "1474"
+ },
+ {
+ "label": "RedDustDru",
+ "value": "2617"
+ },
+ {
+ "label": "Redemption",
+ "value": "2859"
+ },
+ {
+ "label": "Regression",
+ "value": "2856"
+ },
+ {
+ "label": "Regressor",
+ "value": "1163"
+ },
+ {
+ "label": "Regret",
+ "value": "2853"
+ },
+ {
+ "label": "Reiki",
+ "value": "2870"
+ },
+ {
+ "label": "ReikiRecov",
+ "value": "1389"
+ },
+ {
+ "label": "Reikyrecov",
+ "value": "713"
+ },
+ {
+ "label": "reincarnat",
+ "value": "1348"
+ },
+ {
+ "label": "Reincarnat",
+ "value": "95"
+ },
+ {
+ "label": "Reincarnat",
+ "value": "354"
+ },
+ {
+ "label": "Reincarnat",
+ "value": "408"
+ },
+ {
+ "label": "Reincarnat",
+ "value": "502"
+ },
+ {
+ "label": "Reincarnat",
+ "value": "1007"
+ },
+ {
+ "label": "Reincarnat",
+ "value": "1452"
+ },
+ {
+ "label": "Reincarnat",
+ "value": "1563"
+ },
+ {
+ "label": "Reincarnat",
+ "value": "2932"
+ },
+ {
+ "label": "relaxed",
+ "value": "1384"
+ },
+ {
+ "label": "Religions",
+ "value": "591"
+ },
+ {
+ "label": "ReligiousO",
+ "value": "1599"
+ },
+ {
+ "label": "ReligousOr",
+ "value": "1572"
+ },
+ {
+ "label": "Reporters",
+ "value": "1462"
+ },
+ {
+ "label": "Researcher",
+ "value": "1302"
+ },
+ {
+ "label": "Residencen",
+ "value": "2256"
+ },
+ {
+ "label": "Residentev",
+ "value": "2745"
+ },
+ {
+ "label": "restaurant",
+ "value": "2143"
+ },
+ {
+ "label": "Restaurant",
+ "value": "896"
+ },
+ {
+ "label": "Resurrecti",
+ "value": "222"
+ },
+ {
+ "label": "Resurrecti",
+ "value": "2580"
+ },
+ {
+ "label": "Return",
+ "value": "3222"
+ },
+ {
+ "label": "Returningf",
+ "value": "355"
+ },
+ {
+ "label": "Reunion",
+ "value": "1067"
+ },
+ {
+ "label": "Revenge",
+ "value": "126"
+ },
+ {
+ "label": "Reversal",
+ "value": "3215"
+ },
+ {
+ "label": "Reverse",
+ "value": "2934"
+ },
+ {
+ "label": "ReverseHar",
+ "value": "212"
+ },
+ {
+ "label": "ReverseRap",
+ "value": "1412"
+ },
+ {
+ "label": "ReverseRpe",
+ "value": "1286"
+ },
+ {
+ "label": "reversesmo",
+ "value": "1903"
+ },
+ {
+ "label": "Reversible",
+ "value": "1436"
+ },
+ {
+ "label": "Rich",
+ "value": "827"
+ },
+ {
+ "label": "Richdaught",
+ "value": "2979"
+ },
+ {
+ "label": "richeveryy",
+ "value": "2388"
+ },
+ {
+ "label": "Richfamily",
+ "value": "999"
+ },
+ {
+ "label": "RichProtag",
+ "value": "875"
+ },
+ {
+ "label": "RichtoPoor",
+ "value": "889"
+ },
+ {
+ "label": "Rideawhale",
+ "value": "1670"
+ },
+ {
+ "label": "Righteous",
+ "value": "2973"
+ },
+ {
+ "label": "Righteousn",
+ "value": "3134"
+ },
+ {
+ "label": "RighteousP",
+ "value": "778"
+ },
+ {
+ "label": "RimuruTemp",
+ "value": "1193"
+ },
+ {
+ "label": "RinYueqing",
+ "value": "1644"
+ },
+ {
+ "label": "Rise",
+ "value": "3146"
+ },
+ {
+ "label": "RiseofGras",
+ "value": "2819"
+ },
+ {
+ "label": "Rivalry",
+ "value": "884"
+ },
+ {
+ "label": "riversande",
+ "value": "1862"
+ },
+ {
+ "label": "robots",
+ "value": "1044"
+ },
+ {
+ "label": "Role-Playi",
+ "value": "1558"
+ },
+ {
+ "label": "Romance",
+ "value": "689"
+ },
+ {
+ "label": "Romancecom",
+ "value": "3048"
+ },
+ {
+ "label": "RomanceFan",
+ "value": "2854"
+ },
+ {
+ "label": "Romanticlo",
+ "value": "2975"
+ },
+ {
+ "label": "RomanticPr",
+ "value": "1486"
+ },
+ {
+ "label": "RomanticSu",
+ "value": "225"
+ },
+ {
+ "label": "RomanticSu",
+ "value": "868"
+ },
+ {
+ "label": "RookieProt",
+ "value": "951"
+ },
+ {
+ "label": "Roommates",
+ "value": "996"
+ },
+ {
+ "label": "Roon",
+ "value": "2431"
+ },
+ {
+ "label": "Rotaryhotp",
+ "value": "2513"
+ },
+ {
+ "label": "Royalfamil",
+ "value": "2995"
+ },
+ {
+ "label": "RoyalSabur",
+ "value": "1807"
+ },
+ {
+ "label": "Royalty",
+ "value": "15"
+ },
+ {
+ "label": "Rpe",
+ "value": "5"
+ },
+ {
+ "label": "RpeVictimB",
+ "value": "1354"
+ },
+ {
+ "label": "RPG",
+ "value": "2892"
+ },
+ {
+ "label": "RPGSystem",
+ "value": "3179"
+ },
+ {
+ "label": "runawayant",
+ "value": "1692"
+ },
+ {
+ "label": "runawaycit",
+ "value": "1663"
+ },
+ {
+ "label": "Rune",
+ "value": "754"
+ },
+ {
+ "label": "Ruoshuithr",
+ "value": "2096"
+ },
+ {
+ "label": "Russia",
+ "value": "1546"
+ },
+ {
+ "label": "Russian",
+ "value": "1390"
+ },
+ {
+ "label": "Ruthless",
+ "value": "1298"
+ },
+ {
+ "label": "RuthlessMc",
+ "value": "1033"
+ },
+ {
+ "label": "RuthlessPr",
+ "value": "203"
+ },
+ {
+ "label": "SacrificeX",
+ "value": "2619"
+ },
+ {
+ "label": "SadisticCh",
+ "value": "456"
+ },
+ {
+ "label": "Sadreminde",
+ "value": "1788"
+ },
+ {
+ "label": "sadsadness",
+ "value": "1937"
+ },
+ {
+ "label": "sadsword",
+ "value": "1695"
+ },
+ {
+ "label": "SaikiK",
+ "value": "1336"
+ },
+ {
+ "label": "SaikiK.",
+ "value": "986"
+ },
+ {
+ "label": "Sailing",
+ "value": "1345"
+ },
+ {
+ "label": "Saint",
+ "value": "924"
+ },
+ {
+ "label": "Saints",
+ "value": "394"
+ },
+ {
+ "label": "SaintSeiya",
+ "value": "1608"
+ },
+ {
+ "label": "Sakurajima",
+ "value": "2518"
+ },
+ {
+ "label": "SakuraMoon",
+ "value": "2064"
+ },
+ {
+ "label": "Saltedfish",
+ "value": "2262"
+ },
+ {
+ "label": "SaltedFish",
+ "value": "1610"
+ },
+ {
+ "label": "SaltedFish",
+ "value": "1699"
+ },
+ {
+ "label": "SaltedFish",
+ "value": "2156"
+ },
+ {
+ "label": "SaltedFish",
+ "value": "2557"
+ },
+ {
+ "label": "Salvation",
+ "value": "2867"
+ },
+ {
+ "label": "SameSexMar",
+ "value": "886"
+ },
+ {
+ "label": "sandrivere",
+ "value": "1964"
+ },
+ {
+ "label": "SanmitheGr",
+ "value": "2259"
+ },
+ {
+ "label": "SavingtheW",
+ "value": "492"
+ },
+ {
+ "label": "Scalesofth",
+ "value": "1675"
+ },
+ {
+ "label": "Scary",
+ "value": "3089"
+ },
+ {
+ "label": "Scavengers",
+ "value": "637"
+ },
+ {
+ "label": "schemeandc",
+ "value": "1355"
+ },
+ {
+ "label": "Schemes",
+ "value": "1025"
+ },
+ {
+ "label": "Schemesand",
+ "value": "883"
+ },
+ {
+ "label": "SchemesAnd",
+ "value": "29"
+ },
+ {
+ "label": "Scheming",
+ "value": "3189"
+ },
+ {
+ "label": "SchemingPr",
+ "value": "808"
+ },
+ {
+ "label": "Schizophre",
+ "value": "3000"
+ },
+ {
+ "label": "School",
+ "value": "3081"
+ },
+ {
+ "label": "SchoolLife",
+ "value": "707"
+ },
+ {
+ "label": "SchoolSett",
+ "value": "1273"
+ },
+ {
+ "label": "Sci-fi",
+ "value": "755"
+ },
+ {
+ "label": "science",
+ "value": "634"
+ },
+ {
+ "label": "Science-fi",
+ "value": "2731"
+ },
+ {
+ "label": "Sciencefic",
+ "value": "1268"
+ },
+ {
+ "label": "Sciencefic",
+ "value": "3230"
+ },
+ {
+ "label": "Scientist",
+ "value": "1115"
+ },
+ {
+ "label": "Scientists",
+ "value": "477"
+ },
+ {
+ "label": "Scifi",
+ "value": "3068"
+ },
+ {
+ "label": "Scourge",
+ "value": "1833"
+ },
+ {
+ "label": "SCP",
+ "value": "792"
+ },
+ {
+ "label": "Scriptwrit",
+ "value": "1519"
+ },
+ {
+ "label": "scumteache",
+ "value": "2171"
+ },
+ {
+ "label": "Sea",
+ "value": "1170"
+ },
+ {
+ "label": "SeaExplora",
+ "value": "1627"
+ },
+ {
+ "label": "SealedPowe",
+ "value": "178"
+ },
+ {
+ "label": "SecondChan",
+ "value": "30"
+ },
+ {
+ "label": "SecondChan",
+ "value": "1267"
+ },
+ {
+ "label": "SecondChan",
+ "value": "636"
+ },
+ {
+ "label": "secondpira",
+ "value": "2285"
+ },
+ {
+ "label": "secretary",
+ "value": "1344"
+ },
+ {
+ "label": "SecretCrus",
+ "value": "753"
+ },
+ {
+ "label": "SecretIden",
+ "value": "179"
+ },
+ {
+ "label": "Secretive",
+ "value": "3011"
+ },
+ {
+ "label": "SecretiveP",
+ "value": "326"
+ },
+ {
+ "label": "Secretobse",
+ "value": "2338"
+ },
+ {
+ "label": "SecretOrga",
+ "value": "992"
+ },
+ {
+ "label": "SecretOrga",
+ "value": "596"
+ },
+ {
+ "label": "SecretRela",
+ "value": "1228"
+ },
+ {
+ "label": "Secrets",
+ "value": "180"
+ },
+ {
+ "label": "Sect",
+ "value": "2825"
+ },
+ {
+ "label": "Sectbuildi",
+ "value": "3227"
+ },
+ {
+ "label": "SectDevelo",
+ "value": "31"
+ },
+ {
+ "label": "Sects",
+ "value": "867"
+ },
+ {
+ "label": "Seduction",
+ "value": "1383"
+ },
+ {
+ "label": "Seductive",
+ "value": "3144"
+ },
+ {
+ "label": "SeeingThin",
+ "value": "702"
+ },
+ {
+ "label": "Seinen",
+ "value": "3241"
+ },
+ {
+ "label": "Sekai",
+ "value": "3177"
+ },
+ {
+ "label": "self-disci",
+ "value": "2237"
+ },
+ {
+ "label": "Self-disci",
+ "value": "2898"
+ },
+ {
+ "label": "SelfDiscip",
+ "value": "2826"
+ },
+ {
+ "label": "SelfishPro",
+ "value": "538"
+ },
+ {
+ "label": "SelflessPr",
+ "value": "351"
+ },
+ {
+ "label": "SemeProtag",
+ "value": "564"
+ },
+ {
+ "label": "Senbeiboy",
+ "value": "2799"
+ },
+ {
+ "label": "Sencha",
+ "value": "2540"
+ },
+ {
+ "label": "SentientOb",
+ "value": "703"
+ },
+ {
+ "label": "SentientSk",
+ "value": "656"
+ },
+ {
+ "label": "Sentimenta",
+ "value": "849"
+ },
+ {
+ "label": "Sequel",
+ "value": "901"
+ },
+ {
+ "label": "SerialKill",
+ "value": "486"
+ },
+ {
+ "label": "Serious",
+ "value": "3092"
+ },
+ {
+ "label": "ServantofZ",
+ "value": "1667"
+ },
+ {
+ "label": "Servants",
+ "value": "1418"
+ },
+ {
+ "label": "SevenDeadl",
+ "value": "1440"
+ },
+ {
+ "label": "Sevengener",
+ "value": "2067"
+ },
+ {
+ "label": "sevenpigeo",
+ "value": "1729"
+ },
+ {
+ "label": "SexSlaves",
+ "value": "1465"
+ },
+ {
+ "label": "SexualAbus",
+ "value": "505"
+ },
+ {
+ "label": "SexualCult",
+ "value": "914"
+ },
+ {
+ "label": "shadowfall",
+ "value": "2680"
+ },
+ {
+ "label": "shadowghos",
+ "value": "2159"
+ },
+ {
+ "label": "Shadowless",
+ "value": "2789"
+ },
+ {
+ "label": "Shallowsea",
+ "value": "1657"
+ },
+ {
+ "label": "ShamelessM",
+ "value": "3187"
+ },
+ {
+ "label": "ShamelessP",
+ "value": "96"
+ },
+ {
+ "label": "Shapeshift",
+ "value": "1619"
+ },
+ {
+ "label": "Shapeshift",
+ "value": "1416"
+ },
+ {
+ "label": "Sharp-tong",
+ "value": "1450"
+ },
+ {
+ "label": "Shelter",
+ "value": "1094"
+ },
+ {
+ "label": "ShenhaoMec",
+ "value": "2436"
+ },
+ {
+ "label": "ShenhuoxoR",
+ "value": "1923"
+ },
+ {
+ "label": "ShenJin",
+ "value": "2419"
+ },
+ {
+ "label": "ShenLuo",
+ "value": "1845"
+ },
+ {
+ "label": "ShortStory",
+ "value": "352"
+ },
+ {
+ "label": "Shota",
+ "value": "270"
+ },
+ {
+ "label": "Shotacon",
+ "value": "1425"
+ },
+ {
+ "label": "Shoujo-AiS",
+ "value": "455"
+ },
+ {
+ "label": "ShoujoAi",
+ "value": "708"
+ },
+ {
+ "label": "Shouldhand",
+ "value": "1710"
+ },
+ {
+ "label": "Shounen",
+ "value": "1127"
+ },
+ {
+ "label": "Shounen-Ai",
+ "value": "720"
+ },
+ {
+ "label": "shounenai",
+ "value": "1321"
+ },
+ {
+ "label": "ShouProtag",
+ "value": "1036"
+ },
+ {
+ "label": "Show-biz",
+ "value": "2746"
+ },
+ {
+ "label": "Showbiz",
+ "value": "58"
+ },
+ {
+ "label": "showstory",
+ "value": "1902"
+ },
+ {
+ "label": "shrimpinth",
+ "value": "1669"
+ },
+ {
+ "label": "Shuangwen",
+ "value": "1261"
+ },
+ {
+ "label": "shudder",
+ "value": "1679"
+ },
+ {
+ "label": "ShuYuChenX",
+ "value": "2203"
+ },
+ {
+ "label": "ShyCharact",
+ "value": "599"
+ },
+ {
+ "label": "Si-fi",
+ "value": "1616"
+ },
+ {
+ "label": "Sibling&am",
+ "value": "1426"
+ },
+ {
+ "label": "SiblingRiv",
+ "value": "1457"
+ },
+ {
+ "label": "Siblings",
+ "value": "520"
+ },
+ {
+ "label": "SiblingsNo",
+ "value": "272"
+ },
+ {
+ "label": "SicklyChar",
+ "value": "540"
+ },
+ {
+ "label": "Sign-in",
+ "value": "826"
+ },
+ {
+ "label": "Sign-InChe",
+ "value": "653"
+ },
+ {
+ "label": "signin",
+ "value": "997"
+ },
+ {
+ "label": "SigninChec",
+ "value": "683"
+ },
+ {
+ "label": "signinsalt",
+ "value": "2222"
+ },
+ {
+ "label": "SiheyuanDe",
+ "value": "2133"
+ },
+ {
+ "label": "Siheyuanfl",
+ "value": "2033"
+ },
+ {
+ "label": "SiheyuanGo",
+ "value": "2097"
+ },
+ {
+ "label": "Silencehim",
+ "value": "2200"
+ },
+ {
+ "label": "silentkill",
+ "value": "1910"
+ },
+ {
+ "label": "sillycatse",
+ "value": "1759"
+ },
+ {
+ "label": "SillyColum",
+ "value": "2217"
+ },
+ {
+ "label": "silver",
+ "value": "2694"
+ },
+ {
+ "label": "Simpleone",
+ "value": "2243"
+ },
+ {
+ "label": "Simulation",
+ "value": "1251"
+ },
+ {
+ "label": "Simulator",
+ "value": "1008"
+ },
+ {
+ "label": "singer",
+ "value": "1396"
+ },
+ {
+ "label": "Singers",
+ "value": "253"
+ },
+ {
+ "label": "Singlefema",
+ "value": "2972"
+ },
+ {
+ "label": "SingleHero",
+ "value": "1169"
+ },
+ {
+ "label": "SinglePare",
+ "value": "594"
+ },
+ {
+ "label": "singlesalt",
+ "value": "2448"
+ },
+ {
+ "label": "Siscon",
+ "value": "1332"
+ },
+ {
+ "label": "SisterComp",
+ "value": "356"
+ },
+ {
+ "label": "sistercook",
+ "value": "2428"
+ },
+ {
+ "label": "sisterisbe",
+ "value": "2246"
+ },
+ {
+ "label": "Sisters",
+ "value": "1511"
+ },
+ {
+ "label": "six-twochi",
+ "value": "1764"
+ },
+ {
+ "label": "SixPathsof",
+ "value": "2305"
+ },
+ {
+ "label": "Sixty-six",
+ "value": "1905"
+ },
+ {
+ "label": "SkillAssim",
+ "value": "385"
+ },
+ {
+ "label": "SkillBooks",
+ "value": "441"
+ },
+ {
+ "label": "SkillCreat",
+ "value": "386"
+ },
+ {
+ "label": "SkillSteal",
+ "value": "943"
+ },
+ {
+ "label": "SkinButler",
+ "value": "2184"
+ },
+ {
+ "label": "skycity",
+ "value": "2923"
+ },
+ {
+ "label": "SlapstickC",
+ "value": "1166"
+ },
+ {
+ "label": "Slave",
+ "value": "1028"
+ },
+ {
+ "label": "SlaveHarem",
+ "value": "1463"
+ },
+ {
+ "label": "SlaveProta",
+ "value": "570"
+ },
+ {
+ "label": "Slaves",
+ "value": "181"
+ },
+ {
+ "label": "SlaveSyste",
+ "value": "1482"
+ },
+ {
+ "label": "sleepingsa",
+ "value": "1855"
+ },
+ {
+ "label": "sleeplesst",
+ "value": "2344"
+ },
+ {
+ "label": "sleepslate",
+ "value": "1827"
+ },
+ {
+ "label": "Slice-of-l",
+ "value": "1020"
+ },
+ {
+ "label": "Sliceoflif",
+ "value": "3196"
+ },
+ {
+ "label": "SliceofLif",
+ "value": "765"
+ },
+ {
+ "label": "Slim",
+ "value": "3183"
+ },
+ {
+ "label": "SlowGrowth",
+ "value": "282"
+ },
+ {
+ "label": "SlowLife",
+ "value": "1059"
+ },
+ {
+ "label": "SlowPaced",
+ "value": "3101"
+ },
+ {
+ "label": "SlowRomanc",
+ "value": "194"
+ },
+ {
+ "label": "Slvery",
+ "value": "2907"
+ },
+ {
+ "label": "Smallmushr",
+ "value": "2423"
+ },
+ {
+ "label": "smallninel",
+ "value": "1746"
+ },
+ {
+ "label": "Smart",
+ "value": "2829"
+ },
+ {
+ "label": "SmartCoupl",
+ "value": "415"
+ },
+ {
+ "label": "Smartfemal",
+ "value": "3170"
+ },
+ {
+ "label": "SmartMC",
+ "value": "1034"
+ },
+ {
+ "label": "smartprota",
+ "value": "721"
+ },
+ {
+ "label": "Smokebambo",
+ "value": "2522"
+ },
+ {
+ "label": "SmokeCloud",
+ "value": "1650"
+ },
+ {
+ "label": "smokeinthe",
+ "value": "1641"
+ },
+ {
+ "label": "Smuggling",
+ "value": "1547"
+ },
+ {
+ "label": "Smut",
+ "value": "2984"
+ },
+ {
+ "label": "snorkeling",
+ "value": "1889"
+ },
+ {
+ "label": "Sobrenatur",
+ "value": "3057"
+ },
+ {
+ "label": "Soccer",
+ "value": "405"
+ },
+ {
+ "label": "SocialOutc",
+ "value": "1454"
+ },
+ {
+ "label": "softorange",
+ "value": "2634"
+ },
+ {
+ "label": "Softyander",
+ "value": "2861"
+ },
+ {
+ "label": "Soldiers",
+ "value": "263"
+ },
+ {
+ "label": "Son-in-law",
+ "value": "1026"
+ },
+ {
+ "label": "SongoftheG",
+ "value": "2380"
+ },
+ {
+ "label": "SonInLaw",
+ "value": "2776"
+ },
+ {
+ "label": "sopoor",
+ "value": "2621"
+ },
+ {
+ "label": "Sorcery",
+ "value": "3149"
+ },
+ {
+ "label": "soulanddre",
+ "value": "2281"
+ },
+ {
+ "label": "SoulCelest",
+ "value": "2270"
+ },
+ {
+ "label": "SoulChef",
+ "value": "2106"
+ },
+ {
+ "label": "soulmemory",
+ "value": "2391"
+ },
+ {
+ "label": "SoulPower",
+ "value": "566"
+ },
+ {
+ "label": "Souls",
+ "value": "546"
+ },
+ {
+ "label": "SouthKefei",
+ "value": "2651"
+ },
+ {
+ "label": "Space",
+ "value": "830"
+ },
+ {
+ "label": "SpaceOpera",
+ "value": "619"
+ },
+ {
+ "label": "Spaceship",
+ "value": "283"
+ },
+ {
+ "label": "SpatialMan",
+ "value": "1444"
+ },
+ {
+ "label": "SpearWield",
+ "value": "585"
+ },
+ {
+ "label": "SpecialAbi",
+ "value": "183"
+ },
+ {
+ "label": "SpecialAbi",
+ "value": "127"
+ },
+ {
+ "label": "SpecialAbi",
+ "value": "1158"
+ },
+ {
+ "label": "specialage",
+ "value": "3123"
+ },
+ {
+ "label": "SpecialFor",
+ "value": "679"
+ },
+ {
+ "label": "SpecialLik",
+ "value": "1068"
+ },
+ {
+ "label": "SpecialLov",
+ "value": "869"
+ },
+ {
+ "label": "specialpow",
+ "value": "2951"
+ },
+ {
+ "label": "specialwar",
+ "value": "2216"
+ },
+ {
+ "label": "speechless",
+ "value": "2570"
+ },
+ {
+ "label": "spendthewo",
+ "value": "1894"
+ },
+ {
+ "label": "Spies",
+ "value": "1421"
+ },
+ {
+ "label": "SpiritAdvi",
+ "value": "98"
+ },
+ {
+ "label": "SpiritAnal",
+ "value": "775"
+ },
+ {
+ "label": "Spirits",
+ "value": "484"
+ },
+ {
+ "label": "SpiritualQ",
+ "value": "651"
+ },
+ {
+ "label": "SpiritualR",
+ "value": "732"
+ },
+ {
+ "label": "SpiritUser",
+ "value": "483"
+ },
+ {
+ "label": "Spoiling",
+ "value": "2991"
+ },
+ {
+ "label": "Sports",
+ "value": "674"
+ },
+ {
+ "label": "stablefort",
+ "value": "2385"
+ },
+ {
+ "label": "stallion",
+ "value": "2882"
+ },
+ {
+ "label": "Stand",
+ "value": "2742"
+ },
+ {
+ "label": "Star",
+ "value": "846"
+ },
+ {
+ "label": "stardarkni",
+ "value": "2229"
+ },
+ {
+ "label": "starfish",
+ "value": "2546"
+ },
+ {
+ "label": "Starships",
+ "value": "2964"
+ },
+ {
+ "label": "startofthe",
+ "value": "2116"
+ },
+ {
+ "label": "startwriti",
+ "value": "1978"
+ },
+ {
+ "label": "Starwars",
+ "value": "2815"
+ },
+ {
+ "label": "Stealth",
+ "value": "3100"
+ },
+ {
+ "label": "steamponk",
+ "value": "2831"
+ },
+ {
+ "label": "Steampunk",
+ "value": "3156"
+ },
+ {
+ "label": "Steamy",
+ "value": "3169"
+ },
+ {
+ "label": "Stepmom",
+ "value": "3039"
+ },
+ {
+ "label": "Stepmother",
+ "value": "1233"
+ },
+ {
+ "label": "Sterile",
+ "value": "1713"
+ },
+ {
+ "label": "stevec",
+ "value": "2320"
+ },
+ {
+ "label": "StewedChic",
+ "value": "2328"
+ },
+ {
+ "label": "StinkBeanS",
+ "value": "2192"
+ },
+ {
+ "label": "StockholmS",
+ "value": "506"
+ },
+ {
+ "label": "StoicChara",
+ "value": "1078"
+ },
+ {
+ "label": "Stomachhur",
+ "value": "2368"
+ },
+ {
+ "label": "stonemored",
+ "value": "2386"
+ },
+ {
+ "label": "stopatfirs",
+ "value": "2679"
+ },
+ {
+ "label": "StoreOwner",
+ "value": "74"
+ },
+ {
+ "label": "straightma",
+ "value": "2752"
+ },
+ {
+ "label": "Straightme",
+ "value": "2404"
+ },
+ {
+ "label": "StraightSe",
+ "value": "1404"
+ },
+ {
+ "label": "StraightUk",
+ "value": "727"
+ },
+ {
+ "label": "StrategicB",
+ "value": "298"
+ },
+ {
+ "label": "Strategist",
+ "value": "604"
+ },
+ {
+ "label": "Strategy",
+ "value": "2820"
+ },
+ {
+ "label": "streamerbl",
+ "value": "2639"
+ },
+ {
+ "label": "Strength-b",
+ "value": "213"
+ },
+ {
+ "label": "StrongBack",
+ "value": "671"
+ },
+ {
+ "label": "StrongCoup",
+ "value": "984"
+ },
+ {
+ "label": "StrongestP",
+ "value": "1108"
+ },
+ {
+ "label": "strongfema",
+ "value": "1362"
+ },
+ {
+ "label": "Strongfema",
+ "value": "3026"
+ },
+ {
+ "label": "StrongFema",
+ "value": "1041"
+ },
+ {
+ "label": "StrongFema",
+ "value": "717"
+ },
+ {
+ "label": "Strongfl",
+ "value": "2996"
+ },
+ {
+ "label": "Strongfrom",
+ "value": "197"
+ },
+ {
+ "label": "Strongfrom",
+ "value": "1502"
+ },
+ {
+ "label": "StrongLove",
+ "value": "214"
+ },
+ {
+ "label": "StrongLove",
+ "value": "751"
+ },
+ {
+ "label": "StrongMC",
+ "value": "746"
+ },
+ {
+ "label": "StrongOpFe",
+ "value": "1597"
+ },
+ {
+ "label": "StrongPowe",
+ "value": "1564"
+ },
+ {
+ "label": "StrongProt",
+ "value": "657"
+ },
+ {
+ "label": "Strongsubo",
+ "value": "1497"
+ },
+ {
+ "label": "StrongSubo",
+ "value": "1484"
+ },
+ {
+ "label": "StrongtoSt",
+ "value": "264"
+ },
+ {
+ "label": "strongwoma",
+ "value": "2928"
+ },
+ {
+ "label": "StubbornPr",
+ "value": "479"
+ },
+ {
+ "label": "Student",
+ "value": "1505"
+ },
+ {
+ "label": "Student-Te",
+ "value": "184"
+ },
+ {
+ "label": "Studenttea",
+ "value": "3107"
+ },
+ {
+ "label": "StudentUni",
+ "value": "2212"
+ },
+ {
+ "label": "stupidfox",
+ "value": "1873"
+ },
+ {
+ "label": "submissive",
+ "value": "1381"
+ },
+ {
+ "label": "Succubus",
+ "value": "1200"
+ },
+ {
+ "label": "Suddenmarr",
+ "value": "2989"
+ },
+ {
+ "label": "SuddenStre",
+ "value": "1086"
+ },
+ {
+ "label": "SuddenWeal",
+ "value": "458"
+ },
+ {
+ "label": "Sugary",
+ "value": "2809"
+ },
+ {
+ "label": "suicidalpr",
+ "value": "1401"
+ },
+ {
+ "label": "Suicides",
+ "value": "823"
+ },
+ {
+ "label": "summernow",
+ "value": "2453"
+ },
+ {
+ "label": "summertree",
+ "value": "1736"
+ },
+ {
+ "label": "summertrip",
+ "value": "1737"
+ },
+ {
+ "label": "summon",
+ "value": "611"
+ },
+ {
+ "label": "SummonedHe",
+ "value": "397"
+ },
+ {
+ "label": "Summoner",
+ "value": "711"
+ },
+ {
+ "label": "Summonerpr",
+ "value": "3195"
+ },
+ {
+ "label": "Summoning",
+ "value": "1613"
+ },
+ {
+ "label": "SummoningM",
+ "value": "246"
+ },
+ {
+ "label": "Summons",
+ "value": "1050"
+ },
+ {
+ "label": "sundaysun",
+ "value": "1720"
+ },
+ {
+ "label": "sunsetover",
+ "value": "2638"
+ },
+ {
+ "label": "SuperAbili",
+ "value": "3012"
+ },
+ {
+ "label": "Superfire",
+ "value": "2366"
+ },
+ {
+ "label": "SuperGodGr",
+ "value": "1869"
+ },
+ {
+ "label": "SuperGodNo",
+ "value": "2352"
+ },
+ {
+ "label": "Superheroe",
+ "value": "1145"
+ },
+ {
+ "label": "Superman",
+ "value": "2793"
+ },
+ {
+ "label": "Supernatur",
+ "value": "772"
+ },
+ {
+ "label": "Supernatur",
+ "value": "2250"
+ },
+ {
+ "label": "supernovab",
+ "value": "2608"
+ },
+ {
+ "label": "SuperPiran",
+ "value": "2129"
+ },
+ {
+ "label": "Superpower",
+ "value": "463"
+ },
+ {
+ "label": "Superpower",
+ "value": "791"
+ },
+ {
+ "label": "SuperSemin",
+ "value": "1485"
+ },
+ {
+ "label": "Superstar",
+ "value": "1395"
+ },
+ {
+ "label": "SuperTechn",
+ "value": "645"
+ },
+ {
+ "label": "Supporting",
+ "value": "3217"
+ },
+ {
+ "label": "Supportive",
+ "value": "1116"
+ },
+ {
+ "label": "Survival",
+ "value": "112"
+ },
+ {
+ "label": "SurvivalGa",
+ "value": "362"
+ },
+ {
+ "label": "SuShaoqing",
+ "value": "1747"
+ },
+ {
+ "label": "Suspense",
+ "value": "704"
+ },
+ {
+ "label": "SuWei",
+ "value": "2232"
+ },
+ {
+ "label": "SuYechen",
+ "value": "1726"
+ },
+ {
+ "label": "SuZiyouyou",
+ "value": "2108"
+ },
+ {
+ "label": "SwallowedS",
+ "value": "688"
+ },
+ {
+ "label": "swearnotto",
+ "value": "2551"
+ },
+ {
+ "label": "Sweet",
+ "value": "866"
+ },
+ {
+ "label": "Sweetandso",
+ "value": "2119"
+ },
+ {
+ "label": "sweetjelly",
+ "value": "1689"
+ },
+ {
+ "label": "Sweetlove",
+ "value": "2958"
+ },
+ {
+ "label": "Sweetpampe",
+ "value": "3055"
+ },
+ {
+ "label": "sweetroman",
+ "value": "1069"
+ },
+ {
+ "label": "SweetText",
+ "value": "781"
+ },
+ {
+ "label": "SweetYaoi",
+ "value": "1576"
+ },
+ {
+ "label": "Swimmingfi",
+ "value": "2562"
+ },
+ {
+ "label": "SwingingDe",
+ "value": "2614"
+ },
+ {
+ "label": "Swodandmag",
+ "value": "3004"
+ },
+ {
+ "label": "SwordAndMa",
+ "value": "182"
+ },
+ {
+ "label": "SwordArtOn",
+ "value": "666"
+ },
+ {
+ "label": "Swordblood",
+ "value": "1697"
+ },
+ {
+ "label": "Swordgod",
+ "value": "2457"
+ },
+ {
+ "label": "SwordImmor",
+ "value": "1749"
+ },
+ {
+ "label": "swordrepai",
+ "value": "2493"
+ },
+ {
+ "label": "Swordsandm",
+ "value": "3127"
+ },
+ {
+ "label": "Swordsman",
+ "value": "622"
+ },
+ {
+ "label": "SwordWield",
+ "value": "99"
+ },
+ {
+ "label": "Sword丨Lea",
+ "value": "2086"
+ },
+ {
+ "label": "SxSlaves",
+ "value": "1478"
+ },
+ {
+ "label": "SxualAbuse",
+ "value": "2758"
+ },
+ {
+ "label": "Sysetm",
+ "value": "1088"
+ },
+ {
+ "label": "System",
+ "value": "204"
+ },
+ {
+ "label": "SystemAdmi",
+ "value": "76"
+ },
+ {
+ "label": "SystemFlow",
+ "value": "1248"
+ },
+ {
+ "label": "systemmale",
+ "value": "2842"
+ },
+ {
+ "label": "SystemNo.3",
+ "value": "2132"
+ },
+ {
+ "label": "systemowne",
+ "value": "768"
+ },
+ {
+ "label": "SystemTran",
+ "value": "682"
+ },
+ {
+ "label": "SystemTran",
+ "value": "1037"
+ },
+ {
+ "label": "TableTenni",
+ "value": "300"
+ },
+ {
+ "label": "Tailsman",
+ "value": "1314"
+ },
+ {
+ "label": "Takeaplane",
+ "value": "2314"
+ },
+ {
+ "label": "takeoffboy",
+ "value": "2511"
+ },
+ {
+ "label": "takeoverth",
+ "value": "2269"
+ },
+ {
+ "label": "takestock",
+ "value": "2028"
+ },
+ {
+ "label": "Talent",
+ "value": "1442"
+ },
+ {
+ "label": "Talents",
+ "value": "658"
+ },
+ {
+ "label": "TalentShow",
+ "value": "1109"
+ },
+ {
+ "label": "Talismans",
+ "value": "894"
+ },
+ {
+ "label": "TangJichen",
+ "value": "1704"
+ },
+ {
+ "label": "TangShaoqi",
+ "value": "2076"
+ },
+ {
+ "label": "TangThirty",
+ "value": "2725"
+ },
+ {
+ "label": "Taoist",
+ "value": "1047"
+ },
+ {
+ "label": "Tasker",
+ "value": "1235"
+ },
+ {
+ "label": "TaurenIron",
+ "value": "1780"
+ },
+ {
+ "label": "teacher",
+ "value": "635"
+ },
+ {
+ "label": "teacher-st",
+ "value": "2839"
+ },
+ {
+ "label": "teachermal",
+ "value": "2952"
+ },
+ {
+ "label": "Teachers",
+ "value": "185"
+ },
+ {
+ "label": "team",
+ "value": "941"
+ },
+ {
+ "label": "Teamwork",
+ "value": "113"
+ },
+ {
+ "label": "Technologi",
+ "value": "498"
+ },
+ {
+ "label": "Technology",
+ "value": "1029"
+ },
+ {
+ "label": "Technology",
+ "value": "828"
+ },
+ {
+ "label": "Technology",
+ "value": "1820"
+ },
+ {
+ "label": "TeckTyrann",
+ "value": "1957"
+ },
+ {
+ "label": "Teemotofly",
+ "value": "2299"
+ },
+ {
+ "label": "Teen",
+ "value": "2986"
+ },
+ {
+ "label": "TeenageXia",
+ "value": "2665"
+ },
+ {
+ "label": "TempleThir",
+ "value": "1800"
+ },
+ {
+ "label": "TenCommand",
+ "value": "2021"
+ },
+ {
+ "label": "Tennis",
+ "value": "301"
+ },
+ {
+ "label": "Tensura",
+ "value": "1194"
+ },
+ {
+ "label": "Tenthousan",
+ "value": "1790"
+ },
+ {
+ "label": "TenThousan",
+ "value": "2501"
+ },
+ {
+ "label": "TerminalIl",
+ "value": "445"
+ },
+ {
+ "label": "TerritoryC",
+ "value": "681"
+ },
+ {
+ "label": "TerritoryM",
+ "value": "1330"
+ },
+ {
+ "label": "Terrori",
+ "value": "3013"
+ },
+ {
+ "label": "Terrorists",
+ "value": "1430"
+ },
+ {
+ "label": "Thankyoufo",
+ "value": "2438"
+ },
+ {
+ "label": "thaw",
+ "value": "1967"
+ },
+ {
+ "label": "Theancesto",
+ "value": "2114"
+ },
+ {
+ "label": "Theashesar",
+ "value": "2277"
+ },
+ {
+ "label": "Thebigdevi",
+ "value": "1871"
+ },
+ {
+ "label": "Thebiggest",
+ "value": "1868"
+ },
+ {
+ "label": "Thecatisgo",
+ "value": "2322"
+ },
+ {
+ "label": "TheDevil",
+ "value": "3020"
+ },
+ {
+ "label": "Thefishmar",
+ "value": "2357"
+ },
+ {
+ "label": "Theflowero",
+ "value": "1662"
+ },
+ {
+ "label": "Thegloryof",
+ "value": "2542"
+ },
+ {
+ "label": "TheGodfath",
+ "value": "2018"
+ },
+ {
+ "label": "thegodofde",
+ "value": "1839"
+ },
+ {
+ "label": "TheGospelo",
+ "value": "1711"
+ },
+ {
+ "label": "Thelightof",
+ "value": "1770"
+ },
+ {
+ "label": "Thelistdep",
+ "value": "2627"
+ },
+ {
+ "label": "Thelistisi",
+ "value": "2240"
+ },
+ {
+ "label": "TheMainCha",
+ "value": "3019"
+ },
+ {
+ "label": "Thenewbact",
+ "value": "1917"
+ },
+ {
+ "label": "Theoceando",
+ "value": "1966"
+ },
+ {
+ "label": "Theoldfive",
+ "value": "2207"
+ },
+ {
+ "label": "Thepowerof",
+ "value": "2413"
+ },
+ {
+ "label": "Thequeenis",
+ "value": "2157"
+ },
+ {
+ "label": "therearefi",
+ "value": "2000"
+ },
+ {
+ "label": "Thestronga",
+ "value": "2960"
+ },
+ {
+ "label": "Thestronge",
+ "value": "1953"
+ },
+ {
+ "label": "Thesunsett",
+ "value": "1661"
+ },
+ {
+ "label": "TheThreeKi",
+ "value": "1719"
+ },
+ {
+ "label": "Thetopofth",
+ "value": "2724"
+ },
+ {
+ "label": "Thetruegod",
+ "value": "2160"
+ },
+ {
+ "label": "Thewayofth",
+ "value": "2641"
+ },
+ {
+ "label": "thewindisb",
+ "value": "1930"
+ },
+ {
+ "label": "Theworld&a",
+ "value": "2055"
+ },
+ {
+ "label": "Thieves",
+ "value": "770"
+ },
+ {
+ "label": "Thiller",
+ "value": "2889"
+ },
+ {
+ "label": "Thinkingof",
+ "value": "2046"
+ },
+ {
+ "label": "Thirty-two",
+ "value": "2177"
+ },
+ {
+ "label": "Thisissure",
+ "value": "2647"
+ },
+ {
+ "label": "thisyear",
+ "value": "1886"
+ },
+ {
+ "label": "Thousandso",
+ "value": "2377"
+ },
+ {
+ "label": "ThousandTe",
+ "value": "2258"
+ },
+ {
+ "label": "Three-flav",
+ "value": "1763"
+ },
+ {
+ "label": "Threedaysa",
+ "value": "1705"
+ },
+ {
+ "label": "ThreeDotIn",
+ "value": "2591"
+ },
+ {
+ "label": "ThreeKingd",
+ "value": "947"
+ },
+ {
+ "label": "threelittl",
+ "value": "2059"
+ },
+ {
+ "label": "ThreeLives",
+ "value": "1920"
+ },
+ {
+ "label": "ThreeLives",
+ "value": "2376"
+ },
+ {
+ "label": "Threesome",
+ "value": "507"
+ },
+ {
+ "label": "threeteeth",
+ "value": "2230"
+ },
+ {
+ "label": "ThreshingG",
+ "value": "1801"
+ },
+ {
+ "label": "Thriller",
+ "value": "601"
+ },
+ {
+ "label": "Thunderous",
+ "value": "1826"
+ },
+ {
+ "label": "Tianbang78",
+ "value": "1636"
+ },
+ {
+ "label": "TianbangDi",
+ "value": "2800"
+ },
+ {
+ "label": "Tianbanggr",
+ "value": "2622"
+ },
+ {
+ "label": "TianbangHu",
+ "value": "2475"
+ },
+ {
+ "label": "Tianbangol",
+ "value": "2074"
+ },
+ {
+ "label": "Tianbangth",
+ "value": "2006"
+ },
+ {
+ "label": "TianbangYa",
+ "value": "2169"
+ },
+ {
+ "label": "Tianshitak",
+ "value": "2194"
+ },
+ {
+ "label": "TianYiding",
+ "value": "2167"
+ },
+ {
+ "label": "Tiger",
+ "value": "3087"
+ },
+ {
+ "label": "Tigerteeth",
+ "value": "2396"
+ },
+ {
+ "label": "Time-Trave",
+ "value": "1791"
+ },
+ {
+ "label": "TimeandSpa",
+ "value": "1084"
+ },
+ {
+ "label": "TimeKingJO",
+ "value": "2433"
+ },
+ {
+ "label": "Timelimit",
+ "value": "2855"
+ },
+ {
+ "label": "TimeLoop",
+ "value": "567"
+ },
+ {
+ "label": "TimeManipu",
+ "value": "466"
+ },
+ {
+ "label": "TimeSkip",
+ "value": "254"
+ },
+ {
+ "label": "TimeTravel",
+ "value": "296"
+ },
+ {
+ "label": "TimidProta",
+ "value": "278"
+ },
+ {
+ "label": "TingFengZh",
+ "value": "1739"
+ },
+ {
+ "label": "Titans",
+ "value": "925"
+ },
+ {
+ "label": "tobacco",
+ "value": "2036"
+ },
+ {
+ "label": "Today&0",
+ "value": "2578"
+ },
+ {
+ "label": "Toilet",
+ "value": "2605"
+ },
+ {
+ "label": "Tokyo",
+ "value": "1010"
+ },
+ {
+ "label": "TokyoGhoul",
+ "value": "1351"
+ },
+ {
+ "label": "TomboyishF",
+ "value": "258"
+ },
+ {
+ "label": "TombRaider",
+ "value": "2069"
+ },
+ {
+ "label": "TombRaider",
+ "value": "2205"
+ },
+ {
+ "label": "TombRaider",
+ "value": "2284"
+ },
+ {
+ "label": "TombRaider",
+ "value": "2301"
+ },
+ {
+ "label": "tomorrowwi",
+ "value": "1741"
+ },
+ {
+ "label": "ToneMasaya",
+ "value": "1860"
+ },
+ {
+ "label": "TopMC",
+ "value": "1255"
+ },
+ {
+ "label": "TopoftheCl",
+ "value": "1878"
+ },
+ {
+ "label": "TopoftheCl",
+ "value": "1946"
+ },
+ {
+ "label": "TopoftheCl",
+ "value": "2615"
+ },
+ {
+ "label": "TopoftheFo",
+ "value": "2274"
+ },
+ {
+ "label": "Toriko",
+ "value": "690"
+ },
+ {
+ "label": "Torture",
+ "value": "870"
+ },
+ {
+ "label": "towashthed",
+ "value": "2536"
+ },
+ {
+ "label": "TowerDefen",
+ "value": "897"
+ },
+ {
+ "label": "Trade",
+ "value": "1498"
+ },
+ {
+ "label": "Tragedy",
+ "value": "730"
+ },
+ {
+ "label": "TragicPast",
+ "value": "128"
+ },
+ {
+ "label": "Tramsmigra",
+ "value": "1204"
+ },
+ {
+ "label": "Tranformer",
+ "value": "1493"
+ },
+ {
+ "label": "Transforma",
+ "value": "602"
+ },
+ {
+ "label": "Transmigat",
+ "value": "1221"
+ },
+ {
+ "label": "Transmigat",
+ "value": "3051"
+ },
+ {
+ "label": "Transmigra",
+ "value": "49"
+ },
+ {
+ "label": "Transmigra",
+ "value": "1100"
+ },
+ {
+ "label": "Transmigra",
+ "value": "1217"
+ },
+ {
+ "label": "Transmigra",
+ "value": "1548"
+ },
+ {
+ "label": "Transmigra",
+ "value": "642"
+ },
+ {
+ "label": "Transmigra",
+ "value": "1528"
+ },
+ {
+ "label": "Transmigra",
+ "value": "1585"
+ },
+ {
+ "label": "Transplant",
+ "value": "319"
+ },
+ {
+ "label": "Transporte",
+ "value": "279"
+ },
+ {
+ "label": "Transporte",
+ "value": "320"
+ },
+ {
+ "label": "Transporte",
+ "value": "349"
+ },
+ {
+ "label": "Transporte",
+ "value": "630"
+ },
+ {
+ "label": "Transporte",
+ "value": "1492"
+ },
+ {
+ "label": "Trap",
+ "value": "129"
+ },
+ {
+ "label": "Trauma",
+ "value": "3193"
+ },
+ {
+ "label": "travel",
+ "value": "2924"
+ },
+ {
+ "label": "Traveling",
+ "value": "1171"
+ },
+ {
+ "label": "TravelingT",
+ "value": "835"
+ },
+ {
+ "label": "traveller",
+ "value": "1232"
+ },
+ {
+ "label": "Traverse",
+ "value": "821"
+ },
+ {
+ "label": "TreasureHu",
+ "value": "776"
+ },
+ {
+ "label": "TreasureHu",
+ "value": "1579"
+ },
+ {
+ "label": "TreasureHu",
+ "value": "1588"
+ },
+ {
+ "label": "treeofenli",
+ "value": "2686"
+ },
+ {
+ "label": "Trialmarri",
+ "value": "3001"
+ },
+ {
+ "label": "TribalSoci",
+ "value": "280"
+ },
+ {
+ "label": "Trickster",
+ "value": "3058"
+ },
+ {
+ "label": "Trnasmigra",
+ "value": "1151"
+ },
+ {
+ "label": "TroubledWo",
+ "value": "2408"
+ },
+ {
+ "label": "TrueorFake",
+ "value": "2772"
+ },
+ {
+ "label": "TrumanLive",
+ "value": "2309"
+ },
+ {
+ "label": "TS",
+ "value": "2904"
+ },
+ {
+ "label": "TsukibaAki",
+ "value": "1993"
+ },
+ {
+ "label": "Tsundere",
+ "value": "130"
+ },
+ {
+ "label": "TsundereLo",
+ "value": "1325"
+ },
+ {
+ "label": "Tsundereml",
+ "value": "3050"
+ },
+ {
+ "label": "Tsunderesc",
+ "value": "2333"
+ },
+ {
+ "label": "Tsuru",
+ "value": "1292"
+ },
+ {
+ "label": "Turtle",
+ "value": "2877"
+ },
+ {
+ "label": "TwentyFame",
+ "value": "2236"
+ },
+ {
+ "label": "twilight",
+ "value": "1817"
+ },
+ {
+ "label": "twilightdr",
+ "value": "2649"
+ },
+ {
+ "label": "Twilightis",
+ "value": "1708"
+ },
+ {
+ "label": "twingods",
+ "value": "2648"
+ },
+ {
+ "label": "Twins",
+ "value": "372"
+ },
+ {
+ "label": "Twistbroth",
+ "value": "2525"
+ },
+ {
+ "label": "Twisted",
+ "value": "3028"
+ },
+ {
+ "label": "TwistedPer",
+ "value": "731"
+ },
+ {
+ "label": "Two-dimens",
+ "value": "2224"
+ },
+ {
+ "label": "Two-dimens",
+ "value": "2287"
+ },
+ {
+ "label": "Two-dimens",
+ "value": "2490"
+ },
+ {
+ "label": "two-wayred",
+ "value": "2843"
+ },
+ {
+ "label": "Twopeopleb",
+ "value": "2598"
+ },
+ {
+ "label": "Twopoundso",
+ "value": "2552"
+ },
+ {
+ "label": "TypeMoon",
+ "value": "1195"
+ },
+ {
+ "label": "Tyrant",
+ "value": "1385"
+ },
+ {
+ "label": "Ugly",
+ "value": "2899"
+ },
+ {
+ "label": "UglyProtag",
+ "value": "1414"
+ },
+ {
+ "label": "UglytoBeau",
+ "value": "305"
+ },
+ {
+ "label": "UltramanPo",
+ "value": "1785"
+ },
+ {
+ "label": "unbearable",
+ "value": "1897"
+ },
+ {
+ "label": "Unconditio",
+ "value": "725"
+ },
+ {
+ "label": "Undead",
+ "value": "2919"
+ },
+ {
+ "label": "undeadfish",
+ "value": "1977"
+ },
+ {
+ "label": "Undead丨Kn",
+ "value": "2071"
+ },
+ {
+ "label": "Undefeated",
+ "value": "2358"
+ },
+ {
+ "label": "Underestim",
+ "value": "373"
+ },
+ {
+ "label": "underlolic",
+ "value": "2583"
+ },
+ {
+ "label": "undersilve",
+ "value": "2290"
+ },
+ {
+ "label": "understate",
+ "value": "2715"
+ },
+ {
+ "label": "Undocument",
+ "value": "1654"
+ },
+ {
+ "label": "Unintentio",
+ "value": "2704"
+ },
+ {
+ "label": "Unique",
+ "value": "2866"
+ },
+ {
+ "label": "UniqueCult",
+ "value": "78"
+ },
+ {
+ "label": "UniqueWeap",
+ "value": "1428"
+ },
+ {
+ "label": "UniqueWeap",
+ "value": "1456"
+ },
+ {
+ "label": "unknown",
+ "value": "2394"
+ },
+ {
+ "label": "UnknownTao",
+ "value": "2276"
+ },
+ {
+ "label": "Unknowntea",
+ "value": "1683"
+ },
+ {
+ "label": "Unlimitedc",
+ "value": "2723"
+ },
+ {
+ "label": "UnlimitedF",
+ "value": "1123"
+ },
+ {
+ "label": "Unlucky",
+ "value": "2875"
+ },
+ {
+ "label": "UnluckyPro",
+ "value": "345"
+ },
+ {
+ "label": "Unprincipl",
+ "value": "3053"
+ },
+ {
+ "label": "Unreliable",
+ "value": "265"
+ },
+ {
+ "label": "Unrequited",
+ "value": "535"
+ },
+ {
+ "label": "Upgrade",
+ "value": "3154"
+ },
+ {
+ "label": "Upsetting",
+ "value": "2040"
+ },
+ {
+ "label": "Urban",
+ "value": "131"
+ },
+ {
+ "label": "UrbanDatan",
+ "value": "1728"
+ },
+ {
+ "label": "UrbanLife",
+ "value": "733"
+ },
+ {
+ "label": "UrbanMilit",
+ "value": "2379"
+ },
+ {
+ "label": "Urbanroman",
+ "value": "3228"
+ },
+ {
+ "label": "UrbanRoman",
+ "value": "3239"
+ },
+ {
+ "label": "urbanshark",
+ "value": "2113"
+ },
+ {
+ "label": "urbanstar",
+ "value": "2066"
+ },
+ {
+ "label": "Urbanyearn",
+ "value": "2726"
+ },
+ {
+ "label": "Urbanyouth",
+ "value": "1333"
+ },
+ {
+ "label": "Vampire",
+ "value": "1253"
+ },
+ {
+ "label": "vampiredri",
+ "value": "2374"
+ },
+ {
+ "label": "Vampires",
+ "value": "186"
+ },
+ {
+ "label": "VarietySho",
+ "value": "1250"
+ },
+ {
+ "label": "Vest",
+ "value": "1092"
+ },
+ {
+ "label": "VictorianE",
+ "value": "1551"
+ },
+ {
+ "label": "Video-Game",
+ "value": "3161"
+ },
+ {
+ "label": "Videogame",
+ "value": "3060"
+ },
+ {
+ "label": "videogames",
+ "value": "2909"
+ },
+ {
+ "label": "Viewofthec",
+ "value": "1825"
+ },
+ {
+ "label": "VikaBaka",
+ "value": "2802"
+ },
+ {
+ "label": "Villain",
+ "value": "512"
+ },
+ {
+ "label": "Villainess",
+ "value": "811"
+ },
+ {
+ "label": "Villainess",
+ "value": "1224"
+ },
+ {
+ "label": "VillainEvi",
+ "value": "670"
+ },
+ {
+ "label": "Villainher",
+ "value": "3198"
+ },
+ {
+ "label": "Villainmc",
+ "value": "3197"
+ },
+ {
+ "label": "Villainous",
+ "value": "3184"
+ },
+ {
+ "label": "VillainPro",
+ "value": "1241"
+ },
+ {
+ "label": "Villains",
+ "value": "1146"
+ },
+ {
+ "label": "VillIain",
+ "value": "1089"
+ },
+ {
+ "label": "Violence",
+ "value": "2908"
+ },
+ {
+ "label": "VirtualRea",
+ "value": "162"
+ },
+ {
+ "label": "VoiceActor",
+ "value": "1423"
+ },
+ {
+ "label": "VoicePack",
+ "value": "665"
+ },
+ {
+ "label": "Vrmmo",
+ "value": "3176"
+ },
+ {
+ "label": "Vrmmorpg",
+ "value": "3175"
+ },
+ {
+ "label": "Walkinthec",
+ "value": "2152"
+ },
+ {
+ "label": "Wanderer",
+ "value": "1940"
+ },
+ {
+ "label": "wanderings",
+ "value": "1815"
+ },
+ {
+ "label": "WangEr",
+ "value": "2317"
+ },
+ {
+ "label": "WangJiu",
+ "value": "1694"
+ },
+ {
+ "label": "WangXiaomi",
+ "value": "2213"
+ },
+ {
+ "label": "wanttocome",
+ "value": "2356"
+ },
+ {
+ "label": "wanttoeatg",
+ "value": "2381"
+ },
+ {
+ "label": "War",
+ "value": "1076"
+ },
+ {
+ "label": "Warcraft",
+ "value": "2938"
+ },
+ {
+ "label": "Warhammer4",
+ "value": "1296"
+ },
+ {
+ "label": "Warlock",
+ "value": "2813"
+ },
+ {
+ "label": "Warlocks",
+ "value": "1297"
+ },
+ {
+ "label": "warmtime",
+ "value": "2484"
+ },
+ {
+ "label": "WarofCivil",
+ "value": "2765"
+ },
+ {
+ "label": "Wars",
+ "value": "291"
+ },
+ {
+ "label": "Warship",
+ "value": "1172"
+ },
+ {
+ "label": "WarsWeakto",
+ "value": "514"
+ },
+ {
+ "label": "wastefish",
+ "value": "2308"
+ },
+ {
+ "label": "Wasteland",
+ "value": "1030"
+ },
+ {
+ "label": "WasteWoodA",
+ "value": "2025"
+ },
+ {
+ "label": "watermelon",
+ "value": "2024"
+ },
+ {
+ "label": "watertown",
+ "value": "2470"
+ },
+ {
+ "label": "Weak-to-st",
+ "value": "3178"
+ },
+ {
+ "label": "WeakProtag",
+ "value": "497"
+ },
+ {
+ "label": "Weakstrong",
+ "value": "3049"
+ },
+ {
+ "label": "Weakstrong",
+ "value": "3199"
+ },
+ {
+ "label": "WeaktoClan",
+ "value": "676"
+ },
+ {
+ "label": "WeaktoStro",
+ "value": "32"
+ },
+ {
+ "label": "WeaktoStro",
+ "value": "3210"
+ },
+ {
+ "label": "Wealth",
+ "value": "1130"
+ },
+ {
+ "label": "WealthChar",
+ "value": "1205"
+ },
+ {
+ "label": "Wealthy",
+ "value": "1598"
+ },
+ {
+ "label": "WealthyCha",
+ "value": "7"
+ },
+ {
+ "label": "WealthyCha",
+ "value": "1173"
+ },
+ {
+ "label": "wealthyfam",
+ "value": "2945"
+ },
+ {
+ "label": "Wearabook",
+ "value": "1216"
+ },
+ {
+ "label": "WearBook",
+ "value": "742"
+ },
+ {
+ "label": "wearingabo",
+ "value": "1320"
+ },
+ {
+ "label": "weektoStro",
+ "value": "1607"
+ },
+ {
+ "label": "WenGuang",
+ "value": "2417"
+ },
+ {
+ "label": "WenXuanyu",
+ "value": "1995"
+ },
+ {
+ "label": "Werebeasts",
+ "value": "857"
+ },
+ {
+ "label": "Werewolf",
+ "value": "2978"
+ },
+ {
+ "label": "WesternFan",
+ "value": "993"
+ },
+ {
+ "label": "Westerngod",
+ "value": "3150"
+ },
+ {
+ "label": "Westernrai",
+ "value": "1970"
+ },
+ {
+ "label": "What&03",
+ "value": "1874"
+ },
+ {
+ "label": "Whitehorse",
+ "value": "2206"
+ },
+ {
+ "label": "whitekeybo",
+ "value": "2101"
+ },
+ {
+ "label": "whiteshirt",
+ "value": "2682"
+ },
+ {
+ "label": "Wholesome",
+ "value": "2860"
+ },
+ {
+ "label": "Whoringmak",
+ "value": "2596"
+ },
+ {
+ "label": "wife-chasi",
+ "value": "2872"
+ },
+ {
+ "label": "WifeistheD",
+ "value": "2464"
+ },
+ {
+ "label": "Wilderness",
+ "value": "1562"
+ },
+ {
+ "label": "willowcand",
+ "value": "2304"
+ },
+ {
+ "label": "windandmap",
+ "value": "2497"
+ },
+ {
+ "label": "windingpat",
+ "value": "1974"
+ },
+ {
+ "label": "WindSpirit",
+ "value": "1786"
+ },
+ {
+ "label": "Winningthe",
+ "value": "2144"
+ },
+ {
+ "label": "Wisdom",
+ "value": "3212"
+ },
+ {
+ "label": "wishardtow",
+ "value": "1672"
+ },
+ {
+ "label": "Wishes",
+ "value": "348"
+ },
+ {
+ "label": "Witch",
+ "value": "2847"
+ },
+ {
+ "label": "Witches",
+ "value": "437"
+ },
+ {
+ "label": "witchfan",
+ "value": "2001"
+ },
+ {
+ "label": "witheredpr",
+ "value": "2273"
+ },
+ {
+ "label": "Wizard",
+ "value": "706"
+ },
+ {
+ "label": "Wizards",
+ "value": "391"
+ },
+ {
+ "label": "World-hopp",
+ "value": "812"
+ },
+ {
+ "label": "Worldbuild",
+ "value": "2965"
+ },
+ {
+ "label": "WorldEmpir",
+ "value": "691"
+ },
+ {
+ "label": "WorldHoppi",
+ "value": "273"
+ },
+ {
+ "label": "Worldofchu",
+ "value": "3082"
+ },
+ {
+ "label": "WorldofWar",
+ "value": "1304"
+ },
+ {
+ "label": "Worlds",
+ "value": "2992"
+ },
+ {
+ "label": "Worldtrave",
+ "value": "3160"
+ },
+ {
+ "label": "WorldTrave",
+ "value": "218"
+ },
+ {
+ "label": "WorldTree",
+ "value": "1467"
+ },
+ {
+ "label": "WorldWar2",
+ "value": "1077"
+ },
+ {
+ "label": "WOW",
+ "value": "2753"
+ },
+ {
+ "label": "writeonlyz",
+ "value": "1687"
+ },
+ {
+ "label": "Writer",
+ "value": "1499"
+ },
+ {
+ "label": "Writers",
+ "value": "404"
+ },
+ {
+ "label": "Wuhutookof",
+ "value": "2294"
+ },
+ {
+ "label": "Wuxia",
+ "value": "425"
+ },
+ {
+ "label": "Wuxicheng",
+ "value": "1703"
+ },
+ {
+ "label": "WW2",
+ "value": "2838"
+ },
+ {
+ "label": "Xianxia",
+ "value": "709"
+ },
+ {
+ "label": "XiaomiStar",
+ "value": "2523"
+ },
+ {
+ "label": "Xiaonianbl",
+ "value": "2406"
+ },
+ {
+ "label": "XiaonianXu",
+ "value": "2500"
+ },
+ {
+ "label": "Xiaosaid",
+ "value": "2573"
+ },
+ {
+ "label": "Xiaothreey",
+ "value": "2351"
+ },
+ {
+ "label": "XiaoxiangP",
+ "value": "2714"
+ },
+ {
+ "label": "Xiaoxin",
+ "value": "1795"
+ },
+ {
+ "label": "XieDaoheng",
+ "value": "2393"
+ },
+ {
+ "label": "XiuXiuXiuX",
+ "value": "1700"
+ },
+ {
+ "label": "Xuanhuan",
+ "value": "487"
+ },
+ {
+ "label": "XuebaIII",
+ "value": "2098"
+ },
+ {
+ "label": "Xuebaisinv",
+ "value": "2135"
+ },
+ {
+ "label": "Xueqiunder",
+ "value": "1918"
+ },
+ {
+ "label": "Xufamilyel",
+ "value": "2099"
+ },
+ {
+ "label": "XuIintheTa",
+ "value": "2331"
+ },
+ {
+ "label": "Yakult",
+ "value": "2139"
+ },
+ {
+ "label": "Yamen",
+ "value": "2876"
+ },
+ {
+ "label": "Yandere",
+ "value": "304"
+ },
+ {
+ "label": "YangXiaoA",
+ "value": "1915"
+ },
+ {
+ "label": "Yaoi",
+ "value": "1349"
+ },
+ {
+ "label": "Yaoyue",
+ "value": "2355"
+ },
+ {
+ "label": "yearaftery",
+ "value": "2705"
+ },
+ {
+ "label": "yearningfo",
+ "value": "2084"
+ },
+ {
+ "label": "yearningfo",
+ "value": "2426"
+ },
+ {
+ "label": "yearningfo",
+ "value": "2624"
+ },
+ {
+ "label": "Yearningfo",
+ "value": "2050"
+ },
+ {
+ "label": "Yearningfo",
+ "value": "2218"
+ },
+ {
+ "label": "Yearningto",
+ "value": "2782"
+ },
+ {
+ "label": "YeGongzi",
+ "value": "2561"
+ },
+ {
+ "label": "YeGucheng",
+ "value": "2526"
+ },
+ {
+ "label": "YellowSpri",
+ "value": "1638"
+ },
+ {
+ "label": "YeluChengj",
+ "value": "1678"
+ },
+ {
+ "label": "YeQianqiu",
+ "value": "2645"
+ },
+ {
+ "label": "YeXiaobai",
+ "value": "2141"
+ },
+ {
+ "label": "YeYe",
+ "value": "2790"
+ },
+ {
+ "label": "Ying&03",
+ "value": "2131"
+ },
+ {
+ "label": "YingXiaofe",
+ "value": "1881"
+ },
+ {
+ "label": "YinLiisins",
+ "value": "1772"
+ },
+ {
+ "label": "Yongchuang",
+ "value": "1835"
+ },
+ {
+ "label": "youaretoow",
+ "value": "1750"
+ },
+ {
+ "label": "Young",
+ "value": "3204"
+ },
+ {
+ "label": "YoungerBro",
+ "value": "1431"
+ },
+ {
+ "label": "YoungerLov",
+ "value": "728"
+ },
+ {
+ "label": "YoungerSis",
+ "value": "33"
+ },
+ {
+ "label": "YoungGirl",
+ "value": "3173"
+ },
+ {
+ "label": "younglovei",
+ "value": "2903"
+ },
+ {
+ "label": "YoungMaste",
+ "value": "2555"
+ },
+ {
+ "label": "YoungMaste",
+ "value": "2637"
+ },
+ {
+ "label": "Youth",
+ "value": "1560"
+ },
+ {
+ "label": "Ystem",
+ "value": "3188"
+ },
+ {
+ "label": "Yu-Gi-Oh",
+ "value": "1614"
+ },
+ {
+ "label": "YuboTiandi",
+ "value": "2136"
+ },
+ {
+ "label": "Yugioh",
+ "value": "1391"
+ },
+ {
+ "label": "Yunmu",
+ "value": "2090"
+ },
+ {
+ "label": "YunZhongju",
+ "value": "2717"
+ },
+ {
+ "label": "Yuri",
+ "value": "773"
+ },
+ {
+ "label": "YuTsingYi",
+ "value": "2397"
+ },
+ {
+ "label": "YuXiaoqi",
+ "value": "1997"
+ },
+ {
+ "label": "YuYuyu",
+ "value": "2569"
+ },
+ {
+ "label": "z-man",
+ "value": "623"
+ },
+ {
+ "label": "Zerg",
+ "value": "1051"
+ },
+ {
+ "label": "Zergs",
+ "value": "800"
+ },
+ {
+ "label": "ZhangErgou",
+ "value": "2530"
+ },
+ {
+ "label": "ZhangFeiin",
+ "value": "2449"
+ },
+ {
+ "label": "ZhangJuli",
+ "value": "2425"
+ },
+ {
+ "label": "ZhangTianb",
+ "value": "2193"
+ },
+ {
+ "label": "zhishen",
+ "value": "2577"
+ },
+ {
+ "label": "ZhuDabald",
+ "value": "2362"
+ },
+ {
+ "label": "ZhugeDali&",
+ "value": "2458"
+ },
+ {
+ "label": "ZhugeIrona",
+ "value": "2022"
+ },
+ {
+ "label": "Zhugeiscra",
+ "value": "2466"
+ },
+ {
+ "label": "ZhuZhiyue",
+ "value": "1981"
+ },
+ {
+ "label": "Zippo",
+ "value": "2586"
+ },
+ {
+ "label": "ZiXuanXuan",
+ "value": "1753"
+ },
+ {
+ "label": "Zombie",
+ "value": "1175"
+ },
+ {
+ "label": "zombiefish",
+ "value": "2115"
+ },
+ {
+ "label": "ZombieGod",
+ "value": "2008"
+ },
+ {
+ "label": "ZombieQuee",
+ "value": "1179"
+ },
+ {
+ "label": "Zombies",
+ "value": "205"
+ },
+ {
+ "label": "ZombieSumo",
+ "value": "2806"
+ },
+ {
+ "label": "Zoo",
+ "value": "1566"
+ },
+ {
+ "label": "Zuge",
+ "value": "2011"
+ },
+ {
+ "label": "Zulongstil",
+ "value": "2121"
+ },
+ {
+ "label": "ZuwuGonggo",
+ "value": "2549"
+ },
+ {
+ "label": "仕辰",
+ "value": "1727"
+ },
+ {
+ "label": "小封",
+ "value": "2052"
+ },
+ {
+ "label": "慕阳",
+ "value": "1907"
+ },
+ {
+ "label": "森罗",
+ "value": "2221"
+ },
+ {
+ "label": "清裁",
+ "value": "2722"
+ },
+ {
+ "label": "萌图",
+ "value": "2700"
+ },
+ {
+ "label": "谢邀",
+ "value": "1754"
+ },
+ {
+ "label": "酣歌",
+ "value": "2034"
+ },
+ {
+ "label": "铁帅",
+ "value": "1945"
+ },
+ {
+ "label": "零充",
+ "value": "2783"
+ },
+ {
+ "label": "饕牛",
+ "value": "1682"
+ }
+ ],
+ "value": "",
+ "type": "Picker"
+ }
+ }
+ },
+ {
+ "id": "fannovel",
+ "sourceSite": "https://www.fannovel.com",
+ "sourceName": "FanNovel",
+ "filters": {
+ "genres": {
+ "label": "Genre / Category",
+ "options": [
+ {
+ "label": "Anime",
+ "value": "anime"
+ },
+ {
+ "label": "BG",
+ "value": "bg"
+ },
+ {
+ "label": "Billionaire",
+ "value": "billionaire"
+ },
+ {
+ "label": "BL",
+ "value": "bl"
+ },
+ {
+ "label": "Competitive Sports",
+ "value": "competitive-sports"
+ },
+ {
+ "label": "Crossing",
+ "value": "crossing"
+ },
+ {
+ "label": "Derivative Fanfic",
+ "value": "derivative-fanfic"
+ },
+ {
+ "label": "Detective",
+ "value": "detective"
+ },
+ {
+ "label": "Douluo",
+ "value": "douluo"
+ },
+ {
+ "label": "Dragon Ball",
+ "value": "dragon-ball"
+ },
+ {
+ "label": "Ecchi",
+ "value": "ecchi"
+ },
+ {
+ "label": "Elf",
+ "value": "elf"
+ },
+ {
+ "label": "Faloo",
+ "value": "faloo"
+ },
+ {
+ "label": "Fan-Fiction",
+ "value": "fan-fiction"
+ },
+ {
+ "label": "Football",
+ "value": "football"
+ },
+ {
+ "label": "Game",
+ "value": "game"
+ },
+ {
+ "label": "GL",
+ "value": "gl"
+ },
+ {
+ "label": "Historical Romance",
+ "value": "historical-romance"
+ },
+ {
+ "label": "Hogwarts",
+ "value": "hogwarts"
+ },
+ {
+ "label": "Hot",
+ "value": "hot"
+ },
+ {
+ "label": "Korean",
+ "value": "korean"
+ },
+ {
+ "label": "LGBT",
+ "value": "lgbt"
+ },
+ {
+ "label": "Magic",
+ "value": "magic"
+ },
+ {
+ "label": "Marvel",
+ "value": "marvel"
+ },
+ {
+ "label": "Military",
+ "value": "military"
+ },
+ {
+ "label": "Modern Life",
+ "value": "modern-life"
+ },
+ {
+ "label": "Movies",
+ "value": "movies"
+ },
+ {
+ "label": "Naruto",
+ "value": "naruto"
+ },
+ {
+ "label": "NBA",
+ "value": "nba"
+ },
+ {
+ "label": "One Piece",
+ "value": "one-piece"
+ },
+ {
+ "label": "Other",
+ "value": "other"
+ },
+ {
+ "label": "Pokemon",
+ "value": "pokemon"
+ },
+ {
+ "label": "Realistic Fiction",
+ "value": "realistic-fiction"
+ },
+ {
+ "label": "Rebirth",
+ "value": "rebirth"
+ },
+ {
+ "label": "Reincarnation",
+ "value": "reincarnation"
+ },
+ {
+ "label": "Science fiction",
+ "value": "science-fiction"
+ },
+ {
+ "label": "Secret",
+ "value": "secret"
+ },
+ {
+ "label": "Shoujo Ai",
+ "value": "shoujo-ai"
+ },
+ {
+ "label": "Sign in",
+ "value": "sign-in"
+ },
+ {
+ "label": "Smut",
+ "value": "smut"
+ },
+ {
+ "label": "Suspense",
+ "value": "suspense"
+ },
+ {
+ "label": "System",
+ "value": "system"
+ },
+ {
+ "label": "Systemflow",
+ "value": "systemflow"
+ },
+ {
+ "label": "Terror",
+ "value": "terror"
+ },
+ {
+ "label": "Travel Through Time",
+ "value": "travel-through-time"
+ },
+ {
+ "label": "Urban Life",
+ "value": "urban-life"
+ },
+ {
+ "label": "Villain",
+ "value": "villain"
+ },
+ {
+ "label": "War",
+ "value": "war"
+ },
+ {
+ "label": "Yuri",
+ "value": "yuri"
+ }
+ ],
+ "value": "",
+ "type": "Picker"
+ },
+ "tags": {
+ "label": "Tags",
+ "options": [
+ {
+ "label": "Abandoned",
+ "value": "400"
+ },
+ {
+ "label": "AbandonedC",
+ "value": "3708"
+ },
+ {
+ "label": "Ability",
+ "value": "2734"
+ },
+ {
+ "label": "AbilitySte",
+ "value": "954"
+ },
+ {
+ "label": "AbsentPare",
+ "value": "3644"
+ },
+ {
+ "label": "abuse",
+ "value": "3312"
+ },
+ {
+ "label": "AbusiveCha",
+ "value": "3653"
+ },
+ {
+ "label": "AbusiveCha",
+ "value": "3874"
+ },
+ {
+ "label": "Abyss",
+ "value": "4727"
+ },
+ {
+ "label": "Academy",
+ "value": "58"
+ },
+ {
+ "label": "Accelerate",
+ "value": "3717"
+ },
+ {
+ "label": "ACGN",
+ "value": "4121"
+ },
+ {
+ "label": "Acting",
+ "value": "250"
+ },
+ {
+ "label": "Action",
+ "value": "10"
+ },
+ {
+ "label": "Actors",
+ "value": "3999"
+ },
+ {
+ "label": "AdaptedtoA",
+ "value": "4177"
+ },
+ {
+ "label": "AdaptedtoD",
+ "value": "4581"
+ },
+ {
+ "label": "AdaptedtoD",
+ "value": "4646"
+ },
+ {
+ "label": "AdaptedtoG",
+ "value": "3975"
+ },
+ {
+ "label": "AdaptedtoM",
+ "value": "4580"
+ },
+ {
+ "label": "AdaptedtoM",
+ "value": "3955"
+ },
+ {
+ "label": "AdaptedtoM",
+ "value": "4595"
+ },
+ {
+ "label": "AdaptedtoM",
+ "value": "4719"
+ },
+ {
+ "label": "AdoptedChi",
+ "value": "3869"
+ },
+ {
+ "label": "AdoptedPro",
+ "value": "3720"
+ },
+ {
+ "label": "Adult",
+ "value": "924"
+ },
+ {
+ "label": "Adultery",
+ "value": "1003"
+ },
+ {
+ "label": "Advancedte",
+ "value": "793"
+ },
+ {
+ "label": "Adventure",
+ "value": "27"
+ },
+ {
+ "label": "Adventurer",
+ "value": "551"
+ },
+ {
+ "label": "Adventurer",
+ "value": "4741"
+ },
+ {
+ "label": "Aesthetic",
+ "value": "4761"
+ },
+ {
+ "label": "Affair",
+ "value": "4653"
+ },
+ {
+ "label": "Afterthesh",
+ "value": "4416"
+ },
+ {
+ "label": "Afunnyguy",
+ "value": "4408"
+ },
+ {
+ "label": "Agedistrib",
+ "value": "4447"
+ },
+ {
+ "label": "Agent",
+ "value": "3360"
+ },
+ {
+ "label": "AgeProgres",
+ "value": "3707"
+ },
+ {
+ "label": "AgeRegress",
+ "value": "4126"
+ },
+ {
+ "label": "Aggressive",
+ "value": "3808"
+ },
+ {
+ "label": "airflow",
+ "value": "4378"
+ },
+ {
+ "label": "Alchemy",
+ "value": "105"
+ },
+ {
+ "label": "Alien",
+ "value": "2943"
+ },
+ {
+ "label": "Aliens",
+ "value": "328"
+ },
+ {
+ "label": "Almighty",
+ "value": "3237"
+ },
+ {
+ "label": "Alpha",
+ "value": "172"
+ },
+ {
+ "label": "AlternateH",
+ "value": "4325"
+ },
+ {
+ "label": "AlternateW",
+ "value": "3684"
+ },
+ {
+ "label": "Alternativ",
+ "value": "1317"
+ },
+ {
+ "label": "Amatchmade",
+ "value": "4528"
+ },
+ {
+ "label": "ambiguous",
+ "value": "4547"
+ },
+ {
+ "label": "America",
+ "value": "3182"
+ },
+ {
+ "label": "Americaiss",
+ "value": "4516"
+ },
+ {
+ "label": "Americas",
+ "value": "4744"
+ },
+ {
+ "label": "Amnesia",
+ "value": "154"
+ },
+ {
+ "label": "Anal",
+ "value": "926"
+ },
+ {
+ "label": "AncientChi",
+ "value": "3648"
+ },
+ {
+ "label": "AncientChi",
+ "value": "3768"
+ },
+ {
+ "label": "ancienthis",
+ "value": "4445"
+ },
+ {
+ "label": "AncientSpi",
+ "value": "4224"
+ },
+ {
+ "label": "AncientTim",
+ "value": "3649"
+ },
+ {
+ "label": "ancientwil",
+ "value": "4375"
+ },
+ {
+ "label": "Androgynou",
+ "value": "3836"
+ },
+ {
+ "label": "Androids",
+ "value": "4709"
+ },
+ {
+ "label": "Angel",
+ "value": "792"
+ },
+ {
+ "label": "Angels",
+ "value": "1060"
+ },
+ {
+ "label": "AnimalChar",
+ "value": "3778"
+ },
+ {
+ "label": "AnimalRear",
+ "value": "3994"
+ },
+ {
+ "label": "Animation",
+ "value": "4731"
+ },
+ {
+ "label": "AnimationD",
+ "value": "4732"
+ },
+ {
+ "label": "Anime",
+ "value": "905"
+ },
+ {
+ "label": "Anotherwor",
+ "value": "773"
+ },
+ {
+ "label": "Anti-heroP",
+ "value": "3995"
+ },
+ {
+ "label": "Anti-Japan",
+ "value": "4289"
+ },
+ {
+ "label": "Anti-Magic",
+ "value": "3986"
+ },
+ {
+ "label": "Anti-MC",
+ "value": "4178"
+ },
+ {
+ "label": "Anti-routi",
+ "value": "2807"
+ },
+ {
+ "label": "Anti-socia",
+ "value": "3699"
+ },
+ {
+ "label": "Antihero",
+ "value": "25"
+ },
+ {
+ "label": "AntiheroPr",
+ "value": "3700"
+ },
+ {
+ "label": "ApartmentL",
+ "value": "3937"
+ },
+ {
+ "label": "ApatheticP",
+ "value": "3738"
+ },
+ {
+ "label": "Apocalypse",
+ "value": "187"
+ },
+ {
+ "label": "Appearance",
+ "value": "3709"
+ },
+ {
+ "label": "Appearance",
+ "value": "3837"
+ },
+ {
+ "label": "Apprentice",
+ "value": "4681"
+ },
+ {
+ "label": "archeology",
+ "value": "4329"
+ },
+ {
+ "label": "Archery",
+ "value": "743"
+ },
+ {
+ "label": "Aresstream",
+ "value": "4542"
+ },
+ {
+ "label": "Aristocrac",
+ "value": "232"
+ },
+ {
+ "label": "Aristocrat",
+ "value": "4673"
+ },
+ {
+ "label": "Arknights",
+ "value": "4073"
+ },
+ {
+ "label": "armoredcit",
+ "value": "4720"
+ },
+ {
+ "label": "ArmsDealer",
+ "value": "3654"
+ },
+ {
+ "label": "Army",
+ "value": "542"
+ },
+ {
+ "label": "ArmyBuildi",
+ "value": "3638"
+ },
+ {
+ "label": "ArrangedMa",
+ "value": "87"
+ },
+ {
+ "label": "ArrayMage",
+ "value": "4537"
+ },
+ {
+ "label": "ArrogantCh",
+ "value": "3675"
+ },
+ {
+ "label": "ArtifactCr",
+ "value": "3872"
+ },
+ {
+ "label": "Artifacts",
+ "value": "162"
+ },
+ {
+ "label": "ArtifactsB",
+ "value": "3829"
+ },
+ {
+ "label": "ArtifactsC",
+ "value": "3725"
+ },
+ {
+ "label": "artificer",
+ "value": "4162"
+ },
+ {
+ "label": "Artificial",
+ "value": "3732"
+ },
+ {
+ "label": "Artists",
+ "value": "4591"
+ },
+ {
+ "label": "Assasins",
+ "value": "3905"
+ },
+ {
+ "label": "Assassin",
+ "value": "4705"
+ },
+ {
+ "label": "Assassins",
+ "value": "627"
+ },
+ {
+ "label": "athlete",
+ "value": "3050"
+ },
+ {
+ "label": "Autism",
+ "value": "253"
+ },
+ {
+ "label": "Average-lo",
+ "value": "3923"
+ },
+ {
+ "label": "Award-winn",
+ "value": "4702"
+ },
+ {
+ "label": "AwkwardPro",
+ "value": "4648"
+ },
+ {
+ "label": "Azeroth",
+ "value": "1232"
+ },
+ {
+ "label": "AzurLane",
+ "value": "3971"
+ },
+ {
+ "label": "Baby",
+ "value": "317"
+ },
+ {
+ "label": "Badboy",
+ "value": "254"
+ },
+ {
+ "label": "Baseball",
+ "value": "4125"
+ },
+ {
+ "label": "BasedonaMo",
+ "value": "3685"
+ },
+ {
+ "label": "BasedonaTV",
+ "value": "3767"
+ },
+ {
+ "label": "Basket",
+ "value": "4115"
+ },
+ {
+ "label": "basketball",
+ "value": "3049"
+ },
+ {
+ "label": "BattleAcad",
+ "value": "3751"
+ },
+ {
+ "label": "BattleComp",
+ "value": "4022"
+ },
+ {
+ "label": "battleofwi",
+ "value": "4541"
+ },
+ {
+ "label": "Bdsm",
+ "value": "2736"
+ },
+ {
+ "label": "BE",
+ "value": "2913"
+ },
+ {
+ "label": "Beast",
+ "value": "4025"
+ },
+ {
+ "label": "BeastCompa",
+ "value": "3741"
+ },
+ {
+ "label": "Beastkin",
+ "value": "4058"
+ },
+ {
+ "label": "Beasts",
+ "value": "501"
+ },
+ {
+ "label": "BeastTamer",
+ "value": "1282"
+ },
+ {
+ "label": "Beasttamin",
+ "value": "137"
+ },
+ {
+ "label": "beastworld",
+ "value": "4348"
+ },
+ {
+ "label": "BeautifulF",
+ "value": "3701"
+ },
+ {
+ "label": "beautifulh",
+ "value": "3792"
+ },
+ {
+ "label": "Beautifull",
+ "value": "4098"
+ },
+ {
+ "label": "BeautifulP",
+ "value": "3877"
+ },
+ {
+ "label": "Beauty",
+ "value": "373"
+ },
+ {
+ "label": "Behindthes",
+ "value": "4269"
+ },
+ {
+ "label": "Bellyblack",
+ "value": "4209"
+ },
+ {
+ "label": "Bestiality",
+ "value": "4159"
+ },
+ {
+ "label": "Betrayal",
+ "value": "45"
+ },
+ {
+ "label": "BickeringC",
+ "value": "4019"
+ },
+ {
+ "label": "bigbrain",
+ "value": "4229"
+ },
+ {
+ "label": "Billionair",
+ "value": "4680"
+ },
+ {
+ "label": "Biochemist",
+ "value": "4401"
+ },
+ {
+ "label": "Biochip",
+ "value": "3629"
+ },
+ {
+ "label": "Biomass",
+ "value": "4130"
+ },
+ {
+ "label": "Birth",
+ "value": "2741"
+ },
+ {
+ "label": "Bl",
+ "value": "292"
+ },
+ {
+ "label": "black-bell",
+ "value": "4536"
+ },
+ {
+ "label": "Blackbelli",
+ "value": "4089"
+ },
+ {
+ "label": "BlackBelly",
+ "value": "3952"
+ },
+ {
+ "label": "Blackening",
+ "value": "3046"
+ },
+ {
+ "label": "Blacklight",
+ "value": "4131"
+ },
+ {
+ "label": "Blacklotus",
+ "value": "4404"
+ },
+ {
+ "label": "Blackmail",
+ "value": "898"
+ },
+ {
+ "label": "Blacksmith",
+ "value": "705"
+ },
+ {
+ "label": "Bleach",
+ "value": "1114"
+ },
+ {
+ "label": "Blinddate",
+ "value": "4509"
+ },
+ {
+ "label": "BlindDates",
+ "value": "4142"
+ },
+ {
+ "label": "BlindProta",
+ "value": "4611"
+ },
+ {
+ "label": "Blood",
+ "value": "2692"
+ },
+ {
+ "label": "Bloodborne",
+ "value": "4074"
+ },
+ {
+ "label": "Bloodlines",
+ "value": "80"
+ },
+ {
+ "label": "BloodManip",
+ "value": "4152"
+ },
+ {
+ "label": "Bloodpumpi",
+ "value": "790"
+ },
+ {
+ "label": "bodyguard",
+ "value": "3507"
+ },
+ {
+ "label": "Bodyguards",
+ "value": "4593"
+ },
+ {
+ "label": "BodySwap",
+ "value": "4111"
+ },
+ {
+ "label": "BodyTemper",
+ "value": "4169"
+ },
+ {
+ "label": "Books",
+ "value": "3772"
+ },
+ {
+ "label": "Booktransm",
+ "value": "205"
+ },
+ {
+ "label": "Bookworm",
+ "value": "3873"
+ },
+ {
+ "label": "Boss",
+ "value": "123"
+ },
+ {
+ "label": "Boss-Subor",
+ "value": "3686"
+ },
+ {
+ "label": "BOSSflow",
+ "value": "4297"
+ },
+ {
+ "label": "Boxing",
+ "value": "4655"
+ },
+ {
+ "label": "Brainhole",
+ "value": "4501"
+ },
+ {
+ "label": "Brainwashi",
+ "value": "988"
+ },
+ {
+ "label": "BrokenEnga",
+ "value": "4589"
+ },
+ {
+ "label": "Brother",
+ "value": "3358"
+ },
+ {
+ "label": "BrotherCom",
+ "value": "3773"
+ },
+ {
+ "label": "Brotherhoo",
+ "value": "353"
+ },
+ {
+ "label": "BTTH",
+ "value": "4029"
+ },
+ {
+ "label": "Buddhism",
+ "value": "492"
+ },
+ {
+ "label": "building",
+ "value": "4752"
+ },
+ {
+ "label": "Bulldozer",
+ "value": "4716"
+ },
+ {
+ "label": "Bullying",
+ "value": "3810"
+ },
+ {
+ "label": "BungouStra",
+ "value": "4165"
+ },
+ {
+ "label": "BunguoStra",
+ "value": "4056"
+ },
+ {
+ "label": "Business",
+ "value": "3968"
+ },
+ {
+ "label": "BusinessMa",
+ "value": "3655"
+ },
+ {
+ "label": "BusinessMa",
+ "value": "3969"
+ },
+ {
+ "label": "Businessme",
+ "value": "315"
+ },
+ {
+ "label": "Businesswo",
+ "value": "340"
+ },
+ {
+ "label": "Butlers",
+ "value": "4594"
+ },
+ {
+ "label": "calm",
+ "value": "2947"
+ },
+ {
+ "label": "Calmdown",
+ "value": "4745"
+ },
+ {
+ "label": "CalmProtag",
+ "value": "3726"
+ },
+ {
+ "label": "Campus",
+ "value": "438"
+ },
+ {
+ "label": "CampusLove",
+ "value": "3938"
+ },
+ {
+ "label": "Cannibalis",
+ "value": "3841"
+ },
+ {
+ "label": "cannonfodd",
+ "value": "4228"
+ },
+ {
+ "label": "Capitalist",
+ "value": "3893"
+ },
+ {
+ "label": "captain",
+ "value": "3192"
+ },
+ {
+ "label": "card",
+ "value": "2934"
+ },
+ {
+ "label": "CardGames",
+ "value": "3815"
+ },
+ {
+ "label": "CareerOrie",
+ "value": "3959"
+ },
+ {
+ "label": "CarefreePr",
+ "value": "3997"
+ },
+ {
+ "label": "CaringProt",
+ "value": "3689"
+ },
+ {
+ "label": "carpenter",
+ "value": "4755"
+ },
+ {
+ "label": "Cat",
+ "value": "4574"
+ },
+ {
+ "label": "catchfast",
+ "value": "4369"
+ },
+ {
+ "label": "cautious",
+ "value": "2978"
+ },
+ {
+ "label": "CautiousPr",
+ "value": "3710"
+ },
+ {
+ "label": "Celebritie",
+ "value": "305"
+ },
+ {
+ "label": "Celebrity",
+ "value": "3199"
+ },
+ {
+ "label": "Ceo",
+ "value": "111"
+ },
+ {
+ "label": "ChainsawMa",
+ "value": "4173"
+ },
+ {
+ "label": "chanceenco",
+ "value": "4498"
+ },
+ {
+ "label": "Chaotang",
+ "value": "4395"
+ },
+ {
+ "label": "ChaotangJi",
+ "value": "4336"
+ },
+ {
+ "label": "CharacterD",
+ "value": "3758"
+ },
+ {
+ "label": "CharacterG",
+ "value": "3656"
+ },
+ {
+ "label": "Charismati",
+ "value": "3770"
+ },
+ {
+ "label": "CharmingPr",
+ "value": "3733"
+ },
+ {
+ "label": "chase",
+ "value": "3509"
+ },
+ {
+ "label": "chasingwif",
+ "value": "4398"
+ },
+ {
+ "label": "chasingwif",
+ "value": "4459"
+ },
+ {
+ "label": "ChatGroup",
+ "value": "1077"
+ },
+ {
+ "label": "ChatRooms",
+ "value": "3752"
+ },
+ {
+ "label": "Cheat",
+ "value": "818"
+ },
+ {
+ "label": "Cheats",
+ "value": "221"
+ },
+ {
+ "label": "chef",
+ "value": "3314"
+ },
+ {
+ "label": "Chefs",
+ "value": "4077"
+ },
+ {
+ "label": "ChenHegao",
+ "value": "4132"
+ },
+ {
+ "label": "chief",
+ "value": "3541"
+ },
+ {
+ "label": "ChildAbuse",
+ "value": "3657"
+ },
+ {
+ "label": "Childcare",
+ "value": "97"
+ },
+ {
+ "label": "ChildhoodF",
+ "value": "3900"
+ },
+ {
+ "label": "ChildhoodL",
+ "value": "3793"
+ },
+ {
+ "label": "ChildhoodP",
+ "value": "3744"
+ },
+ {
+ "label": "ChildhoodS",
+ "value": "3844"
+ },
+ {
+ "label": "ChildishPr",
+ "value": "3825"
+ },
+ {
+ "label": "ChildProta",
+ "value": "3757"
+ },
+ {
+ "label": "ChinaEnter",
+ "value": "4511"
+ },
+ {
+ "label": "Chinese",
+ "value": "4578"
+ },
+ {
+ "label": "Chinesemed",
+ "value": "4307"
+ },
+ {
+ "label": "ChinesePre",
+ "value": "1269"
+ },
+ {
+ "label": "ChoiceSele",
+ "value": "1274"
+ },
+ {
+ "label": "Chronology",
+ "value": "2766"
+ },
+ {
+ "label": "ChuningMC",
+ "value": "4059"
+ },
+ {
+ "label": "Chuunibyou",
+ "value": "3935"
+ },
+ {
+ "label": "city",
+ "value": "3061"
+ },
+ {
+ "label": "Cityurban",
+ "value": "4756"
+ },
+ {
+ "label": "civilizati",
+ "value": "4452"
+ },
+ {
+ "label": "Civilizati",
+ "value": "4322"
+ },
+ {
+ "label": "ciweimao",
+ "value": "4763"
+ },
+ {
+ "label": "ClanBuildi",
+ "value": "3809"
+ },
+ {
+ "label": "ClanSectDe",
+ "value": "1278"
+ },
+ {
+ "label": "ClassicXia",
+ "value": "4278"
+ },
+ {
+ "label": "clear",
+ "value": "2717"
+ },
+ {
+ "label": "clearthink",
+ "value": "4245"
+ },
+ {
+ "label": "CleaverPro",
+ "value": "4181"
+ },
+ {
+ "label": "CleverProt",
+ "value": "3753"
+ },
+ {
+ "label": "CleverProt",
+ "value": "3918"
+ },
+ {
+ "label": "ClingyLove",
+ "value": "4620"
+ },
+ {
+ "label": "Clones",
+ "value": "282"
+ },
+ {
+ "label": "Club",
+ "value": "4091"
+ },
+ {
+ "label": "ClumsyLove",
+ "value": "3855"
+ },
+ {
+ "label": "coach",
+ "value": "3051"
+ },
+ {
+ "label": "codegeass",
+ "value": "4167"
+ },
+ {
+ "label": "Cohabitati",
+ "value": "3745"
+ },
+ {
+ "label": "ColdLoveIn",
+ "value": "3886"
+ },
+ {
+ "label": "ColdProtag",
+ "value": "3814"
+ },
+ {
+ "label": "collapse",
+ "value": "3246"
+ },
+ {
+ "label": "College",
+ "value": "4092"
+ },
+ {
+ "label": "CollegeStr",
+ "value": "4285"
+ },
+ {
+ "label": "CollegeUni",
+ "value": "3833"
+ },
+ {
+ "label": "Colonializ",
+ "value": "4008"
+ },
+ {
+ "label": "ComedicUnd",
+ "value": "3695"
+ },
+ {
+ "label": "Comedy",
+ "value": "82"
+ },
+ {
+ "label": "Comic",
+ "value": "4087"
+ },
+ {
+ "label": "ComingofAg",
+ "value": "4587"
+ },
+ {
+ "label": "commander",
+ "value": "3391"
+ },
+ {
+ "label": "commonerli",
+ "value": "4540"
+ },
+ {
+ "label": "Competitio",
+ "value": "4116"
+ },
+ {
+ "label": "ComplexFam",
+ "value": "3786"
+ },
+ {
+ "label": "comprehens",
+ "value": "2845"
+ },
+ {
+ "label": "Comprehens",
+ "value": "2701"
+ },
+ {
+ "label": "Conan",
+ "value": "2865"
+ },
+ {
+ "label": "Concubine",
+ "value": "4421"
+ },
+ {
+ "label": "Conditiona",
+ "value": "3830"
+ },
+ {
+ "label": "ConfidentP",
+ "value": "3711"
+ },
+ {
+ "label": "Conflictin",
+ "value": "3966"
+ },
+ {
+ "label": "Conquer",
+ "value": "209"
+ },
+ {
+ "label": "Contagonis",
+ "value": "4133"
+ },
+ {
+ "label": "Contendfor",
+ "value": "4310"
+ },
+ {
+ "label": "contract",
+ "value": "3520"
+ },
+ {
+ "label": "contractlo",
+ "value": "4195"
+ },
+ {
+ "label": "contractma",
+ "value": "4193"
+ },
+ {
+ "label": "Contracts",
+ "value": "413"
+ },
+ {
+ "label": "Contrastcu",
+ "value": "4414"
+ },
+ {
+ "label": "cook",
+ "value": "4399"
+ },
+ {
+ "label": "Cooking",
+ "value": "43"
+ },
+ {
+ "label": "coolandhan",
+ "value": "4396"
+ },
+ {
+ "label": "Corruption",
+ "value": "3949"
+ },
+ {
+ "label": "CosmicHorr",
+ "value": "4079"
+ },
+ {
+ "label": "CosmicWars",
+ "value": "3754"
+ },
+ {
+ "label": "cosplaystr",
+ "value": "4276"
+ },
+ {
+ "label": "Counteratt",
+ "value": "156"
+ },
+ {
+ "label": "Couple",
+ "value": "3471"
+ },
+ {
+ "label": "CoupleGrow",
+ "value": "3813"
+ },
+ {
+ "label": "CourtOffic",
+ "value": "4713"
+ },
+ {
+ "label": "courtstrug",
+ "value": "4465"
+ },
+ {
+ "label": "Courtyardh",
+ "value": "4512"
+ },
+ {
+ "label": "Cousins",
+ "value": "4016"
+ },
+ {
+ "label": "CowardlyPr",
+ "value": "3698"
+ },
+ {
+ "label": "CP",
+ "value": "4441"
+ },
+ {
+ "label": "Crafting",
+ "value": "116"
+ },
+ {
+ "label": "CrazyProta",
+ "value": "4146"
+ },
+ {
+ "label": "Creatures",
+ "value": "3734"
+ },
+ {
+ "label": "Crime",
+ "value": "75"
+ },
+ {
+ "label": "Criminalin",
+ "value": "4368"
+ },
+ {
+ "label": "Criminals",
+ "value": "3939"
+ },
+ {
+ "label": "Cross",
+ "value": "2813"
+ },
+ {
+ "label": "Cross-dres",
+ "value": "4606"
+ },
+ {
+ "label": "Crossdress",
+ "value": "4695"
+ },
+ {
+ "label": "crossfarmi",
+ "value": "4467"
+ },
+ {
+ "label": "Crossing",
+ "value": "543"
+ },
+ {
+ "label": "Crossover",
+ "value": "943"
+ },
+ {
+ "label": "Crosstalka",
+ "value": "4521"
+ },
+ {
+ "label": "crowmouth",
+ "value": "4417"
+ },
+ {
+ "label": "CruelChara",
+ "value": "3658"
+ },
+ {
+ "label": "CruelMC",
+ "value": "4158"
+ },
+ {
+ "label": "Crush",
+ "value": "4491"
+ },
+ {
+ "label": "Cthulhu",
+ "value": "2951"
+ },
+ {
+ "label": "Cultivatio",
+ "value": "31"
+ },
+ {
+ "label": "Cunnilingu",
+ "value": "4730"
+ },
+ {
+ "label": "cunningfem",
+ "value": "4676"
+ },
+ {
+ "label": "CunningPro",
+ "value": "3676"
+ },
+ {
+ "label": "CunningPro",
+ "value": "4084"
+ },
+ {
+ "label": "cure",
+ "value": "3257"
+ },
+ {
+ "label": "CuriousPro",
+ "value": "4639"
+ },
+ {
+ "label": "Curses",
+ "value": "3987"
+ },
+ {
+ "label": "Cute",
+ "value": "161"
+ },
+ {
+ "label": "CuteChildr",
+ "value": "3816"
+ },
+ {
+ "label": "CuteProtag",
+ "value": "3846"
+ },
+ {
+ "label": "CuteStory",
+ "value": "3847"
+ },
+ {
+ "label": "Cyberpunk",
+ "value": "2825"
+ },
+ {
+ "label": "cynicism",
+ "value": "4425"
+ },
+ {
+ "label": "D",
+ "value": "4560"
+ },
+ {
+ "label": "Dancers",
+ "value": "4733"
+ },
+ {
+ "label": "Dangmei",
+ "value": "2894"
+ },
+ {
+ "label": "Danmei",
+ "value": "4584"
+ },
+ {
+ "label": "DaoCompani",
+ "value": "4701"
+ },
+ {
+ "label": "DaoCompreh",
+ "value": "4033"
+ },
+ {
+ "label": "Daoism",
+ "value": "4034"
+ },
+ {
+ "label": "Daqin",
+ "value": "3442"
+ },
+ {
+ "label": "Dark",
+ "value": "208"
+ },
+ {
+ "label": "DarkDeatho",
+ "value": "3797"
+ },
+ {
+ "label": "Darkfantas",
+ "value": "698"
+ },
+ {
+ "label": "DarkPower",
+ "value": "4042"
+ },
+ {
+ "label": "Datang",
+ "value": "3390"
+ },
+ {
+ "label": "DC",
+ "value": "1038"
+ },
+ {
+ "label": "DeadProtag",
+ "value": "3848"
+ },
+ {
+ "label": "Death",
+ "value": "3755"
+ },
+ {
+ "label": "DeathofLov",
+ "value": "3712"
+ },
+ {
+ "label": "dedicated",
+ "value": "3537"
+ },
+ {
+ "label": "DeepLTrans",
+ "value": "1294"
+ },
+ {
+ "label": "Delusions",
+ "value": "3936"
+ },
+ {
+ "label": "Demi-Human",
+ "value": "4183"
+ },
+ {
+ "label": "Demon",
+ "value": "62"
+ },
+ {
+ "label": "DemonicCul",
+ "value": "4017"
+ },
+ {
+ "label": "DemonLord",
+ "value": "3659"
+ },
+ {
+ "label": "DemonPower",
+ "value": "4179"
+ },
+ {
+ "label": "Demons",
+ "value": "36"
+ },
+ {
+ "label": "DemonSlaye",
+ "value": "1115"
+ },
+ {
+ "label": "DenseProta",
+ "value": "3791"
+ },
+ {
+ "label": "Depictions",
+ "value": "3713"
+ },
+ {
+ "label": "derivative",
+ "value": "3156"
+ },
+ {
+ "label": "Destiny",
+ "value": "3943"
+ },
+ {
+ "label": "Detective",
+ "value": "1068"
+ },
+ {
+ "label": "DetectiveC",
+ "value": "1145"
+ },
+ {
+ "label": "Detectiver",
+ "value": "4332"
+ },
+ {
+ "label": "Detectives",
+ "value": "841"
+ },
+ {
+ "label": "Determined",
+ "value": "3747"
+ },
+ {
+ "label": "Develop",
+ "value": "2900"
+ },
+ {
+ "label": "Devil",
+ "value": "608"
+ },
+ {
+ "label": "DevotedLov",
+ "value": "3731"
+ },
+ {
+ "label": "DifferentS",
+ "value": "4188"
+ },
+ {
+ "label": "Dining",
+ "value": "2767"
+ },
+ {
+ "label": "directdaug",
+ "value": "4343"
+ },
+ {
+ "label": "Director",
+ "value": "4000"
+ },
+ {
+ "label": "Disabiliti",
+ "value": "4021"
+ },
+ {
+ "label": "DiscipleLo",
+ "value": "4682"
+ },
+ {
+ "label": "DiscipleTr",
+ "value": "1293"
+ },
+ {
+ "label": "Discrimina",
+ "value": "349"
+ },
+ {
+ "label": "disguise",
+ "value": "2785"
+ },
+ {
+ "label": "Disguiseas",
+ "value": "4313"
+ },
+ {
+ "label": "DishonestP",
+ "value": "3920"
+ },
+ {
+ "label": "Divination",
+ "value": "4063"
+ },
+ {
+ "label": "divorce",
+ "value": "4494"
+ },
+ {
+ "label": "DND",
+ "value": "3428"
+ },
+ {
+ "label": "Doctor",
+ "value": "339"
+ },
+ {
+ "label": "Doctors",
+ "value": "175"
+ },
+ {
+ "label": "doctorstre",
+ "value": "4265"
+ },
+ {
+ "label": "DollsPuppe",
+ "value": "3794"
+ },
+ {
+ "label": "DomesticAf",
+ "value": "4009"
+ },
+ {
+ "label": "Dominator",
+ "value": "4693"
+ },
+ {
+ "label": "Domineerin",
+ "value": "4476"
+ },
+ {
+ "label": "Doomsday",
+ "value": "768"
+ },
+ {
+ "label": "Doraemon",
+ "value": "4174"
+ },
+ {
+ "label": "DotingLove",
+ "value": "3746"
+ },
+ {
+ "label": "DotingOlde",
+ "value": "4662"
+ },
+ {
+ "label": "DotingPare",
+ "value": "3853"
+ },
+ {
+ "label": "Dotingwife",
+ "value": "4480"
+ },
+ {
+ "label": "doublebirt",
+ "value": "4314"
+ },
+ {
+ "label": "Doublebusi",
+ "value": "4237"
+ },
+ {
+ "label": "Douluo",
+ "value": "3934"
+ },
+ {
+ "label": "DouluoCont",
+ "value": "4548"
+ },
+ {
+ "label": "DouluoDalu",
+ "value": "952"
+ },
+ {
+ "label": "Doupo",
+ "value": "3889"
+ },
+ {
+ "label": "DoupoBTTH",
+ "value": "3856"
+ },
+ {
+ "label": "DouroConti",
+ "value": "4345"
+ },
+ {
+ "label": "Dragon",
+ "value": "405"
+ },
+ {
+ "label": "Dragonball",
+ "value": "1162"
+ },
+ {
+ "label": "DragonPowe",
+ "value": "4180"
+ },
+ {
+ "label": "DragonRide",
+ "value": "4018"
+ },
+ {
+ "label": "Dragons",
+ "value": "418"
+ },
+ {
+ "label": "DragonSlay",
+ "value": "3630"
+ },
+ {
+ "label": "Drama",
+ "value": "249"
+ },
+ {
+ "label": "Dramatic",
+ "value": "510"
+ },
+ {
+ "label": "Dream",
+ "value": "4030"
+ },
+ {
+ "label": "Dreams",
+ "value": "4066"
+ },
+ {
+ "label": "Drugs",
+ "value": "3798"
+ },
+ {
+ "label": "Druids",
+ "value": "4754"
+ },
+ {
+ "label": "DumbProtag",
+ "value": "3967"
+ },
+ {
+ "label": "dungeon",
+ "value": "4041"
+ },
+ {
+ "label": "Dungeons",
+ "value": "4023"
+ },
+ {
+ "label": "Dwarfs",
+ "value": "537"
+ },
+ {
+ "label": "Dystopia",
+ "value": "806"
+ },
+ {
+ "label": "e-Sports",
+ "value": "3957"
+ },
+ {
+ "label": "EarlyRoman",
+ "value": "3667"
+ },
+ {
+ "label": "EarthInvas",
+ "value": "3645"
+ },
+ {
+ "label": "easternfan",
+ "value": "3650"
+ },
+ {
+ "label": "easyandfun",
+ "value": "4499"
+ },
+ {
+ "label": "EasyGoingL",
+ "value": "3748"
+ },
+ {
+ "label": "Easygoingp",
+ "value": "4090"
+ },
+ {
+ "label": "Eat",
+ "value": "3468"
+ },
+ {
+ "label": "Eatchicken",
+ "value": "4268"
+ },
+ {
+ "label": "Eccentricp",
+ "value": "4100"
+ },
+ {
+ "label": "Ecchi",
+ "value": "847"
+ },
+ {
+ "label": "Economics",
+ "value": "3963"
+ },
+ {
+ "label": "Editors",
+ "value": "4067"
+ },
+ {
+ "label": "Education",
+ "value": "3878"
+ },
+ {
+ "label": "Effort",
+ "value": "4477"
+ },
+ {
+ "label": "Egoist",
+ "value": "564"
+ },
+ {
+ "label": "EideticMem",
+ "value": "3870"
+ },
+ {
+ "label": "EldestSist",
+ "value": "3910"
+ },
+ {
+ "label": "elemental",
+ "value": "4746"
+ },
+ {
+ "label": "ElementalM",
+ "value": "3647"
+ },
+ {
+ "label": "Elf",
+ "value": "4711"
+ },
+ {
+ "label": "Elves",
+ "value": "466"
+ },
+ {
+ "label": "Elvish",
+ "value": "2828"
+ },
+ {
+ "label": "emotion",
+ "value": "4496"
+ },
+ {
+ "label": "Emotionall",
+ "value": "3739"
+ },
+ {
+ "label": "emperor",
+ "value": "3461"
+ },
+ {
+ "label": "emperorstr",
+ "value": "4387"
+ },
+ {
+ "label": "Empire",
+ "value": "4010"
+ },
+ {
+ "label": "Empires",
+ "value": "406"
+ },
+ {
+ "label": "Empress",
+ "value": "3066"
+ },
+ {
+ "label": "EnemiesBec",
+ "value": "3756"
+ },
+ {
+ "label": "EnemiesBec",
+ "value": "3763"
+ },
+ {
+ "label": "Enemiestol",
+ "value": "375"
+ },
+ {
+ "label": "enemy",
+ "value": "3248"
+ },
+ {
+ "label": "Engage",
+ "value": "3300"
+ },
+ {
+ "label": "Engagement",
+ "value": "4647"
+ },
+ {
+ "label": "Engineer",
+ "value": "4630"
+ },
+ {
+ "label": "Entertainm",
+ "value": "803"
+ },
+ {
+ "label": "Episodic",
+ "value": "4623"
+ },
+ {
+ "label": "escapemarr",
+ "value": "4517"
+ },
+ {
+ "label": "Eschatolog",
+ "value": "2723"
+ },
+ {
+ "label": "Escrow",
+ "value": "3364"
+ },
+ {
+ "label": "Esper",
+ "value": "4571"
+ },
+ {
+ "label": "Eunuch",
+ "value": "3413"
+ },
+ {
+ "label": "Europe",
+ "value": "3198"
+ },
+ {
+ "label": "EuropeanAm",
+ "value": "3915"
+ },
+ {
+ "label": "everydayla",
+ "value": "4260"
+ },
+ {
+ "label": "evildoer",
+ "value": "3254"
+ },
+ {
+ "label": "EvilGod",
+ "value": "3962"
+ },
+ {
+ "label": "EvilGods",
+ "value": "3660"
+ },
+ {
+ "label": "EvilOrgani",
+ "value": "3631"
+ },
+ {
+ "label": "EvilOrgani",
+ "value": "4052"
+ },
+ {
+ "label": "EvilProtag",
+ "value": "3632"
+ },
+ {
+ "label": "EvilReligi",
+ "value": "3687"
+ },
+ {
+ "label": "Evolution",
+ "value": "6"
+ },
+ {
+ "label": "Exhaustion",
+ "value": "2886"
+ },
+ {
+ "label": "Exorcism",
+ "value": "1020"
+ },
+ {
+ "label": "Exorcist",
+ "value": "4001"
+ },
+ {
+ "label": "Exotic",
+ "value": "2693"
+ },
+ {
+ "label": "Experience",
+ "value": "1270"
+ },
+ {
+ "label": "Exposurefl",
+ "value": "4505"
+ },
+ {
+ "label": "Expressflo",
+ "value": "4362"
+ },
+ {
+ "label": "EyePowers",
+ "value": "3677"
+ },
+ {
+ "label": "Faceslappi",
+ "value": "67"
+ },
+ {
+ "label": "fairies",
+ "value": "3203"
+ },
+ {
+ "label": "Fairytail",
+ "value": "1246"
+ },
+ {
+ "label": "FallenAnge",
+ "value": "4123"
+ },
+ {
+ "label": "FallenNobi",
+ "value": "3887"
+ },
+ {
+ "label": "Faloo",
+ "value": "1267"
+ },
+ {
+ "label": "FamilialLo",
+ "value": "3834"
+ },
+ {
+ "label": "Family",
+ "value": "381"
+ },
+ {
+ "label": "FamilyBusi",
+ "value": "3852"
+ },
+ {
+ "label": "FamilyConf",
+ "value": "4614"
+ },
+ {
+ "label": "familylife",
+ "value": "4106"
+ },
+ {
+ "label": "FamousPare",
+ "value": "3735"
+ },
+ {
+ "label": "FamousProt",
+ "value": "3728"
+ },
+ {
+ "label": "Fan",
+ "value": "2802"
+ },
+ {
+ "label": "Fan-fictio",
+ "value": "939"
+ },
+ {
+ "label": "Fanaticism",
+ "value": "958"
+ },
+ {
+ "label": "Fanfic",
+ "value": "652"
+ },
+ {
+ "label": "Fanfiction",
+ "value": "527"
+ },
+ {
+ "label": "FanFicton",
+ "value": "4078"
+ },
+ {
+ "label": "fanqienove",
+ "value": "1339"
+ },
+ {
+ "label": "Fantasy",
+ "value": "11"
+ },
+ {
+ "label": "Fantasybra",
+ "value": "4430"
+ },
+ {
+ "label": "FantasyCre",
+ "value": "3736"
+ },
+ {
+ "label": "FantasyFai",
+ "value": "4463"
+ },
+ {
+ "label": "fantasyfan",
+ "value": "4460"
+ },
+ {
+ "label": "FantasyMag",
+ "value": "3702"
+ },
+ {
+ "label": "fantasyrom",
+ "value": "4493"
+ },
+ {
+ "label": "FantasyWor",
+ "value": "3703"
+ },
+ {
+ "label": "Farmer",
+ "value": "3398"
+ },
+ {
+ "label": "Farming",
+ "value": "196"
+ },
+ {
+ "label": "fashionabl",
+ "value": "2838"
+ },
+ {
+ "label": "FastCultiv",
+ "value": "3737"
+ },
+ {
+ "label": "FastGrowth",
+ "value": "4696"
+ },
+ {
+ "label": "FastLearne",
+ "value": "3749"
+ },
+ {
+ "label": "Fastpaced",
+ "value": "619"
+ },
+ {
+ "label": "fasttravel",
+ "value": "4738"
+ },
+ {
+ "label": "fastwear",
+ "value": "4255"
+ },
+ {
+ "label": "Fatedlove",
+ "value": "422"
+ },
+ {
+ "label": "FateSeries",
+ "value": "4108"
+ },
+ {
+ "label": "FattoFit",
+ "value": "3876"
+ },
+ {
+ "label": "Fault",
+ "value": "4524"
+ },
+ {
+ "label": "FearlessPr",
+ "value": "3639"
+ },
+ {
+ "label": "Feelgood",
+ "value": "291"
+ },
+ {
+ "label": "Fellatio",
+ "value": "3804"
+ },
+ {
+ "label": "FemaleFigh",
+ "value": "4109"
+ },
+ {
+ "label": "femalehono",
+ "value": "4394"
+ },
+ {
+ "label": "Femalelead",
+ "value": "216"
+ },
+ {
+ "label": "FemaleMast",
+ "value": "3799"
+ },
+ {
+ "label": "femalematc",
+ "value": "4270"
+ },
+ {
+ "label": "FemaleMC",
+ "value": "4060"
+ },
+ {
+ "label": "Femalepres",
+ "value": "4455"
+ },
+ {
+ "label": "FemaleProt",
+ "value": "44"
+ },
+ {
+ "label": "FemaletoMa",
+ "value": "4182"
+ },
+ {
+ "label": "fiercewife",
+ "value": "4486"
+ },
+ {
+ "label": "Fightagain",
+ "value": "4340"
+ },
+ {
+ "label": "fighting",
+ "value": "4470"
+ },
+ {
+ "label": "filmandtel",
+ "value": "4438"
+ },
+ {
+ "label": "Filmempero",
+ "value": "4483"
+ },
+ {
+ "label": "finance",
+ "value": "1321"
+ },
+ {
+ "label": "finepoint",
+ "value": "4407"
+ },
+ {
+ "label": "Firearms",
+ "value": "324"
+ },
+ {
+ "label": "First-time",
+ "value": "3795"
+ },
+ {
+ "label": "Firstlove",
+ "value": "386"
+ },
+ {
+ "label": "Fishing",
+ "value": "3184"
+ },
+ {
+ "label": "FleetBattl",
+ "value": "3953"
+ },
+ {
+ "label": "flirtatiou",
+ "value": "3417"
+ },
+ {
+ "label": "flood",
+ "value": "2788"
+ },
+ {
+ "label": "Flourishin",
+ "value": "4358"
+ },
+ {
+ "label": "flowercare",
+ "value": "4217"
+ },
+ {
+ "label": "folksuspen",
+ "value": "4367"
+ },
+ {
+ "label": "Food",
+ "value": "4049"
+ },
+ {
+ "label": "foodie",
+ "value": "3362"
+ },
+ {
+ "label": "FoodWars!",
+ "value": "1263"
+ },
+ {
+ "label": "Football",
+ "value": "1340"
+ },
+ {
+ "label": "Forcedinto",
+ "value": "4065"
+ },
+ {
+ "label": "ForcedLivi",
+ "value": "4605"
+ },
+ {
+ "label": "ForcedMarr",
+ "value": "3985"
+ },
+ {
+ "label": "Forensic",
+ "value": "4436"
+ },
+ {
+ "label": "ForgetfulP",
+ "value": "3964"
+ },
+ {
+ "label": "fox",
+ "value": "3265"
+ },
+ {
+ "label": "FoxSpirits",
+ "value": "3803"
+ },
+ {
+ "label": "fqloo",
+ "value": "4766"
+ },
+ {
+ "label": "France",
+ "value": "4692"
+ },
+ {
+ "label": "FriendsBec",
+ "value": "4590"
+ },
+ {
+ "label": "Friendship",
+ "value": "128"
+ },
+ {
+ "label": "fullflow",
+ "value": "4312"
+ },
+ {
+ "label": "Fumino",
+ "value": "2760"
+ },
+ {
+ "label": "Funny",
+ "value": "2936"
+ },
+ {
+ "label": "Furutake",
+ "value": "3183"
+ },
+ {
+ "label": "Futanari",
+ "value": "3879"
+ },
+ {
+ "label": "Future",
+ "value": "673"
+ },
+ {
+ "label": "FutureCivi",
+ "value": "3919"
+ },
+ {
+ "label": "futureworl",
+ "value": "4374"
+ },
+ {
+ "label": "Futuristic",
+ "value": "3947"
+ },
+ {
+ "label": "Game",
+ "value": "607"
+ },
+ {
+ "label": "gamealien",
+ "value": "4227"
+ },
+ {
+ "label": "Gameanchor",
+ "value": "4522"
+ },
+ {
+ "label": "gameanime",
+ "value": "4432"
+ },
+ {
+ "label": "GameElemen",
+ "value": "81"
+ },
+ {
+ "label": "GameElemen",
+ "value": "3941"
+ },
+ {
+ "label": "gameplayer",
+ "value": "4305"
+ },
+ {
+ "label": "Gameproduc",
+ "value": "4251"
+ },
+ {
+ "label": "GameRankin",
+ "value": "3932"
+ },
+ {
+ "label": "Gamers",
+ "value": "159"
+ },
+ {
+ "label": "Games",
+ "value": "2855"
+ },
+ {
+ "label": "Gaming",
+ "value": "2910"
+ },
+ {
+ "label": "GamingE-Sp",
+ "value": "4626"
+ },
+ {
+ "label": "gangfeud",
+ "value": "4212"
+ },
+ {
+ "label": "Gangs",
+ "value": "4153"
+ },
+ {
+ "label": "Gangster",
+ "value": "3030"
+ },
+ {
+ "label": "Gaowuworld",
+ "value": "4450"
+ },
+ {
+ "label": "GatetoAnot",
+ "value": "3683"
+ },
+ {
+ "label": "Gatevalve",
+ "value": "4373"
+ },
+ {
+ "label": "Geass",
+ "value": "4107"
+ },
+ {
+ "label": "Geeky",
+ "value": "3222"
+ },
+ {
+ "label": "Genderbend",
+ "value": "495"
+ },
+ {
+ "label": "Genderless",
+ "value": "3921"
+ },
+ {
+ "label": "GenderRole",
+ "value": "3911"
+ },
+ {
+ "label": "gene",
+ "value": "3330"
+ },
+ {
+ "label": "GeneModifi",
+ "value": "1283"
+ },
+ {
+ "label": "General",
+ "value": "4563"
+ },
+ {
+ "label": "Generals",
+ "value": "4006"
+ },
+ {
+ "label": "GeneticMod",
+ "value": "3661"
+ },
+ {
+ "label": "geneticwar",
+ "value": "4424"
+ },
+ {
+ "label": "Genius",
+ "value": "113"
+ },
+ {
+ "label": "geniusflow",
+ "value": "4263"
+ },
+ {
+ "label": "GeniusProt",
+ "value": "3714"
+ },
+ {
+ "label": "Genshinimp",
+ "value": "4157"
+ },
+ {
+ "label": "Ghosts",
+ "value": "285"
+ },
+ {
+ "label": "Giant",
+ "value": "3267"
+ },
+ {
+ "label": "Gintama",
+ "value": "2703"
+ },
+ {
+ "label": "girlfriend",
+ "value": "4664"
+ },
+ {
+ "label": "Go",
+ "value": "4573"
+ },
+ {
+ "label": "Goblins",
+ "value": "4143"
+ },
+ {
+ "label": "God",
+ "value": "4419"
+ },
+ {
+ "label": "God-humanR",
+ "value": "3688"
+ },
+ {
+ "label": "God-levelf",
+ "value": "4246"
+ },
+ {
+ "label": "Goddess",
+ "value": "4096"
+ },
+ {
+ "label": "Goddesses",
+ "value": "586"
+ },
+ {
+ "label": "GodlyPower",
+ "value": "3669"
+ },
+ {
+ "label": "GodlyProta",
+ "value": "3965"
+ },
+ {
+ "label": "GodofWar",
+ "value": "4198"
+ },
+ {
+ "label": "GodProtago",
+ "value": "3729"
+ },
+ {
+ "label": "Gods",
+ "value": "173"
+ },
+ {
+ "label": "Godzilla",
+ "value": "4134"
+ },
+ {
+ "label": "GoldenFing",
+ "value": "4099"
+ },
+ {
+ "label": "Goldfinger",
+ "value": "4238"
+ },
+ {
+ "label": "Gongdou",
+ "value": "2718"
+ },
+ {
+ "label": "Gore",
+ "value": "4071"
+ },
+ {
+ "label": "Gotoschool",
+ "value": "4301"
+ },
+ {
+ "label": "Grandpa",
+ "value": "3313"
+ },
+ {
+ "label": "Grassroots",
+ "value": "4290"
+ },
+ {
+ "label": "Greatgod",
+ "value": "4299"
+ },
+ {
+ "label": "Greenplum",
+ "value": "4205"
+ },
+ {
+ "label": "grimReaper",
+ "value": "4403"
+ },
+ {
+ "label": "Grinding",
+ "value": "4585"
+ },
+ {
+ "label": "Group",
+ "value": "3149"
+ },
+ {
+ "label": "grouppet",
+ "value": "4349"
+ },
+ {
+ "label": "Groupspoil",
+ "value": "140"
+ },
+ {
+ "label": "groupwear",
+ "value": "4406"
+ },
+ {
+ "label": "growingup",
+ "value": "4550"
+ },
+ {
+ "label": "grudges",
+ "value": "2743"
+ },
+ {
+ "label": "GuardianRe",
+ "value": "3904"
+ },
+ {
+ "label": "Guilds",
+ "value": "4012"
+ },
+ {
+ "label": "Gundam",
+ "value": "4144"
+ },
+ {
+ "label": "Gunfighter",
+ "value": "706"
+ },
+ {
+ "label": "Guoshu",
+ "value": "3354"
+ },
+ {
+ "label": "hacker",
+ "value": "3404"
+ },
+ {
+ "label": "Hackers",
+ "value": "4024"
+ },
+ {
+ "label": "Half-human",
+ "value": "4640"
+ },
+ {
+ "label": "Handjob",
+ "value": "3940"
+ },
+ {
+ "label": "HandsomeMa",
+ "value": "3704"
+ },
+ {
+ "label": "HandsomeMa",
+ "value": "4734"
+ },
+ {
+ "label": "HandsomePr",
+ "value": "3912"
+ },
+ {
+ "label": "happyenemy",
+ "value": "4201"
+ },
+ {
+ "label": "Hard-Worki",
+ "value": "3670"
+ },
+ {
+ "label": "hardsci-fi",
+ "value": "4402"
+ },
+ {
+ "label": "Hardworkin",
+ "value": "4044"
+ },
+ {
+ "label": "Harem",
+ "value": "9"
+ },
+ {
+ "label": "Harem-seek",
+ "value": "3678"
+ },
+ {
+ "label": "HarryPotte",
+ "value": "945"
+ },
+ {
+ "label": "HarshTrain",
+ "value": "3679"
+ },
+ {
+ "label": "HatedProta",
+ "value": "3800"
+ },
+ {
+ "label": "Haveasofts",
+ "value": "4202"
+ },
+ {
+ "label": "HE",
+ "value": "2912"
+ },
+ {
+ "label": "Head",
+ "value": "4338"
+ },
+ {
+ "label": "Healers",
+ "value": "3838"
+ },
+ {
+ "label": "Healing",
+ "value": "387"
+ },
+ {
+ "label": "Heartwarmi",
+ "value": "4612"
+ },
+ {
+ "label": "Heaven",
+ "value": "3958"
+ },
+ {
+ "label": "HeavenlyTr",
+ "value": "3802"
+ },
+ {
+ "label": "Heavensand",
+ "value": "4431"
+ },
+ {
+ "label": "Hell",
+ "value": "3662"
+ },
+ {
+ "label": "Hero",
+ "value": "1318"
+ },
+ {
+ "label": "Heroes",
+ "value": "64"
+ },
+ {
+ "label": "Heroesinvi",
+ "value": "4241"
+ },
+ {
+ "label": "heroinecut",
+ "value": "4449"
+ },
+ {
+ "label": "HiddenAbil",
+ "value": "3835"
+ },
+ {
+ "label": "HiddenIden",
+ "value": "4093"
+ },
+ {
+ "label": "hiddenmarr",
+ "value": "4492"
+ },
+ {
+ "label": "HiddenTrue",
+ "value": "4657"
+ },
+ {
+ "label": "HidingTrue",
+ "value": "3743"
+ },
+ {
+ "label": "HidingTrue",
+ "value": "3742"
+ },
+ {
+ "label": "HidingTrue",
+ "value": "4691"
+ },
+ {
+ "label": "Highcold",
+ "value": "4259"
+ },
+ {
+ "label": "Highiq",
+ "value": "182"
+ },
+ {
+ "label": "Hikusei",
+ "value": "2869"
+ },
+ {
+ "label": "Historical",
+ "value": "4518"
+ },
+ {
+ "label": "Historical",
+ "value": "225"
+ },
+ {
+ "label": "history",
+ "value": "3319"
+ },
+ {
+ "label": "hoardsuppl",
+ "value": "4514"
+ },
+ {
+ "label": "Hogwarts",
+ "value": "3930"
+ },
+ {
+ "label": "Hollywood",
+ "value": "4002"
+ },
+ {
+ "label": "holymonk",
+ "value": "4554"
+ },
+ {
+ "label": "HonkaiImpa",
+ "value": "4048"
+ },
+ {
+ "label": "Horor",
+ "value": "4757"
+ },
+ {
+ "label": "horror",
+ "value": "1022"
+ },
+ {
+ "label": "Hot-bloode",
+ "value": "3777"
+ },
+ {
+ "label": "Hotblood",
+ "value": "4225"
+ },
+ {
+ "label": "housegirl",
+ "value": "4556"
+ },
+ {
+ "label": "HP",
+ "value": "2721"
+ },
+ {
+ "label": "Human-Nonh",
+ "value": "3759"
+ },
+ {
+ "label": "HumanExper",
+ "value": "3663"
+ },
+ {
+ "label": "HumanExper",
+ "value": "4061"
+ },
+ {
+ "label": "HumanoidPr",
+ "value": "3842"
+ },
+ {
+ "label": "HumanWeapo",
+ "value": "4608"
+ },
+ {
+ "label": "Humbleboy",
+ "value": "4381"
+ },
+ {
+ "label": "Hunter",
+ "value": "1324"
+ },
+ {
+ "label": "Hunters",
+ "value": "955"
+ },
+ {
+ "label": "HunterXHun",
+ "value": "1161"
+ },
+ {
+ "label": "HxH",
+ "value": "3960"
+ },
+ {
+ "label": "Hypnotism",
+ "value": "4149"
+ },
+ {
+ "label": "IdentityCr",
+ "value": "4597"
+ },
+ {
+ "label": "ideologica",
+ "value": "4294"
+ },
+ {
+ "label": "Immortal",
+ "value": "170"
+ },
+ {
+ "label": "ImmortalEm",
+ "value": "4525"
+ },
+ {
+ "label": "Immortals",
+ "value": "388"
+ },
+ {
+ "label": "imperialco",
+ "value": "4687"
+ },
+ {
+ "label": "Imperialex",
+ "value": "4361"
+ },
+ {
+ "label": "ImperialHa",
+ "value": "3764"
+ },
+ {
+ "label": "Incest",
+ "value": "229"
+ },
+ {
+ "label": "Industrial",
+ "value": "16"
+ },
+ {
+ "label": "industry",
+ "value": "3375"
+ },
+ {
+ "label": "infatuatio",
+ "value": "3253"
+ },
+ {
+ "label": "InfiniteFl",
+ "value": "4135"
+ },
+ {
+ "label": "Infrastruc",
+ "value": "2851"
+ },
+ {
+ "label": "Infrastruc",
+ "value": "4376"
+ },
+ {
+ "label": "Inheritanc",
+ "value": "4634"
+ },
+ {
+ "label": "inlove",
+ "value": "4273"
+ },
+ {
+ "label": "Inscriptio",
+ "value": "4724"
+ },
+ {
+ "label": "Insects",
+ "value": "3924"
+ },
+ {
+ "label": "Inspiratio",
+ "value": "2804"
+ },
+ {
+ "label": "Interdimen",
+ "value": "3640"
+ },
+ {
+ "label": "Interestel",
+ "value": "4667"
+ },
+ {
+ "label": "Interstell",
+ "value": "830"
+ },
+ {
+ "label": "Inuyasha",
+ "value": "3982"
+ },
+ {
+ "label": "Investigat",
+ "value": "3972"
+ },
+ {
+ "label": "Investigat",
+ "value": "4652"
+ },
+ {
+ "label": "Invincible",
+ "value": "4219"
+ },
+ {
+ "label": "Invincible",
+ "value": "563"
+ },
+ {
+ "label": "IQOnline",
+ "value": "4234"
+ },
+ {
+ "label": "Isekai",
+ "value": "114"
+ },
+ {
+ "label": "Island",
+ "value": "3326"
+ },
+ {
+ "label": "JackieChan",
+ "value": "4175"
+ },
+ {
+ "label": "JackofAllT",
+ "value": "3750"
+ },
+ {
+ "label": "Japanese",
+ "value": "2822"
+ },
+ {
+ "label": "Jealousy",
+ "value": "4654"
+ },
+ {
+ "label": "JianBao",
+ "value": "4422"
+ },
+ {
+ "label": "Jianghugri",
+ "value": "4204"
+ },
+ {
+ "label": "JinYiwei",
+ "value": "4389"
+ },
+ {
+ "label": "JOJO",
+ "value": "2868"
+ },
+ {
+ "label": "JoJo&03",
+ "value": "4170"
+ },
+ {
+ "label": "JojoBizarr",
+ "value": "3983"
+ },
+ {
+ "label": "Josei",
+ "value": "4688"
+ },
+ {
+ "label": "Journeytot",
+ "value": "1301"
+ },
+ {
+ "label": "JujutsuKai",
+ "value": "3984"
+ },
+ {
+ "label": "Junjie",
+ "value": "2849"
+ },
+ {
+ "label": "kendo",
+ "value": "3059"
+ },
+ {
+ "label": "killdecisi",
+ "value": "4233"
+ },
+ {
+ "label": "Killer",
+ "value": "795"
+ },
+ {
+ "label": "Kindness",
+ "value": "3264"
+ },
+ {
+ "label": "KindProtag",
+ "value": "4085"
+ },
+ {
+ "label": "Kingdombui",
+ "value": "12"
+ },
+ {
+ "label": "Kingdoms",
+ "value": "541"
+ },
+ {
+ "label": "KingdomsKn",
+ "value": "4068"
+ },
+ {
+ "label": "KingofSold",
+ "value": "4221"
+ },
+ {
+ "label": "knight",
+ "value": "3180"
+ },
+ {
+ "label": "Knights",
+ "value": "674"
+ },
+ {
+ "label": "KnightsLev",
+ "value": "4703"
+ },
+ {
+ "label": "Koi",
+ "value": "3431"
+ },
+ {
+ "label": "KoreanNove",
+ "value": "1289"
+ },
+ {
+ "label": "LackofComm",
+ "value": "3787"
+ },
+ {
+ "label": "lady",
+ "value": "3496"
+ },
+ {
+ "label": "lastwear",
+ "value": "4405"
+ },
+ {
+ "label": "LateRomanc",
+ "value": "3651"
+ },
+ {
+ "label": "lawyer",
+ "value": "4495"
+ },
+ {
+ "label": "layoutflow",
+ "value": "4283"
+ },
+ {
+ "label": "LazyProtag",
+ "value": "3765"
+ },
+ {
+ "label": "Leadership",
+ "value": "3946"
+ },
+ {
+ "label": "leadthemai",
+ "value": "4248"
+ },
+ {
+ "label": "LeagueofLe",
+ "value": "3885"
+ },
+ {
+ "label": "Leftgirl",
+ "value": "4410"
+ },
+ {
+ "label": "legend",
+ "value": "2684"
+ },
+ {
+ "label": "Legends",
+ "value": "4005"
+ },
+ {
+ "label": "LevelSyste",
+ "value": "3680"
+ },
+ {
+ "label": "Levelup",
+ "value": "53"
+ },
+ {
+ "label": "LiaoZhai",
+ "value": "4286"
+ },
+ {
+ "label": "Life",
+ "value": "3457"
+ },
+ {
+ "label": "lifeanddea",
+ "value": "4530"
+ },
+ {
+ "label": "Lightnovel",
+ "value": "22"
+ },
+ {
+ "label": "LimitedLif",
+ "value": "4644"
+ },
+ {
+ "label": "ListCreati",
+ "value": "1271"
+ },
+ {
+ "label": "LitRPG",
+ "value": "659"
+ },
+ {
+ "label": "Littlesold",
+ "value": "4320"
+ },
+ {
+ "label": "Livebroadc",
+ "value": "1209"
+ },
+ {
+ "label": "livestream",
+ "value": "2763"
+ },
+ {
+ "label": "Livetext",
+ "value": "4230"
+ },
+ {
+ "label": "LivingAlon",
+ "value": "3865"
+ },
+ {
+ "label": "Lol",
+ "value": "3035"
+ },
+ {
+ "label": "Loli",
+ "value": "3372"
+ },
+ {
+ "label": "Lolicon",
+ "value": "949"
+ },
+ {
+ "label": "LonerProta",
+ "value": "3788"
+ },
+ {
+ "label": "Long",
+ "value": "2954"
+ },
+ {
+ "label": "Longevity",
+ "value": "4327"
+ },
+ {
+ "label": "LongSepara",
+ "value": "4184"
+ },
+ {
+ "label": "lootflow",
+ "value": "4243"
+ },
+ {
+ "label": "LordGod",
+ "value": "4347"
+ },
+ {
+ "label": "LordoftheM",
+ "value": "3989"
+ },
+ {
+ "label": "LostCivili",
+ "value": "4020"
+ },
+ {
+ "label": "Lottery",
+ "value": "983"
+ },
+ {
+ "label": "love",
+ "value": "322"
+ },
+ {
+ "label": "LoveatFirs",
+ "value": "640"
+ },
+ {
+ "label": "lovebefore",
+ "value": "4192"
+ },
+ {
+ "label": "Lovecomedy",
+ "value": "4566"
+ },
+ {
+ "label": "Loveeachot",
+ "value": "4354"
+ },
+ {
+ "label": "LoveIntere",
+ "value": "3862"
+ },
+ {
+ "label": "LoveRivals",
+ "value": "4635"
+ },
+ {
+ "label": "LoversReun",
+ "value": "4690"
+ },
+ {
+ "label": "Lovetriang",
+ "value": "374"
+ },
+ {
+ "label": "Low-keyPro",
+ "value": "4015"
+ },
+ {
+ "label": "LowKeyProt",
+ "value": "4706"
+ },
+ {
+ "label": "loyaldog",
+ "value": "4344"
+ },
+ {
+ "label": "LoyalProta",
+ "value": "4027"
+ },
+ {
+ "label": "LoyalSubor",
+ "value": "3681"
+ },
+ {
+ "label": "LoyalSurbo",
+ "value": "4699"
+ },
+ {
+ "label": "luckybag",
+ "value": "4555"
+ },
+ {
+ "label": "LuckyProta",
+ "value": "3730"
+ },
+ {
+ "label": "machine",
+ "value": "4747"
+ },
+ {
+ "label": "Mafia",
+ "value": "240"
+ },
+ {
+ "label": "Mage",
+ "value": "3187"
+ },
+ {
+ "label": "Magic",
+ "value": "4"
+ },
+ {
+ "label": "MagicalBat",
+ "value": "4110"
+ },
+ {
+ "label": "magicalgir",
+ "value": "4151"
+ },
+ {
+ "label": "MagicalSpa",
+ "value": "3779"
+ },
+ {
+ "label": "MagicalTec",
+ "value": "3922"
+ },
+ {
+ "label": "MagicBeast",
+ "value": "3721"
+ },
+ {
+ "label": "MagicForma",
+ "value": "4582"
+ },
+ {
+ "label": "magician",
+ "value": "3505"
+ },
+ {
+ "label": "magicschoo",
+ "value": "4464"
+ },
+ {
+ "label": "magicweapo",
+ "value": "4502"
+ },
+ {
+ "label": "Maid",
+ "value": "4504"
+ },
+ {
+ "label": "Maids",
+ "value": "126"
+ },
+ {
+ "label": "Makecompla",
+ "value": "4264"
+ },
+ {
+ "label": "makefine",
+ "value": "4239"
+ },
+ {
+ "label": "Makemoney",
+ "value": "4302"
+ },
+ {
+ "label": "Malegod",
+ "value": "4315"
+ },
+ {
+ "label": "MaleLead",
+ "value": "4145"
+ },
+ {
+ "label": "MaleMain-l",
+ "value": "4013"
+ },
+ {
+ "label": "malematch",
+ "value": "4337"
+ },
+ {
+ "label": "MaleMc",
+ "value": "4112"
+ },
+ {
+ "label": "MaleProtag",
+ "value": "1"
+ },
+ {
+ "label": "MaleProtag",
+ "value": "4721"
+ },
+ {
+ "label": "MaletoFema",
+ "value": "3871"
+ },
+ {
+ "label": "MaleYander",
+ "value": "3851"
+ },
+ {
+ "label": "Manage",
+ "value": "2935"
+ },
+ {
+ "label": "Management",
+ "value": "4637"
+ },
+ {
+ "label": "Manipulati",
+ "value": "3633"
+ },
+ {
+ "label": "ManlyGayCo",
+ "value": "3828"
+ },
+ {
+ "label": "Manvs.Wild",
+ "value": "4341"
+ },
+ {
+ "label": "manyfemale",
+ "value": "4214"
+ },
+ {
+ "label": "Marriage",
+ "value": "56"
+ },
+ {
+ "label": "Marriageof",
+ "value": "4189"
+ },
+ {
+ "label": "marrybycha",
+ "value": "4490"
+ },
+ {
+ "label": "Martialart",
+ "value": "720"
+ },
+ {
+ "label": "Martialart",
+ "value": "4765"
+ },
+ {
+ "label": "MartialSpi",
+ "value": "3722"
+ },
+ {
+ "label": "MartialSpi",
+ "value": "4043"
+ },
+ {
+ "label": "Marvel",
+ "value": "901"
+ },
+ {
+ "label": "MarvelUniv",
+ "value": "3697"
+ },
+ {
+ "label": "Marysue",
+ "value": "332"
+ },
+ {
+ "label": "Masochisti",
+ "value": "3831"
+ },
+ {
+ "label": "Master-Dis",
+ "value": "3760"
+ },
+ {
+ "label": "Master-Ser",
+ "value": "3916"
+ },
+ {
+ "label": "Masterflow",
+ "value": "4254"
+ },
+ {
+ "label": "Masturbati",
+ "value": "3832"
+ },
+ {
+ "label": "Matriarchy",
+ "value": "4128"
+ },
+ {
+ "label": "Mature",
+ "value": "576"
+ },
+ {
+ "label": "MatureProt",
+ "value": "4037"
+ },
+ {
+ "label": "Mech",
+ "value": "2732"
+ },
+ {
+ "label": "Mecha",
+ "value": "672"
+ },
+ {
+ "label": "Medical",
+ "value": "4186"
+ },
+ {
+ "label": "MedicalKno",
+ "value": "4120"
+ },
+ {
+ "label": "Medieval",
+ "value": "3917"
+ },
+ {
+ "label": "MengBao",
+ "value": "4194"
+ },
+ {
+ "label": "Mensao",
+ "value": "3233"
+ },
+ {
+ "label": "Mentor",
+ "value": "3386"
+ },
+ {
+ "label": "Mercenarie",
+ "value": "3839"
+ },
+ {
+ "label": "Merchants",
+ "value": "4651"
+ },
+ {
+ "label": "metaphysic",
+ "value": "2797"
+ },
+ {
+ "label": "MiddleAges",
+ "value": "4568"
+ },
+ {
+ "label": "Military",
+ "value": "148"
+ },
+ {
+ "label": "Militaryco",
+ "value": "4534"
+ },
+ {
+ "label": "militaryma",
+ "value": "4210"
+ },
+ {
+ "label": "Millionair",
+ "value": "4683"
+ },
+ {
+ "label": "Mimicry",
+ "value": "4136"
+ },
+ {
+ "label": "MindBreak",
+ "value": "4717"
+ },
+ {
+ "label": "MindContro",
+ "value": "3634"
+ },
+ {
+ "label": "Mindreadin",
+ "value": "4351"
+ },
+ {
+ "label": "MingDynast",
+ "value": "4326"
+ },
+ {
+ "label": "Ministryof",
+ "value": "4113"
+ },
+ {
+ "label": "miser",
+ "value": "4559"
+ },
+ {
+ "label": "Miss",
+ "value": "4444"
+ },
+ {
+ "label": "Misunderst",
+ "value": "65"
+ },
+ {
+ "label": "Misunderst",
+ "value": "34"
+ },
+ {
+ "label": "MMORPG",
+ "value": "91"
+ },
+ {
+ "label": "MobileGame",
+ "value": "4262"
+ },
+ {
+ "label": "MobProtago",
+ "value": "4613"
+ },
+ {
+ "label": "Modern",
+ "value": "60"
+ },
+ {
+ "label": "moderncomp",
+ "value": "4222"
+ },
+ {
+ "label": "ModernDay",
+ "value": "3705"
+ },
+ {
+ "label": "Modernfant",
+ "value": "482"
+ },
+ {
+ "label": "ModernKnow",
+ "value": "3888"
+ },
+ {
+ "label": "modernmyst",
+ "value": "4392"
+ },
+ {
+ "label": "modernroma",
+ "value": "4437"
+ },
+ {
+ "label": "ModernWorl",
+ "value": "3706"
+ },
+ {
+ "label": "MoneyGrubb",
+ "value": "4035"
+ },
+ {
+ "label": "Monk",
+ "value": "3352"
+ },
+ {
+ "label": "Monogamy",
+ "value": "4003"
+ },
+ {
+ "label": "Monsters",
+ "value": "379"
+ },
+ {
+ "label": "MonsterSoc",
+ "value": "3671"
+ },
+ {
+ "label": "MonsterTam",
+ "value": "3635"
+ },
+ {
+ "label": "Morallessp",
+ "value": "4147"
+ },
+ {
+ "label": "mortalflow",
+ "value": "4500"
+ },
+ {
+ "label": "Mother-in-",
+ "value": "2848"
+ },
+ {
+ "label": "mouthgun",
+ "value": "4277"
+ },
+ {
+ "label": "MovieDirec",
+ "value": "3894"
+ },
+ {
+ "label": "Movies",
+ "value": "3822"
+ },
+ {
+ "label": "Mozun",
+ "value": "4553"
+ },
+ {
+ "label": "Mpreg",
+ "value": "4601"
+ },
+ {
+ "label": "MultipleBo",
+ "value": "4062"
+ },
+ {
+ "label": "Multipleid",
+ "value": "57"
+ },
+ {
+ "label": "MultipleMo",
+ "value": "3996"
+ },
+ {
+ "label": "MultiplePe",
+ "value": "3901"
+ },
+ {
+ "label": "MultiplePO",
+ "value": "3664"
+ },
+ {
+ "label": "MultiplePr",
+ "value": "4007"
+ },
+ {
+ "label": "MultipleRe",
+ "value": "3672"
+ },
+ {
+ "label": "MultipleRe",
+ "value": "4643"
+ },
+ {
+ "label": "MultipleTi",
+ "value": "3980"
+ },
+ {
+ "label": "MultipleTr",
+ "value": "3849"
+ },
+ {
+ "label": "MultipleTr",
+ "value": "3990"
+ },
+ {
+ "label": "MultipleWo",
+ "value": "4137"
+ },
+ {
+ "label": "Multiverse",
+ "value": "4064"
+ },
+ {
+ "label": "Munchkin",
+ "value": "4565"
+ },
+ {
+ "label": "Murder",
+ "value": "3902"
+ },
+ {
+ "label": "Murders",
+ "value": "3880"
+ },
+ {
+ "label": "Music",
+ "value": "385"
+ },
+ {
+ "label": "Mutan",
+ "value": "4694"
+ },
+ {
+ "label": "MutatedCre",
+ "value": "4629"
+ },
+ {
+ "label": "Mutation",
+ "value": "737"
+ },
+ {
+ "label": "Mutations",
+ "value": "3981"
+ },
+ {
+ "label": "MyHeroAcad",
+ "value": "1286"
+ },
+ {
+ "label": "Mysterious",
+ "value": "3801"
+ },
+ {
+ "label": "Mysterious",
+ "value": "3928"
+ },
+ {
+ "label": "Mysterious",
+ "value": "4393"
+ },
+ {
+ "label": "Mystery",
+ "value": "112"
+ },
+ {
+ "label": "MysterySol",
+ "value": "3863"
+ },
+ {
+ "label": "Myth",
+ "value": "488"
+ },
+ {
+ "label": "Mythical",
+ "value": "4638"
+ },
+ {
+ "label": "MythicalBe",
+ "value": "3780"
+ },
+ {
+ "label": "Mythology",
+ "value": "3781"
+ },
+ {
+ "label": "NaiveProta",
+ "value": "3718"
+ },
+ {
+ "label": "Nakaji",
+ "value": "3494"
+ },
+ {
+ "label": "Narcissist",
+ "value": "3696"
+ },
+ {
+ "label": "Naruto",
+ "value": "653"
+ },
+ {
+ "label": "NationalGa",
+ "value": "4454"
+ },
+ {
+ "label": "Nationalis",
+ "value": "451"
+ },
+ {
+ "label": "Navy",
+ "value": "4150"
+ },
+ {
+ "label": "nba",
+ "value": "1342"
+ },
+ {
+ "label": "Near-Death",
+ "value": "3843"
+ },
+ {
+ "label": "Necromance",
+ "value": "734"
+ },
+ {
+ "label": "Necromancy",
+ "value": "1325"
+ },
+ {
+ "label": "Need",
+ "value": "4510"
+ },
+ {
+ "label": "Nerd",
+ "value": "3895"
+ },
+ {
+ "label": "Netorare",
+ "value": "3820"
+ },
+ {
+ "label": "Netori",
+ "value": "609"
+ },
+ {
+ "label": "Netred",
+ "value": "4439"
+ },
+ {
+ "label": "Nightmare",
+ "value": "4598"
+ },
+ {
+ "label": "Nightmares",
+ "value": "4670"
+ },
+ {
+ "label": "Ninjas",
+ "value": "982"
+ },
+ {
+ "label": "No-Harem",
+ "value": "2879"
+ },
+ {
+ "label": "Noble",
+ "value": "4700"
+ },
+ {
+ "label": "Nobles",
+ "value": "38"
+ },
+ {
+ "label": "Nocheats",
+ "value": "804"
+ },
+ {
+ "label": "NoCP",
+ "value": "4300"
+ },
+ {
+ "label": "Nodiscipli",
+ "value": "4231"
+ },
+ {
+ "label": "Nogoldenfi",
+ "value": "4434"
+ },
+ {
+ "label": "NoHarem",
+ "value": "4028"
+ },
+ {
+ "label": "noheroine",
+ "value": "4242"
+ },
+ {
+ "label": "Non-humano",
+ "value": "3782"
+ },
+ {
+ "label": "Non-humanP",
+ "value": "4076"
+ },
+ {
+ "label": "Non-System",
+ "value": "1262"
+ },
+ {
+ "label": "Nonhuman",
+ "value": "415"
+ },
+ {
+ "label": "Noromance",
+ "value": "662"
+ },
+ {
+ "label": "NoSystem",
+ "value": "4075"
+ },
+ {
+ "label": "Novel",
+ "value": "4768"
+ },
+ {
+ "label": "Nowsay",
+ "value": "4533"
+ },
+ {
+ "label": "Npc",
+ "value": "798"
+ },
+ {
+ "label": "Nurses",
+ "value": "4723"
+ },
+ {
+ "label": "Obsession",
+ "value": "1311"
+ },
+ {
+ "label": "ObsessiveL",
+ "value": "4668"
+ },
+ {
+ "label": "Office",
+ "value": "3294"
+ },
+ {
+ "label": "OfficeRoma",
+ "value": "4621"
+ },
+ {
+ "label": "Officialwo",
+ "value": "4767"
+ },
+ {
+ "label": "OlderLoveI",
+ "value": "4588"
+ },
+ {
+ "label": "OldMovieso",
+ "value": "4472"
+ },
+ {
+ "label": "Omegaverse",
+ "value": "4649"
+ },
+ {
+ "label": "On-HookSys",
+ "value": "4697"
+ },
+ {
+ "label": "OnePiece",
+ "value": "942"
+ },
+ {
+ "label": "Onepunch",
+ "value": "3961"
+ },
+ {
+ "label": "onlinegame",
+ "value": "4257"
+ },
+ {
+ "label": "Onlinegame",
+ "value": "4252"
+ },
+ {
+ "label": "Onlinegame",
+ "value": "4770"
+ },
+ {
+ "label": "OnlineGame",
+ "value": "4172"
+ },
+ {
+ "label": "Onlinegami",
+ "value": "535"
+ },
+ {
+ "label": "OnlineRoma",
+ "value": "3652"
+ },
+ {
+ "label": "Onocat",
+ "value": "4506"
+ },
+ {
+ "label": "Open",
+ "value": "3165"
+ },
+ {
+ "label": "openflow",
+ "value": "4240"
+ },
+ {
+ "label": "openingflo",
+ "value": "4271"
+ },
+ {
+ "label": "Openupwast",
+ "value": "4386"
+ },
+ {
+ "label": "OpFemalePr",
+ "value": "4742"
+ },
+ {
+ "label": "OPMC",
+ "value": "3942"
+ },
+ {
+ "label": "OPProtagon",
+ "value": "4102"
+ },
+ {
+ "label": "Orcs",
+ "value": "4069"
+ },
+ {
+ "label": "Ordinary",
+ "value": "4572"
+ },
+ {
+ "label": "OrganizedC",
+ "value": "3950"
+ },
+ {
+ "label": "Orgy",
+ "value": "4155"
+ },
+ {
+ "label": "OrientalFa",
+ "value": "4443"
+ },
+ {
+ "label": "originalco",
+ "value": "4366"
+ },
+ {
+ "label": "Originalfi",
+ "value": "4482"
+ },
+ {
+ "label": "Orphan",
+ "value": "4050"
+ },
+ {
+ "label": "Orphans",
+ "value": "3723"
+ },
+ {
+ "label": "Ory",
+ "value": "4154"
+ },
+ {
+ "label": "Otaku",
+ "value": "553"
+ },
+ {
+ "label": "OuterSpace",
+ "value": "3783"
+ },
+ {
+ "label": "overbearin",
+ "value": "3273"
+ },
+ {
+ "label": "Overhead",
+ "value": "2883"
+ },
+ {
+ "label": "overpower",
+ "value": "4759"
+ },
+ {
+ "label": "Overpowere",
+ "value": "103"
+ },
+ {
+ "label": "Overpowere",
+ "value": "3884"
+ },
+ {
+ "label": "Overpowere",
+ "value": "3641"
+ },
+ {
+ "label": "Paladin",
+ "value": "4045"
+ },
+ {
+ "label": "PamperingR",
+ "value": "4689"
+ },
+ {
+ "label": "ParallelWo",
+ "value": "3790"
+ },
+ {
+ "label": "ParallelWo",
+ "value": "3864"
+ },
+ {
+ "label": "Paranoid",
+ "value": "3025"
+ },
+ {
+ "label": "ParentComp",
+ "value": "4636"
+ },
+ {
+ "label": "PastandPre",
+ "value": "4364"
+ },
+ {
+ "label": "PastPlaysa",
+ "value": "3673"
+ },
+ {
+ "label": "PastPlaysa",
+ "value": "4712"
+ },
+ {
+ "label": "PastTrauma",
+ "value": "3903"
+ },
+ {
+ "label": "Perfectwor",
+ "value": "4190"
+ },
+ {
+ "label": "personalco",
+ "value": "4549"
+ },
+ {
+ "label": "Personalit",
+ "value": "4658"
+ },
+ {
+ "label": "PervertedP",
+ "value": "3769"
+ },
+ {
+ "label": "pet",
+ "value": "2827"
+ },
+ {
+ "label": "petarticle",
+ "value": "4206"
+ },
+ {
+ "label": "Pets",
+ "value": "276"
+ },
+ {
+ "label": "physicaled",
+ "value": "4433"
+ },
+ {
+ "label": "Physician",
+ "value": "4413"
+ },
+ {
+ "label": "PillConcoc",
+ "value": "4698"
+ },
+ {
+ "label": "PillConcot",
+ "value": "4753"
+ },
+ {
+ "label": "Pilots",
+ "value": "3850"
+ },
+ {
+ "label": "Pingbuqing",
+ "value": "2793"
+ },
+ {
+ "label": "Pirate",
+ "value": "3056"
+ },
+ {
+ "label": "Pirates",
+ "value": "629"
+ },
+ {
+ "label": "Plane",
+ "value": "3214"
+ },
+ {
+ "label": "PlaneWars",
+ "value": "4728"
+ },
+ {
+ "label": "Playboymal",
+ "value": "4675"
+ },
+ {
+ "label": "Playboys",
+ "value": "3823"
+ },
+ {
+ "label": "Player",
+ "value": "3447"
+ },
+ {
+ "label": "PlayfulPro",
+ "value": "3826"
+ },
+ {
+ "label": "Playpigeat",
+ "value": "4527"
+ },
+ {
+ "label": "poisondoct",
+ "value": "4558"
+ },
+ {
+ "label": "Poisonoust",
+ "value": "4412"
+ },
+ {
+ "label": "Poisons",
+ "value": "191"
+ },
+ {
+ "label": "Pokemon",
+ "value": "713"
+ },
+ {
+ "label": "Police",
+ "value": "76"
+ },
+ {
+ "label": "Policemen",
+ "value": "3331"
+ },
+ {
+ "label": "policyflow",
+ "value": "4232"
+ },
+ {
+ "label": "PoliteProt",
+ "value": "4051"
+ },
+ {
+ "label": "PoliticalI",
+ "value": "3956"
+ },
+ {
+ "label": "Politics",
+ "value": "3948"
+ },
+ {
+ "label": "Polyandry",
+ "value": "4631"
+ },
+ {
+ "label": "Polygamy",
+ "value": "86"
+ },
+ {
+ "label": "Pony",
+ "value": "4564"
+ },
+ {
+ "label": "Poor",
+ "value": "4743"
+ },
+ {
+ "label": "PoorProtag",
+ "value": "3896"
+ },
+ {
+ "label": "PoortoRich",
+ "value": "198"
+ },
+ {
+ "label": "PopularLov",
+ "value": "4622"
+ },
+ {
+ "label": "Popularsci",
+ "value": "4448"
+ },
+ {
+ "label": "Portablesp",
+ "value": "4462"
+ },
+ {
+ "label": "Positive",
+ "value": "23"
+ },
+ {
+ "label": "positiveen",
+ "value": "4298"
+ },
+ {
+ "label": "Possession",
+ "value": "1312"
+ },
+ {
+ "label": "Possessive",
+ "value": "169"
+ },
+ {
+ "label": "Possessive",
+ "value": "4586"
+ },
+ {
+ "label": "Post-apoca",
+ "value": "4627"
+ },
+ {
+ "label": "PowerCoupl",
+ "value": "3690"
+ },
+ {
+ "label": "Powerfulco",
+ "value": "171"
+ },
+ {
+ "label": "Powerhouse",
+ "value": "3544"
+ },
+ {
+ "label": "PowersTran",
+ "value": "3973"
+ },
+ {
+ "label": "PowerStrug",
+ "value": "3761"
+ },
+ {
+ "label": "practice",
+ "value": "3268"
+ },
+ {
+ "label": "practicefl",
+ "value": "4253"
+ },
+ {
+ "label": "PragmaticP",
+ "value": "4185"
+ },
+ {
+ "label": "Pregnancy",
+ "value": "39"
+ },
+ {
+ "label": "President",
+ "value": "2932"
+ },
+ {
+ "label": "Presidentw",
+ "value": "4473"
+ },
+ {
+ "label": "Pretendtob",
+ "value": "4208"
+ },
+ {
+ "label": "PreviousLi",
+ "value": "4053"
+ },
+ {
+ "label": "PreviousLi",
+ "value": "4685"
+ },
+ {
+ "label": "Priest",
+ "value": "4267"
+ },
+ {
+ "label": "Prince",
+ "value": "3426"
+ },
+ {
+ "label": "PrinceofTe",
+ "value": "1296"
+ },
+ {
+ "label": "Princess",
+ "value": "364"
+ },
+ {
+ "label": "Prison",
+ "value": "4156"
+ },
+ {
+ "label": "ProactiveP",
+ "value": "4708"
+ },
+ {
+ "label": "profession",
+ "value": "4281"
+ },
+ {
+ "label": "Programmer",
+ "value": "4715"
+ },
+ {
+ "label": "Prophecies",
+ "value": "4616"
+ },
+ {
+ "label": "Pros",
+ "value": "3422"
+ },
+ {
+ "label": "Prostitute",
+ "value": "3890"
+ },
+ {
+ "label": "Protagonis",
+ "value": "1268"
+ },
+ {
+ "label": "Protagonis",
+ "value": "3954"
+ },
+ {
+ "label": "Protagonis",
+ "value": "3789"
+ },
+ {
+ "label": "Protagonis",
+ "value": "4607"
+ },
+ {
+ "label": "protectsho",
+ "value": "4379"
+ },
+ {
+ "label": "Proud",
+ "value": "3423"
+ },
+ {
+ "label": "Psychic",
+ "value": "3974"
+ },
+ {
+ "label": "PsychicPow",
+ "value": "4725"
+ },
+ {
+ "label": "Psychologi",
+ "value": "870"
+ },
+ {
+ "label": "Psychology",
+ "value": "4072"
+ },
+ {
+ "label": "Psychopath",
+ "value": "3906"
+ },
+ {
+ "label": "Puppeteers",
+ "value": "3977"
+ },
+ {
+ "label": "puppy",
+ "value": "3490"
+ },
+ {
+ "label": "PureLove",
+ "value": "1315"
+ },
+ {
+ "label": "qidian",
+ "value": "4570"
+ },
+ {
+ "label": "qimao",
+ "value": "4579"
+ },
+ {
+ "label": "QinHan",
+ "value": "4385"
+ },
+ {
+ "label": "Qishen",
+ "value": "2759"
+ },
+ {
+ "label": "Queen",
+ "value": "4562"
+ },
+ {
+ "label": "Question&a",
+ "value": "4141"
+ },
+ {
+ "label": "QuickTrans",
+ "value": "3875"
+ },
+ {
+ "label": "R-15",
+ "value": "3796"
+ },
+ {
+ "label": "R-18",
+ "value": "906"
+ },
+ {
+ "label": "R18",
+ "value": "856"
+ },
+ {
+ "label": "RaceChange",
+ "value": "3827"
+ },
+ {
+ "label": "Racingcar",
+ "value": "4360"
+ },
+ {
+ "label": "Racism",
+ "value": "442"
+ },
+ {
+ "label": "Raiders",
+ "value": "3229"
+ },
+ {
+ "label": "rainyseaso",
+ "value": "4211"
+ },
+ {
+ "label": "RanchFarmi",
+ "value": "4764"
+ },
+ {
+ "label": "randomstre",
+ "value": "4426"
+ },
+ {
+ "label": "Rape",
+ "value": "149"
+ },
+ {
+ "label": "RapeVictim",
+ "value": "4032"
+ },
+ {
+ "label": "RapeVictim",
+ "value": "3857"
+ },
+ {
+ "label": "Rarebloodl",
+ "value": "210"
+ },
+ {
+ "label": "rawstream",
+ "value": "4390"
+ },
+ {
+ "label": "readstream",
+ "value": "4328"
+ },
+ {
+ "label": "reasoning",
+ "value": "4575"
+ },
+ {
+ "label": "Rebellion",
+ "value": "3774"
+ },
+ {
+ "label": "Rebirth",
+ "value": "224"
+ },
+ {
+ "label": "RebirthedP",
+ "value": "1264"
+ },
+ {
+ "label": "rebirthhou",
+ "value": "4466"
+ },
+ {
+ "label": "rebirthrev",
+ "value": "4526"
+ },
+ {
+ "label": "rebirthwit",
+ "value": "4532"
+ },
+ {
+ "label": "Reborn",
+ "value": "215"
+ },
+ {
+ "label": "RedHouse",
+ "value": "4377"
+ },
+ {
+ "label": "redpacketf",
+ "value": "4370"
+ },
+ {
+ "label": "Refiner",
+ "value": "3439"
+ },
+ {
+ "label": "Regression",
+ "value": "1316"
+ },
+ {
+ "label": "Regret",
+ "value": "1314"
+ },
+ {
+ "label": "ReikiRecov",
+ "value": "4249"
+ },
+ {
+ "label": "reincarnat",
+ "value": "3227"
+ },
+ {
+ "label": "Reincarnat",
+ "value": "14"
+ },
+ {
+ "label": "Reincarnat",
+ "value": "3646"
+ },
+ {
+ "label": "Reincarnat",
+ "value": "3988"
+ },
+ {
+ "label": "Reincarnat",
+ "value": "3784"
+ },
+ {
+ "label": "rejoice",
+ "value": "3215"
+ },
+ {
+ "label": "Relaxed",
+ "value": "2817"
+ },
+ {
+ "label": "Religions",
+ "value": "4119"
+ },
+ {
+ "label": "ReligousOr",
+ "value": "4046"
+ },
+ {
+ "label": "Resurrecti",
+ "value": "4047"
+ },
+ {
+ "label": "Return",
+ "value": "4567"
+ },
+ {
+ "label": "Returningf",
+ "value": "3766"
+ },
+ {
+ "label": "Returnofth",
+ "value": "4213"
+ },
+ {
+ "label": "Reunion",
+ "value": "2694"
+ },
+ {
+ "label": "Revenge",
+ "value": "40"
+ },
+ {
+ "label": "Reversal",
+ "value": "4226"
+ },
+ {
+ "label": "Reverse",
+ "value": "3168"
+ },
+ {
+ "label": "ReverseHar",
+ "value": "4592"
+ },
+ {
+ "label": "ReverseRap",
+ "value": "3913"
+ },
+ {
+ "label": "reversewea",
+ "value": "4546"
+ },
+ {
+ "label": "richandbea",
+ "value": "4357"
+ },
+ {
+ "label": "Richdaught",
+ "value": "157"
+ },
+ {
+ "label": "Richestman",
+ "value": "4538"
+ },
+ {
+ "label": "richpeople",
+ "value": "4382"
+ },
+ {
+ "label": "RichProtag",
+ "value": "3897"
+ },
+ {
+ "label": "RighteousP",
+ "value": "3665"
+ },
+ {
+ "label": "RimuruTemp",
+ "value": "4103"
+ },
+ {
+ "label": "rob",
+ "value": "2861"
+ },
+ {
+ "label": "Role-Playi",
+ "value": "3933"
+ },
+ {
+ "label": "Rollover",
+ "value": "3415"
+ },
+ {
+ "label": "Romance",
+ "value": "8"
+ },
+ {
+ "label": "RomanceFan",
+ "value": "1319"
+ },
+ {
+ "label": "RomanticSu",
+ "value": "3674"
+ },
+ {
+ "label": "RomanticSu",
+ "value": "4038"
+ },
+ {
+ "label": "Royal",
+ "value": "3351"
+ },
+ {
+ "label": "RoyalBeast",
+ "value": "4287"
+ },
+ {
+ "label": "Royalfamil",
+ "value": "398"
+ },
+ {
+ "label": "Royalty",
+ "value": "41"
+ },
+ {
+ "label": "Rpe",
+ "value": "4031"
+ },
+ {
+ "label": "RuneMaster",
+ "value": "4523"
+ },
+ {
+ "label": "rural",
+ "value": "4519"
+ },
+ {
+ "label": "RuthlessPr",
+ "value": "3727"
+ },
+ {
+ "label": "SadisticCh",
+ "value": "3907"
+ },
+ {
+ "label": "SaikiK",
+ "value": "4140"
+ },
+ {
+ "label": "SaikiK.",
+ "value": "4057"
+ },
+ {
+ "label": "Saint",
+ "value": "3691"
+ },
+ {
+ "label": "Saints",
+ "value": "4097"
+ },
+ {
+ "label": "SaintSeiya",
+ "value": "3976"
+ },
+ {
+ "label": "Saltedfish",
+ "value": "4316"
+ },
+ {
+ "label": "Saltyandsw",
+ "value": "4400"
+ },
+ {
+ "label": "Salvation",
+ "value": "1313"
+ },
+ {
+ "label": "Sanguanzhe",
+ "value": "2957"
+ },
+ {
+ "label": "SavingtheW",
+ "value": "4624"
+ },
+ {
+ "label": "Scary",
+ "value": "635"
+ },
+ {
+ "label": "Schemes",
+ "value": "4684"
+ },
+ {
+ "label": "Schemesand",
+ "value": "3991"
+ },
+ {
+ "label": "SchemesAnd",
+ "value": "3666"
+ },
+ {
+ "label": "Schoolflow",
+ "value": "4440"
+ },
+ {
+ "label": "schoolgras",
+ "value": "4497"
+ },
+ {
+ "label": "SchoolLife",
+ "value": "4117"
+ },
+ {
+ "label": "Sci-Fi",
+ "value": "83"
+ },
+ {
+ "label": "Sciencefic",
+ "value": "4127"
+ },
+ {
+ "label": "Sciencefic",
+ "value": "4760"
+ },
+ {
+ "label": "Scientists",
+ "value": "3818"
+ },
+ {
+ "label": "Scifi",
+ "value": "745"
+ },
+ {
+ "label": "SCP",
+ "value": "4026"
+ },
+ {
+ "label": "Scriptwrit",
+ "value": "3898"
+ },
+ {
+ "label": "scumbag",
+ "value": "3208"
+ },
+ {
+ "label": "SD",
+ "value": "2716"
+ },
+ {
+ "label": "Sea",
+ "value": "4081"
+ },
+ {
+ "label": "SealedPowe",
+ "value": "4618"
+ },
+ {
+ "label": "SealGod",
+ "value": "4293"
+ },
+ {
+ "label": "SecondChan",
+ "value": "4124"
+ },
+ {
+ "label": "SecretIden",
+ "value": "4054"
+ },
+ {
+ "label": "SecretiveP",
+ "value": "4679"
+ },
+ {
+ "label": "SecretOrga",
+ "value": "4055"
+ },
+ {
+ "label": "SecretOrga",
+ "value": "3775"
+ },
+ {
+ "label": "Secrets",
+ "value": "3992"
+ },
+ {
+ "label": "Sectbuildi",
+ "value": "4758"
+ },
+ {
+ "label": "SectDevelo",
+ "value": "3881"
+ },
+ {
+ "label": "SectMaster",
+ "value": "3882"
+ },
+ {
+ "label": "Sects",
+ "value": "4660"
+ },
+ {
+ "label": "Securitygu",
+ "value": "4218"
+ },
+ {
+ "label": "Seduction",
+ "value": "4739"
+ },
+ {
+ "label": "SeeingThin",
+ "value": "4094"
+ },
+ {
+ "label": "seeyouagai",
+ "value": "4397"
+ },
+ {
+ "label": "Seinen",
+ "value": "4771"
+ },
+ {
+ "label": "Self-disci",
+ "value": "3022"
+ },
+ {
+ "label": "self-impro",
+ "value": "3258"
+ },
+ {
+ "label": "SelfishPro",
+ "value": "3719"
+ },
+ {
+ "label": "SelflessPr",
+ "value": "4609"
+ },
+ {
+ "label": "SemeProtag",
+ "value": "3926"
+ },
+ {
+ "label": "Senior",
+ "value": "4543"
+ },
+ {
+ "label": "SentientSk",
+ "value": "1277"
+ },
+ {
+ "label": "SerialKill",
+ "value": "4129"
+ },
+ {
+ "label": "SerpentKin",
+ "value": "4418"
+ },
+ {
+ "label": "Servants",
+ "value": "3824"
+ },
+ {
+ "label": "SexSlaves",
+ "value": "3929"
+ },
+ {
+ "label": "SexualAbus",
+ "value": "3859"
+ },
+ {
+ "label": "SexualCult",
+ "value": "4677"
+ },
+ {
+ "label": "ShamelessP",
+ "value": "3811"
+ },
+ {
+ "label": "Shapeshift",
+ "value": "645"
+ },
+ {
+ "label": "Sharp-tong",
+ "value": "4039"
+ },
+ {
+ "label": "Shenhao",
+ "value": "3062"
+ },
+ {
+ "label": "Shijia",
+ "value": "3269"
+ },
+ {
+ "label": "shortforpa",
+ "value": "4372"
+ },
+ {
+ "label": "Shotacon",
+ "value": "4101"
+ },
+ {
+ "label": "Shoujo-AiS",
+ "value": "3819"
+ },
+ {
+ "label": "Shounen",
+ "value": "4118"
+ },
+ {
+ "label": "Shounen-Ai",
+ "value": "3927"
+ },
+ {
+ "label": "Showbiz",
+ "value": "68"
+ },
+ {
+ "label": "showdownfl",
+ "value": "4388"
+ },
+ {
+ "label": "Shuangjie",
+ "value": "3231"
+ },
+ {
+ "label": "Shuangwen",
+ "value": "2705"
+ },
+ {
+ "label": "Shurachang",
+ "value": "2970"
+ },
+ {
+ "label": "Shushan",
+ "value": "4279"
+ },
+ {
+ "label": "ShyCharact",
+ "value": "3925"
+ },
+ {
+ "label": "Sibling&am",
+ "value": "4714"
+ },
+ {
+ "label": "Siblings",
+ "value": "4659"
+ },
+ {
+ "label": "SiblingsNo",
+ "value": "4160"
+ },
+ {
+ "label": "sick",
+ "value": "3026"
+ },
+ {
+ "label": "SicklyChar",
+ "value": "4650"
+ },
+ {
+ "label": "Sign-in",
+ "value": "4191"
+ },
+ {
+ "label": "Sign-InChe",
+ "value": "1266"
+ },
+ {
+ "label": "Signin",
+ "value": "833"
+ },
+ {
+ "label": "SigninChec",
+ "value": "1292"
+ },
+ {
+ "label": "sillywhite",
+ "value": "4427"
+ },
+ {
+ "label": "Simulation",
+ "value": "4710"
+ },
+ {
+ "label": "Simulator",
+ "value": "4168"
+ },
+ {
+ "label": "Singers",
+ "value": "4735"
+ },
+ {
+ "label": "SingleHero",
+ "value": "4086"
+ },
+ {
+ "label": "SinglePare",
+ "value": "4604"
+ },
+ {
+ "label": "Siscon",
+ "value": "4704"
+ },
+ {
+ "label": "Sisterandb",
+ "value": "4484"
+ },
+ {
+ "label": "SisterComp",
+ "value": "4161"
+ },
+ {
+ "label": "Sisters",
+ "value": "3914"
+ },
+ {
+ "label": "SisterYu",
+ "value": "4429"
+ },
+ {
+ "label": "SkillAssim",
+ "value": "3805"
+ },
+ {
+ "label": "SkillBooks",
+ "value": "4596"
+ },
+ {
+ "label": "SkillCreat",
+ "value": "3806"
+ },
+ {
+ "label": "skycity",
+ "value": "4748"
+ },
+ {
+ "label": "slackerstu",
+ "value": "4488"
+ },
+ {
+ "label": "Slap",
+ "value": "2728"
+ },
+ {
+ "label": "Slave",
+ "value": "4678"
+ },
+ {
+ "label": "SlaveHarem",
+ "value": "4641"
+ },
+ {
+ "label": "SlaveProta",
+ "value": "3682"
+ },
+ {
+ "label": "Slaves",
+ "value": "4602"
+ },
+ {
+ "label": "SlaveSyste",
+ "value": "3858"
+ },
+ {
+ "label": "Sliceoflif",
+ "value": "248"
+ },
+ {
+ "label": "SlowGrowth",
+ "value": "3715"
+ },
+ {
+ "label": "SlowRomanc",
+ "value": "3762"
+ },
+ {
+ "label": "Smalldogs",
+ "value": "4561"
+ },
+ {
+ "label": "SmartCoupl",
+ "value": "3945"
+ },
+ {
+ "label": "SmartMC",
+ "value": "3951"
+ },
+ {
+ "label": "smartprota",
+ "value": "4674"
+ },
+ {
+ "label": "Smut",
+ "value": "858"
+ },
+ {
+ "label": "Soccer",
+ "value": "4617"
+ },
+ {
+ "label": "softricefl",
+ "value": "4295"
+ },
+ {
+ "label": "Soldiers",
+ "value": "4625"
+ },
+ {
+ "label": "Solitarype",
+ "value": "4342"
+ },
+ {
+ "label": "son-in-law",
+ "value": "3342"
+ },
+ {
+ "label": "SoulPower",
+ "value": "3908"
+ },
+ {
+ "label": "Souls",
+ "value": "3909"
+ },
+ {
+ "label": "Space",
+ "value": "4335"
+ },
+ {
+ "label": "Space-time",
+ "value": "4321"
+ },
+ {
+ "label": "Spaceopera",
+ "value": "4576"
+ },
+ {
+ "label": "Spaceship",
+ "value": "3785"
+ },
+ {
+ "label": "SpatialMan",
+ "value": "3642"
+ },
+ {
+ "label": "SpecialAbi",
+ "value": "3812"
+ },
+ {
+ "label": "Specialfor",
+ "value": "4220"
+ },
+ {
+ "label": "Spirits",
+ "value": "4004"
+ },
+ {
+ "label": "Spoil",
+ "value": "3464"
+ },
+ {
+ "label": "spoiler",
+ "value": "3324"
+ },
+ {
+ "label": "Spoiling",
+ "value": "160"
+ },
+ {
+ "label": "spookygame",
+ "value": "4508"
+ },
+ {
+ "label": "Sports",
+ "value": "685"
+ },
+ {
+ "label": "Sportscomp",
+ "value": "4258"
+ },
+ {
+ "label": "Stalkers",
+ "value": "4665"
+ },
+ {
+ "label": "Stand",
+ "value": "4171"
+ },
+ {
+ "label": "Stand-alon",
+ "value": "3551"
+ },
+ {
+ "label": "Start",
+ "value": "3065"
+ },
+ {
+ "label": "Startabusi",
+ "value": "4365"
+ },
+ {
+ "label": "Steampunk",
+ "value": "2972"
+ },
+ {
+ "label": "StoreOwner",
+ "value": "4011"
+ },
+ {
+ "label": "StraightAs",
+ "value": "4216"
+ },
+ {
+ "label": "straightma",
+ "value": "4274"
+ },
+ {
+ "label": "StraightSe",
+ "value": "4729"
+ },
+ {
+ "label": "stranger",
+ "value": "3224"
+ },
+ {
+ "label": "StrategicB",
+ "value": "3636"
+ },
+ {
+ "label": "Strategist",
+ "value": "4628"
+ },
+ {
+ "label": "Strategy",
+ "value": "3251"
+ },
+ {
+ "label": "streamofhe",
+ "value": "4280"
+ },
+ {
+ "label": "Streamwith",
+ "value": "4291"
+ },
+ {
+ "label": "Strength-b",
+ "value": "3692"
+ },
+ {
+ "label": "strong",
+ "value": "2744"
+ },
+ {
+ "label": "Strongback",
+ "value": "855"
+ },
+ {
+ "label": "strongfema",
+ "value": "4215"
+ },
+ {
+ "label": "Strongfema",
+ "value": "54"
+ },
+ {
+ "label": "Strongfrom",
+ "value": "3821"
+ },
+ {
+ "label": "StrongLove",
+ "value": "4122"
+ },
+ {
+ "label": "Strongmena",
+ "value": "4489"
+ },
+ {
+ "label": "StrongProt",
+ "value": "1147"
+ },
+ {
+ "label": "strongstre",
+ "value": "4323"
+ },
+ {
+ "label": "StrongSubo",
+ "value": "3891"
+ },
+ {
+ "label": "StrongtoSt",
+ "value": "108"
+ },
+ {
+ "label": "strongwoma",
+ "value": "4740"
+ },
+ {
+ "label": "struggle",
+ "value": "3345"
+ },
+ {
+ "label": "Stubborn",
+ "value": "4736"
+ },
+ {
+ "label": "Student",
+ "value": "2953"
+ },
+ {
+ "label": "Student-Te",
+ "value": "4114"
+ },
+ {
+ "label": "subject",
+ "value": "2889"
+ },
+ {
+ "label": "substitute",
+ "value": "3500"
+ },
+ {
+ "label": "Succubus",
+ "value": "4642"
+ },
+ {
+ "label": "SuddenStre",
+ "value": "3883"
+ },
+ {
+ "label": "SuddenWeal",
+ "value": "4040"
+ },
+ {
+ "label": "SuiandTang",
+ "value": "4359"
+ },
+ {
+ "label": "suicidalpr",
+ "value": "4166"
+ },
+ {
+ "label": "Suicides",
+ "value": "4671"
+ },
+ {
+ "label": "Summoner",
+ "value": "4339"
+ },
+ {
+ "label": "Summoningf",
+ "value": "4247"
+ },
+ {
+ "label": "SummoningM",
+ "value": "3817"
+ },
+ {
+ "label": "Summons",
+ "value": "420"
+ },
+ {
+ "label": "SuperA",
+ "value": "4346"
+ },
+ {
+ "label": "Supernatur",
+ "value": "318"
+ },
+ {
+ "label": "Superpower",
+ "value": "26"
+ },
+ {
+ "label": "SuperPower",
+ "value": "3899"
+ },
+ {
+ "label": "SuperSemin",
+ "value": "3892"
+ },
+ {
+ "label": "SuperTechn",
+ "value": "1275"
+ },
+ {
+ "label": "supplier",
+ "value": "3191"
+ },
+ {
+ "label": "SupremeStr",
+ "value": "4380"
+ },
+ {
+ "label": "Survival",
+ "value": "52"
+ },
+ {
+ "label": "Survivalch",
+ "value": "4391"
+ },
+ {
+ "label": "SurvivalDo",
+ "value": "4515"
+ },
+ {
+ "label": "SurvivalGa",
+ "value": "516"
+ },
+ {
+ "label": "Survive",
+ "value": "3276"
+ },
+ {
+ "label": "Suspense",
+ "value": "3366"
+ },
+ {
+ "label": "suspensebr",
+ "value": "4453"
+ },
+ {
+ "label": "Suspensefl",
+ "value": "4384"
+ },
+ {
+ "label": "Suspensefu",
+ "value": "4236"
+ },
+ {
+ "label": "Sweet",
+ "value": "421"
+ },
+ {
+ "label": "Sweetlove",
+ "value": "66"
+ },
+ {
+ "label": "sweetpet",
+ "value": "4196"
+ },
+ {
+ "label": "sweetpetar",
+ "value": "4529"
+ },
+ {
+ "label": "sweettext",
+ "value": "4458"
+ },
+ {
+ "label": "SwordAndMa",
+ "value": "508"
+ },
+ {
+ "label": "swordrepai",
+ "value": "4352"
+ },
+ {
+ "label": "SwordWield",
+ "value": "3724"
+ },
+ {
+ "label": "System",
+ "value": "24"
+ },
+ {
+ "label": "SystemAdmi",
+ "value": "3668"
+ },
+ {
+ "label": "systemflow",
+ "value": "4223"
+ },
+ {
+ "label": "Takeaway",
+ "value": "3334"
+ },
+ {
+ "label": "takehome",
+ "value": "4311"
+ },
+ {
+ "label": "Talent",
+ "value": "4737"
+ },
+ {
+ "label": "Talentedgi",
+ "value": "4428"
+ },
+ {
+ "label": "Talents",
+ "value": "1265"
+ },
+ {
+ "label": "TangDynast",
+ "value": "4356"
+ },
+ {
+ "label": "Taoistprie",
+ "value": "4350"
+ },
+ {
+ "label": "teacher",
+ "value": "3213"
+ },
+ {
+ "label": "Teachers",
+ "value": "3978"
+ },
+ {
+ "label": "team",
+ "value": "4036"
+ },
+ {
+ "label": "Teamwork",
+ "value": "4599"
+ },
+ {
+ "label": "Technologi",
+ "value": "3771"
+ },
+ {
+ "label": "technology",
+ "value": "4250"
+ },
+ {
+ "label": "technology",
+ "value": "4334"
+ },
+ {
+ "label": "Technology",
+ "value": "3211"
+ },
+ {
+ "label": "Technology",
+ "value": "3970"
+ },
+ {
+ "label": "Technology",
+ "value": "4363"
+ },
+ {
+ "label": "Teen",
+ "value": "857"
+ },
+ {
+ "label": "Tenderness",
+ "value": "2791"
+ },
+ {
+ "label": "tennis",
+ "value": "2995"
+ },
+ {
+ "label": "Tensura",
+ "value": "4104"
+ },
+ {
+ "label": "Terracenea",
+ "value": "4435"
+ },
+ {
+ "label": "TerritoryC",
+ "value": "1276"
+ },
+ {
+ "label": "TheFourthC",
+ "value": "4244"
+ },
+ {
+ "label": "theInterne",
+ "value": "4503"
+ },
+ {
+ "label": "thescienti",
+ "value": "4324"
+ },
+ {
+ "label": "Thestronga",
+ "value": "28"
+ },
+ {
+ "label": "Thief",
+ "value": "4317"
+ },
+ {
+ "label": "ThreeKingd",
+ "value": "4292"
+ },
+ {
+ "label": "Threerelig",
+ "value": "4469"
+ },
+ {
+ "label": "Threesome",
+ "value": "3807"
+ },
+ {
+ "label": "Thriller",
+ "value": "4666"
+ },
+ {
+ "label": "thrillersu",
+ "value": "4468"
+ },
+ {
+ "label": "thunderbol",
+ "value": "2755"
+ },
+ {
+ "label": "Tianshi",
+ "value": "4479"
+ },
+ {
+ "label": "TianTingwe",
+ "value": "4288"
+ },
+ {
+ "label": "timegate",
+ "value": "4272"
+ },
+ {
+ "label": "TimeLoop",
+ "value": "4645"
+ },
+ {
+ "label": "TimeManipu",
+ "value": "4615"
+ },
+ {
+ "label": "TimeSkip",
+ "value": "3694"
+ },
+ {
+ "label": "TimeTravel",
+ "value": "3637"
+ },
+ {
+ "label": "Titans",
+ "value": "3776"
+ },
+ {
+ "label": "TokyoGhoul",
+ "value": "4148"
+ },
+ {
+ "label": "Tomb",
+ "value": "2719"
+ },
+ {
+ "label": "TomboyishF",
+ "value": "4603"
+ },
+ {
+ "label": "Topstream",
+ "value": "4420"
+ },
+ {
+ "label": "Torture",
+ "value": "4663"
+ },
+ {
+ "label": "Toughgirl",
+ "value": "4415"
+ },
+ {
+ "label": "TowerDefen",
+ "value": "3998"
+ },
+ {
+ "label": "trackandfi",
+ "value": "4330"
+ },
+ {
+ "label": "TradeWar",
+ "value": "4275"
+ },
+ {
+ "label": "Traditiona",
+ "value": "4451"
+ },
+ {
+ "label": "Tragedy",
+ "value": "507"
+ },
+ {
+ "label": "TragicPast",
+ "value": "3866"
+ },
+ {
+ "label": "Transform",
+ "value": "4552"
+ },
+ {
+ "label": "Transforma",
+ "value": "4138"
+ },
+ {
+ "label": "Transmigat",
+ "value": "4163"
+ },
+ {
+ "label": "Transmigra",
+ "value": "15"
+ },
+ {
+ "label": "Transmigra",
+ "value": "4014"
+ },
+ {
+ "label": "Transmigra",
+ "value": "3979"
+ },
+ {
+ "label": "Transmigra",
+ "value": "4661"
+ },
+ {
+ "label": "Transplant",
+ "value": "4750"
+ },
+ {
+ "label": "Transporte",
+ "value": "3860"
+ },
+ {
+ "label": "Transporte",
+ "value": "3840"
+ },
+ {
+ "label": "Transporte",
+ "value": "4187"
+ },
+ {
+ "label": "Trap",
+ "value": "4600"
+ },
+ {
+ "label": "travel",
+ "value": "4749"
+ },
+ {
+ "label": "Traveling",
+ "value": "4082"
+ },
+ {
+ "label": "Travelthro",
+ "value": "4551"
+ },
+ {
+ "label": "TreasureCh",
+ "value": "4371"
+ },
+ {
+ "label": "TribalSoci",
+ "value": "4707"
+ },
+ {
+ "label": "trickery",
+ "value": "3292"
+ },
+ {
+ "label": "Troubledti",
+ "value": "4318"
+ },
+ {
+ "label": "Trueandfal",
+ "value": "4507"
+ },
+ {
+ "label": "TS",
+ "value": "4569"
+ },
+ {
+ "label": "Tsundere",
+ "value": "139"
+ },
+ {
+ "label": "Tutor",
+ "value": "2720"
+ },
+ {
+ "label": "Twins",
+ "value": "4718"
+ },
+ {
+ "label": "TwistedPer",
+ "value": "4672"
+ },
+ {
+ "label": "Two-dimens",
+ "value": "3054"
+ },
+ {
+ "label": "two-waycru",
+ "value": "4261"
+ },
+ {
+ "label": "Type-moon",
+ "value": "4105"
+ },
+ {
+ "label": "Ugly",
+ "value": "4353"
+ },
+ {
+ "label": "UglyProtag",
+ "value": "3740"
+ },
+ {
+ "label": "UglytoBeau",
+ "value": "4632"
+ },
+ {
+ "label": "Ultrafan",
+ "value": "4461"
+ },
+ {
+ "label": "Uncle",
+ "value": "3586"
+ },
+ {
+ "label": "UncleJiu",
+ "value": "4513"
+ },
+ {
+ "label": "Unconditio",
+ "value": "4610"
+ },
+ {
+ "label": "Undead",
+ "value": "776"
+ },
+ {
+ "label": "Undercover",
+ "value": "3226"
+ },
+ {
+ "label": "Underestim",
+ "value": "4619"
+ },
+ {
+ "label": "UniqueCult",
+ "value": "4583"
+ },
+ {
+ "label": "Unknown",
+ "value": "1789"
+ },
+ {
+ "label": "UnlimitedF",
+ "value": "4751"
+ },
+ {
+ "label": "Unprincipl",
+ "value": "751"
+ },
+ {
+ "label": "Unreliable",
+ "value": "4070"
+ },
+ {
+ "label": "upgrade",
+ "value": "3170"
+ },
+ {
+ "label": "Upgradeand",
+ "value": "4722"
+ },
+ {
+ "label": "upgradeflo",
+ "value": "4282"
+ },
+ {
+ "label": "Urban",
+ "value": "104"
+ },
+ {
+ "label": "UrbanAbili",
+ "value": "4442"
+ },
+ {
+ "label": "Urbanbrain",
+ "value": "4197"
+ },
+ {
+ "label": "UrbanCulti",
+ "value": "4199"
+ },
+ {
+ "label": "Urbanfanta",
+ "value": "4478"
+ },
+ {
+ "label": "urbanfarmi",
+ "value": "4446"
+ },
+ {
+ "label": "urbanimmor",
+ "value": "4306"
+ },
+ {
+ "label": "Urbanlife",
+ "value": "4207"
+ },
+ {
+ "label": "urbanroman",
+ "value": "4539"
+ },
+ {
+ "label": "UrbanRoman",
+ "value": "4769"
+ },
+ {
+ "label": "urbanworkp",
+ "value": "4531"
+ },
+ {
+ "label": "urbanyouth",
+ "value": "4520"
+ },
+ {
+ "label": "Vampire",
+ "value": "115"
+ },
+ {
+ "label": "Vampires",
+ "value": "5"
+ },
+ {
+ "label": "Variety",
+ "value": "3430"
+ },
+ {
+ "label": "vest",
+ "value": "2867"
+ },
+ {
+ "label": "Videogame",
+ "value": "562"
+ },
+ {
+ "label": "videostrea",
+ "value": "4331"
+ },
+ {
+ "label": "Villain",
+ "value": "207"
+ },
+ {
+ "label": "Villainpro",
+ "value": "649"
+ },
+ {
+ "label": "VinegarKin",
+ "value": "4308"
+ },
+ {
+ "label": "VirtualRea",
+ "value": "79"
+ },
+ {
+ "label": "Voice",
+ "value": "3435"
+ },
+ {
+ "label": "War",
+ "value": "601"
+ },
+ {
+ "label": "Warcraft",
+ "value": "4481"
+ },
+ {
+ "label": "Warm",
+ "value": "3176"
+ },
+ {
+ "label": "Warmman",
+ "value": "4423"
+ },
+ {
+ "label": "Warmpettex",
+ "value": "4475"
+ },
+ {
+ "label": "warrior",
+ "value": "3247"
+ },
+ {
+ "label": "Wars",
+ "value": "19"
+ },
+ {
+ "label": "Warship",
+ "value": "4083"
+ },
+ {
+ "label": "WarsWeakto",
+ "value": "3868"
+ },
+ {
+ "label": "Wasteland",
+ "value": "4656"
+ },
+ {
+ "label": "Wastewoodf",
+ "value": "4383"
+ },
+ {
+ "label": "WaterMargi",
+ "value": "4319"
+ },
+ {
+ "label": "WeakProtag",
+ "value": "3716"
+ },
+ {
+ "label": "WeaktoStro",
+ "value": "2"
+ },
+ {
+ "label": "Wealthy",
+ "value": "2931"
+ },
+ {
+ "label": "WealthyCha",
+ "value": "3867"
+ },
+ {
+ "label": "wealthyfam",
+ "value": "4203"
+ },
+ {
+ "label": "wealthypre",
+ "value": "4200"
+ },
+ {
+ "label": "wearback",
+ "value": "4485"
+ },
+ {
+ "label": "wearbook",
+ "value": "4303"
+ },
+ {
+ "label": "WebNovel",
+ "value": "4577"
+ },
+ {
+ "label": "Werebeasts",
+ "value": "4095"
+ },
+ {
+ "label": "Werewolf",
+ "value": "164"
+ },
+ {
+ "label": "Werewolves",
+ "value": "3993"
+ },
+ {
+ "label": "Westernfan",
+ "value": "4355"
+ },
+ {
+ "label": "WesternRom",
+ "value": "4471"
+ },
+ {
+ "label": "WestwardJo",
+ "value": "4296"
+ },
+ {
+ "label": "Whimsical",
+ "value": "2706"
+ },
+ {
+ "label": "White",
+ "value": "3296"
+ },
+ {
+ "label": "whitecolla",
+ "value": "4457"
+ },
+ {
+ "label": "whitelotus",
+ "value": "4309"
+ },
+ {
+ "label": "Whitemoonl",
+ "value": "4409"
+ },
+ {
+ "label": "Wisdom",
+ "value": "2922"
+ },
+ {
+ "label": "Witches",
+ "value": "3845"
+ },
+ {
+ "label": "Wizard",
+ "value": "3931"
+ },
+ {
+ "label": "Wizards",
+ "value": "136"
+ },
+ {
+ "label": "wizardstre",
+ "value": "4266"
+ },
+ {
+ "label": "Workplace",
+ "value": "2769"
+ },
+ {
+ "label": "workplaceb",
+ "value": "4474"
+ },
+ {
+ "label": "WorldHoppi",
+ "value": "426"
+ },
+ {
+ "label": "WorldofWar",
+ "value": "4139"
+ },
+ {
+ "label": "WorldTrave",
+ "value": "3643"
+ },
+ {
+ "label": "WOW",
+ "value": "4176"
+ },
+ {
+ "label": "Writer",
+ "value": "3328"
+ },
+ {
+ "label": "Writers",
+ "value": "3854"
+ },
+ {
+ "label": "Wuxia",
+ "value": "4633"
+ },
+ {
+ "label": "WW2",
+ "value": "4726"
+ },
+ {
+ "label": "Xianjun",
+ "value": "4557"
+ },
+ {
+ "label": "Xianxia",
+ "value": "506"
+ },
+ {
+ "label": "Xianzun",
+ "value": "3478"
+ },
+ {
+ "label": "Xiaosan",
+ "value": "2857"
+ },
+ {
+ "label": "Xijing",
+ "value": "3234"
+ },
+ {
+ "label": "Xiuwaihuih",
+ "value": "4411"
+ },
+ {
+ "label": "Xiuxian",
+ "value": "3271"
+ },
+ {
+ "label": "Xuanhuan",
+ "value": "882"
+ },
+ {
+ "label": "Yancontrol",
+ "value": "4235"
+ },
+ {
+ "label": "Yandere",
+ "value": "7"
+ },
+ {
+ "label": "Yaoi",
+ "value": "247"
+ },
+ {
+ "label": "YoungerBro",
+ "value": "3944"
+ },
+ {
+ "label": "YoungerSis",
+ "value": "3861"
+ },
+ {
+ "label": "Youth",
+ "value": "4762"
+ },
+ {
+ "label": "Youthcampu",
+ "value": "4456"
+ },
+ {
+ "label": "Yugioh",
+ "value": "4164"
+ },
+ {
+ "label": "Yuri",
+ "value": "560"
+ },
+ {
+ "label": "Zergs",
+ "value": "4669"
+ },
+ {
+ "label": "Zhenguan",
+ "value": "3445"
+ },
+ {
+ "label": "Zombie",
+ "value": "3206"
+ },
+ {
+ "label": "Zombies",
+ "value": "3693"
+ },
+ {
+ "label": "Zongmen",
+ "value": "3402"
+ },
+ {
+ "label": "女神",
+ "value": "2818"
+ },
+ {
+ "label": "妖精",
+ "value": "3436"
+ },
+ {
+ "label": "婚姻",
+ "value": "4535"
+ },
+ {
+ "label": "宋朝",
+ "value": "3454"
+ },
+ {
+ "label": "家族",
+ "value": "3144"
+ },
+ {
+ "label": "恐怖",
+ "value": "2757"
+ },
+ {
+ "label": "房地产",
+ "value": "4545"
+ },
+ {
+ "label": "教授",
+ "value": "4487"
+ },
+ {
+ "label": "日常",
+ "value": "4333"
+ },
+ {
+ "label": "氪金",
+ "value": "4284"
+ },
+ {
+ "label": "王者荣耀",
+ "value": "4256"
+ },
+ {
+ "label": "直播",
+ "value": "3064"
+ },
+ {
+ "label": "神话",
+ "value": "3270"
+ },
+ {
+ "label": "空间",
+ "value": "2901"
+ },
+ {
+ "label": "金融",
+ "value": "3434"
+ },
+ {
+ "label": "非洲",
+ "value": "4544"
+ }
+ ],
+ "value": "",
+ "type": "Picker"
+ }
+ }
}
]
diff --git a/scripts/multisrc/readwn/template.ts b/scripts/multisrc/readwn/template.ts
index 383c2e0..fc0f3da 100644
--- a/scripts/multisrc/readwn/template.ts
+++ b/scripts/multisrc/readwn/template.ts
@@ -3,8 +3,7 @@ import { Filters, FilterTypes } from "@libs/filterInputs";
import { Plugin } from "@typings/plugin";
import { NovelStatus } from "@libs/novelStatus";
import { load as parseHTML } from "cheerio";
-import { parseMadaraDate } from "@libs/parseMadaraDate";
-// import { defaultCover } from "@libs/defaultCover";
+import dayjs from "dayjs";
export interface ReadwnMetadata {
id: string;
@@ -23,9 +22,8 @@ class ReadwnPlugin implements Plugin.PluginBase {
constructor(metadata: ReadwnMetadata) {
this.id = metadata.id;
- this.name = metadata.sourceName + "[readwn]";
- const iconFileName = metadata.sourceName.replace(/\s+/g, "").toLowerCase();
- this.icon = `multisrc/readwn/icons/${iconFileName}.png`;
+ this.name = metadata.sourceName;
+ this.icon = `multisrc/readwn/icons/${metadata.id}.png`;
this.site = metadata.sourceSite;
this.version = "1.0.0";
this.filters = metadata.filters;
@@ -70,7 +68,8 @@ class ReadwnPlugin implements Plugin.PluginBase {
novel.name = loadedCheerio("h1.novel-title").text();
novel.author = loadedCheerio("span[itemprop=author]").text();
- novel.cover = this.site + loadedCheerio("figure.cover > img").attr("data-src");
+ novel.cover =
+ this.site + loadedCheerio("figure.cover > img").attr("data-src");
novel.summary = loadedCheerio(".summary")
.text()
@@ -84,7 +83,10 @@ class ReadwnPlugin implements Plugin.PluginBase {
loadedCheerio("div.header-stats > span").each(function () {
if (loadedCheerio(this).find("small").text() === "Status") {
- novel.status = loadedCheerio(this).find("strong").text();
+ novel.status =
+ loadedCheerio(this).find("strong").text() === "Ongoing"
+ ? NovelStatus.Ongoing
+ : NovelStatus.Completed;
}
});
@@ -97,17 +99,48 @@ class ReadwnPlugin implements Plugin.PluginBase {
);
const chapters: Plugin.ChapterItem[] = loadedCheerio(".chapter-list li")
- .map((index, element) => {
+ .map((chapterIndex, element) => {
const name = loadedCheerio(element).find("a .chapter-title").text().trim();
const url = loadedCheerio(element).find("a").attr("href")?.trim();
- const releaseTime = loadedCheerio(element).find("a .chapter-update").text().trim();
-
if (!name || !url) return null;
+ let releaseTime = loadedCheerio(element).find("a .chapter-update").text().trim();
+ if (releaseTime?.includes?.("ago")) {
+ const timeAgo = releaseTime.match(/\d+/)?.[0] || "0";
+ const timeAgoInt = parseInt(timeAgo, 10);
+
+ if (timeAgoInt) {
+ const dayJSDate = dayjs(); // today
+ if (
+ releaseTime.includes("hours ago") ||
+ releaseTime.includes("hour ago")
+ ) {
+ dayJSDate.subtract(timeAgoInt, "hours"); // go back N hours
+ }
+
+ if (
+ releaseTime.includes("days ago") ||
+ releaseTime.includes("day ago")
+ ) {
+ dayJSDate.subtract(timeAgoInt, "days"); // go back N days
+ }
+
+ if (
+ releaseTime.includes("months ago") ||
+ releaseTime.includes("month ago")
+ ) {
+ dayJSDate.subtract(timeAgoInt, "months"); // go back N months
+ }
+
+ releaseTime = dayJSDate.format("LL");
+ }
+ }
+
return {
name,
- releaseTime: parseMadaraDate(releaseTime),
url: this.site + url,
+ releaseTime: releaseTime,
+ chapterNumber: chapterIndex + 1,
};
})
.get()
@@ -122,8 +155,9 @@ class ReadwnPlugin implements Plugin.PluginBase {
for (let i = (lastChapterNo || chapters.length) + 1; i <= latestChapterNo; i++) {
chapters.push({
name: "Chapter " + i,
- releaseTime: null,
url: novelUrl.replace(".html", "_" + i + ".html"),
+ releaseTime: null,
+ chapterNumber: i,
});
}
}
@@ -140,22 +174,17 @@ class ReadwnPlugin implements Plugin.PluginBase {
return chapterText;
}
- async searchNovels(keyboard: string): Promise {
+ async searchNovels(searchTerm: string): Promise {
const result = await fetchApi(this.site + "/e/search/index.php", {
headers: {
"Content-Type": "application/x-www-form-urlencoded",
Referer: this.site + "/search.html",
Origin: this.site,
- "user-agent":
- "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36",
},
method: "POST",
- body: JSON.stringify({
- show: "title",
- tempid: 1,
- tbname: "news",
- keyboard,
- }),
+ body:
+ "show=title&tempid=1&tbname=news&keyboard=" +
+ encodeURIComponent(searchTerm),
}).then((res) => res.text());
const loadedCheerio = parseHTML(result);
diff --git a/scripts/multisrc/rulate/settings.json b/scripts/multisrc/rulate/settings.json
index 2b3502b..731f5c8 100644
--- a/scripts/multisrc/rulate/settings.json
+++ b/scripts/multisrc/rulate/settings.json
@@ -1552,7 +1552,7 @@
],
"type": "Picker"
},
- "trash": {
+ "extra": {
"label": "Другое:",
"value": [],
"options": [
@@ -1612,7 +1612,7 @@
},
"adult": {
"label": "Возрастные ограничения:",
- "value": "0",
+ "value": "1",
"options": [
{
"label": "Все",
diff --git a/scripts/multisrc/rulate/sources.json b/scripts/multisrc/rulate/sources.json
index 382df23..7501aa6 100644
--- a/scripts/multisrc/rulate/sources.json
+++ b/scripts/multisrc/rulate/sources.json
@@ -1,6 +1,6 @@
[
{
- "id": "tl.rulate",
+ "id": "rulate",
"sourceSite": "https://tl.rulate.ru",
"sourceName": "Rulate",
"filters": {
diff --git a/scripts/multisrc/rulate/template.ts b/scripts/multisrc/rulate/template.ts
index 7c37a43..923e45c 100644
--- a/scripts/multisrc/rulate/template.ts
+++ b/scripts/multisrc/rulate/template.ts
@@ -22,9 +22,8 @@ class RulatePlugin implements Plugin.PluginBase {
constructor(metadata: RulateMetadata) {
this.id = metadata.id;
- this.name = metadata.sourceName + "[rulate]";
- const iconFileName = metadata.sourceName.replace(/\s+/g, "").toLowerCase();
- this.icon = `multisrc/rulate/icons/${iconFileName}.png`;
+ this.name = metadata.sourceName;
+ this.icon = `multisrc/rulate/icons/${metadata.id}.png`;
this.site = metadata.sourceSite;
this.version = "1.0.0";
this.filters = metadata.filters;
@@ -35,8 +34,7 @@ class RulatePlugin implements Plugin.PluginBase {
{ filters, showLatestNovels }: Plugin.PopularNovelsOptions,
): Promise {
const novels: Plugin.NovelItem[] = [];
- const baseUrl = this.site;
- let url = baseUrl + "/search?t=";
+ let url = this.site + "/search?t=";
url += "&cat=" + (filters?.cat?.value || "0");
url += "&s_lang=" + (filters?.s_lang?.value || "0");
url += "&t_lang=" + (filters?.t_lang?.value || "0");
@@ -45,39 +43,13 @@ class RulatePlugin implements Plugin.PluginBase {
url += "&atmosphere=" + (filters?.atmosphere?.value || "0");
url += "&adult=" + (filters?.adult?.value || "0");
- if (filters?.genres?.value instanceof Array) {
- url += filters.genres.value.map((i) => "&genres[]=" + i).join("");
- }
-
- //if (filters?.genres?.value?.exclude instanceof Array) {
- // url += filters.genres.value.exclude
- // ?.map((i) => "&genres_ex[]=" + i)
- // .join("");
- //}
-
- if (filters?.tags?.value instanceof Array) {
- url += filters.tags.value.map((i) => "&tags[]=" + i).join("");
- }
-
- //if (filters?.tags?.value?.exclude instanceof Array) {
- // url += filters.tags.value.exclude
- // ?.map((i) => "&tags_ex[]=" + i)
- // .join("");
- //}
-
- if (filters?.fandoms?.value instanceof Array) {
- url += filters.fandoms.value.map((i) => "&fandoms[]=" + i).join("");
- }
-
- // if (filters?.fandoms?.value?.exclude instanceof Array) {
- // url += filters.fandoms.value.exclude
- // .map((i) => "&fandoms_ex[]=" + i)
- // .join("");
- // }
-
- if (filters?.trash?.value instanceof Array) {
- url += filters.trash.value.map((i) => "&" + i + "=1").join("");
- }
+ Object.entries(filters || {}).forEach(([type, { value }]) => {
+ if (value instanceof Array && value.length) {
+ url += "&" + value
+ .map((val) => (type == "extra" ? val + "=1" : type + "[]=" + val))
+ .join("&");
+ }
+ });
url += "&Book_page=" + pageNo;
@@ -86,21 +58,20 @@ class RulatePlugin implements Plugin.PluginBase {
loadedCheerio(
'ul[class="search-results"] > li:not([class="ad_type_catalog"])',
- ).each(function () {
- loadedCheerio(this).find("p > a").text();
- const name = loadedCheerio(this).find("p > a").text();
- const cover = loadedCheerio(this).find("img").attr("src");
- const url = loadedCheerio(this).find("p > a").attr("href");
+ ).each((index, element) => {
+ loadedCheerio(element).find("p > a").text();
+ const name = loadedCheerio(element).find("p > a").text();
+ const cover = loadedCheerio(element).find("img").attr("src");
+ const url = loadedCheerio(element).find("p > a").attr("href");
if (!name || !url) return;
- novels.push({ name, cover: baseUrl + cover, url: baseUrl + url });
+ novels.push({ name, cover: this.site + cover, url: this.site + url });
});
return novels;
}
async parseNovelAndChapters(novelUrl: string): Promise {
- const baseUrl = this.site;
const novel: Plugin.SourceNovel = {
url: novelUrl,
};
@@ -129,7 +100,7 @@ class RulatePlugin implements Plugin.PluginBase {
novel.name = novel.name.split("[")[0].trim();
}
novel.cover =
- baseUrl + loadedCheerio('div[class="images"] > div img').attr("src");
+ this.site + loadedCheerio('div[class="images"] > div img').attr("src");
novel.summary =
loadedCheerio("#Info > div:nth-child(3), .book-description").text().trim();
novel.author = loadedCheerio(
@@ -172,27 +143,17 @@ class RulatePlugin implements Plugin.PluginBase {
}
const chapters: Plugin.ChapterItem[] = [];
- loadedCheerio("table > tbody > tr.chapter_row").each(function () {
- const chapterName = loadedCheerio(this)
- .find('td[class="t"] > a')
- .text()
- .trim();
- const releaseDate = loadedCheerio(this)
- .find("td > span")
- .attr("title")
- ?.trim();
- const chapterUrl = loadedCheerio(this)
- .find('td[class="t"] > a')
- .attr("href");
+ loadedCheerio("table > tbody > tr.chapter_row").each((chapterIndex, element) => {
+ const chapterName = loadedCheerio(element).find('td[class="t"] > a').text().trim();
+ const releaseDate = loadedCheerio(element).find("td > span").attr("title")?.trim();
+ const chapterUrl = loadedCheerio(element).find('td[class="t"] > a').attr("href");
- if (
- !loadedCheerio(this).find('td > span[class="disabled"]').length &&
- releaseDate
- ) {
+ if (!loadedCheerio(element).find('td > span[class="disabled"]').length && releaseDate) {
chapters.push({
name: chapterName,
+ url: this.site + chapterUrl,
releaseTime: releaseDate,
- url: baseUrl + chapterUrl,
+ chapterNumber: chapterIndex + 1,
});
}
});
@@ -202,7 +163,6 @@ class RulatePlugin implements Plugin.PluginBase {
}
async parseChapter(chapterUrl: string): Promise {
- const baseUrl = this.site;
let result = await fetchApi(chapterUrl);
if (result.url.includes("mature?path=")) {
const formData = new FormData();
@@ -218,10 +178,10 @@ class RulatePlugin implements Plugin.PluginBase {
const body = await result.text();
const loadedCheerio = parseHTML(body);
- loadedCheerio(".content-text img").each(function () {
- if (!loadedCheerio(this).attr("src")?.startsWith("http")) {
- const src = loadedCheerio(this).attr("src");
- loadedCheerio(this).attr("src", baseUrl + src);
+ loadedCheerio(".content-text img").each((index, element) => {
+ if (!loadedCheerio(element).attr("src")?.startsWith("http")) {
+ const src = loadedCheerio(element).attr("src");
+ loadedCheerio(element).attr("src", this.site + src);
}
});
diff --git a/scripts/multisrc/wpmangastream/template.ts b/scripts/multisrc/wpmangastream/template.ts
index 6272abe..ea4a02d 100644
--- a/scripts/multisrc/wpmangastream/template.ts
+++ b/scripts/multisrc/wpmangastream/template.ts
@@ -25,7 +25,7 @@ class WPmangaStreamPlugin implements Plugin.PluginBase {
constructor(metadata: WPmangaStreamMetadata) {
this.id = metadata.id;
- this.name = metadata.sourceName + "[wpmangastream]";
+ this.name = metadata.sourceName;
this.icon = `multisrc/wpmangastream/icons/${metadata.id}.png`;
this.site = metadata.sourceSite;
this.version = "1.0.0";
@@ -93,13 +93,17 @@ class WPmangaStreamPlugin implements Plugin.PluginBase {
novel.summary += loadedCheerio(p).text().trim() + "\\n\\n";
}
+ const totalChapters = loadedCheerio(".eplister li").length;
const chapters: Plugin.ChapterItem[] = loadedCheerio(".eplister li")
- .map((index, element) => ({
+ .map((chapterIndex, element) => ({
name:
loadedCheerio(element).find(".epl-num").text() +
loadedCheerio(element).find(".epl-title").text(),
- releaseTime: loadedCheerio(element).find(".epl-date").text().trim(),
url: loadedCheerio(element).find("a").attr("href") || "",
+ releaseTime: loadedCheerio(element).find(".epl-date").text().trim(),
+ chapterNumber: this.options?.reverseChapters
+ ? totalChapters - chapterIndex
+ : chapterIndex + 1,
}))
.get()
.filter((chapter) => chapter.name && chapter.url);
diff --git a/test_web/api/plugins.ts b/test_web/api/plugins.ts
index aeda811..49d4520 100644
--- a/test_web/api/plugins.ts
+++ b/test_web/api/plugins.ts
@@ -31,7 +31,7 @@ export const all_plugins = (): PluginList => {
const { id, name, version, icon } = instance;
const info: Plugin.PluginItem = {
id,
- name,
+ name: name + (plugin.match(/(\[.+\])/)?.[1] || ''),
lang: languageNative,
version,
requirePath,