From 252d72c204ae2b78087cdbac52afe35602bab174 Mon Sep 17 00:00:00 2001 From: Eugene <35057681+e-shl@users.noreply.github.com> Date: Sat, 9 May 2020 20:31:28 +0500 Subject: [PATCH] Adding a manga type for j2k library filters (to sources: comx, libmanga, mangachan, mintmanga, readmanga) (#3067) * Add Russian types of manga * Mangalib refactoring Co-authored-by: Pavel Mosein --- src/ru/comx/build.gradle | 2 +- .../src/eu/kanade/tachiyomi/extension/ru/comx/ComX.kt | 2 +- src/ru/libmanga/build.gradle | 2 +- .../tachiyomi/extension/ru/libmanga/LibManga.kt | 11 ++++++++++- src/ru/mangachan/build.gradle | 2 +- .../tachiyomi/extension/ru/mangachan/Mangachan.kt | 9 +++++++-- src/ru/mintmanga/build.gradle | 2 +- .../tachiyomi/extension/ru/mintmanga/Mintmanga.kt | 8 +++++++- src/ru/readmanga/build.gradle | 2 +- .../tachiyomi/extension/ru/readmanga/Readmanga.kt | 8 +++++++- 10 files changed, 37 insertions(+), 11 deletions(-) diff --git a/src/ru/comx/build.gradle b/src/ru/comx/build.gradle index da438eea3..292ff7e09 100644 --- a/src/ru/comx/build.gradle +++ b/src/ru/comx/build.gradle @@ -5,7 +5,7 @@ ext { appName = 'Tachiyomi: ComX' pkgNameSuffix = 'ru.comx' extClass = '.ComX' - extVersionCode = 5 + extVersionCode = 6 libVersion = '1.2' } diff --git a/src/ru/comx/src/eu/kanade/tachiyomi/extension/ru/comx/ComX.kt b/src/ru/comx/src/eu/kanade/tachiyomi/extension/ru/comx/ComX.kt index 62ab9688a..1cc573af7 100644 --- a/src/ru/comx/src/eu/kanade/tachiyomi/extension/ru/comx/ComX.kt +++ b/src/ru/comx/src/eu/kanade/tachiyomi/extension/ru/comx/ComX.kt @@ -109,7 +109,7 @@ class ComX : ParsedHttpSource() { val manga = SManga.create() manga.author = infoElement.select("p:eq(2)").text().removePrefix("Издатель: ") manga.genre = infoElement.select("p:eq(3)").text() - .removePrefix("Жанр: ") + .removePrefix("Жанр: ").split(",").plusElement("Комикс").joinToString { it.trim() } manga.status = parseStatus(infoElement.select("p:eq(4)").text() .removePrefix("Статус: ")) diff --git a/src/ru/libmanga/build.gradle b/src/ru/libmanga/build.gradle index 5e14591b0..9d60a16f5 100644 --- a/src/ru/libmanga/build.gradle +++ b/src/ru/libmanga/build.gradle @@ -5,7 +5,7 @@ ext { appName = 'Tachiyomi: MangaLib' pkgNameSuffix = 'ru.libmanga' extClass = '.LibManga' - extVersionCode = 15 + extVersionCode = 16 libVersion = '1.2' } diff --git a/src/ru/libmanga/src/eu/kanade/tachiyomi/extension/ru/libmanga/LibManga.kt b/src/ru/libmanga/src/eu/kanade/tachiyomi/extension/ru/libmanga/LibManga.kt index 2f3104f18..9137eaddd 100644 --- a/src/ru/libmanga/src/eu/kanade/tachiyomi/extension/ru/libmanga/LibManga.kt +++ b/src/ru/libmanga/src/eu/kanade/tachiyomi/extension/ru/libmanga/LibManga.kt @@ -179,11 +179,20 @@ class LibManga : ConfigurableSource, HttpSource() { override fun mangaDetailsParse(response: Response): SManga { val document = response.asJsoup() val manga = SManga.create() + if (document.html().contains("Манга удалена по просьбе правообладателей")) { manga.status = SManga.LICENSED return manga } + val body = document.select("div.section__body").first() + val rawCategory = body.select(".info-list__row:has(strong:contains(Тип)) > span").text() + val category = when { + rawCategory == "Комикс западный" -> "комикс" + rawCategory.isNotBlank() -> rawCategory.toLowerCase() + else -> "манга" + } + val genres = body.select(".info-list__row:has(strong:contains(Жанры)) > a").text() manga.title = document.select(".manga-title small").text().substringBefore("/").trim() manga.thumbnail_url = body.select(".manga__cover").attr("src") manga.author = body.select(".info-list__row:nth-child(2) > a").text() @@ -197,7 +206,7 @@ class LibManga : ConfigurableSource, HttpSource() { "завершен" -> SManga.COMPLETED else -> SManga.UNKNOWN } - manga.genre = body.select(".info-list__row:has(strong:contains(Жанры)) > a").joinToString { it.text() } + manga.genre = genres.split(",").plusElement(category).joinToString { it.trim() } manga.description = body.select(".info-desc__content").text() return manga } diff --git a/src/ru/mangachan/build.gradle b/src/ru/mangachan/build.gradle index cce1a4fd3..05e052037 100644 --- a/src/ru/mangachan/build.gradle +++ b/src/ru/mangachan/build.gradle @@ -5,7 +5,7 @@ ext { appName = 'Tachiyomi: Mangachan' pkgNameSuffix = 'ru.mangachan' extClass = '.Mangachan' - extVersionCode = 8 + extVersionCode = 9 libVersion = '1.2' } diff --git a/src/ru/mangachan/src/eu/kanade/tachiyomi/extension/ru/mangachan/Mangachan.kt b/src/ru/mangachan/src/eu/kanade/tachiyomi/extension/ru/mangachan/Mangachan.kt index 9163d06d1..5528bca7e 100644 --- a/src/ru/mangachan/src/eu/kanade/tachiyomi/extension/ru/mangachan/Mangachan.kt +++ b/src/ru/mangachan/src/eu/kanade/tachiyomi/extension/ru/mangachan/Mangachan.kt @@ -177,10 +177,15 @@ class Mangachan : ParsedHttpSource() { val infoElement = document.select("table.mangatitle").first() val descElement = document.select("div#description").first() val imgElement = document.select("img#cover").first() - + val rawCategory = infoElement.select("tr:eq(1) > td:eq(1)").text() + val category = if (rawCategory.isNotEmpty()) { + rawCategory.toLowerCase() + } else { + "манга" + } val manga = SManga.create() manga.author = infoElement.select("tr:eq(2) > td:eq(1)").text() - manga.genre = infoElement.select("tr:eq(5) > td:eq(1)").text() + manga.genre = infoElement.select("tr:eq(5) > td:eq(1)").text().split(",").plusElement(category).joinToString { it.trim() } manga.status = parseStatus(infoElement.select("tr:eq(4) > td:eq(1)").text()) manga.description = descElement.textNodes().first().text() manga.thumbnail_url = imgElement.attr("src") diff --git a/src/ru/mintmanga/build.gradle b/src/ru/mintmanga/build.gradle index dc2ac7f87..3dbbf3c1b 100644 --- a/src/ru/mintmanga/build.gradle +++ b/src/ru/mintmanga/build.gradle @@ -5,7 +5,7 @@ ext { appName = 'Tachiyomi: Mintmanga' pkgNameSuffix = 'ru.mintmanga' extClass = '.Mintmanga' - extVersionCode = 21 + extVersionCode = 22 libVersion = '1.2' } diff --git a/src/ru/mintmanga/src/eu/kanade/tachiyomi/extension/ru/mintmanga/Mintmanga.kt b/src/ru/mintmanga/src/eu/kanade/tachiyomi/extension/ru/mintmanga/Mintmanga.kt index 2275ed9c5..c40623ea1 100644 --- a/src/ru/mintmanga/src/eu/kanade/tachiyomi/extension/ru/mintmanga/Mintmanga.kt +++ b/src/ru/mintmanga/src/eu/kanade/tachiyomi/extension/ru/mintmanga/Mintmanga.kt @@ -98,11 +98,17 @@ class Mintmanga : ParsedHttpSource() { override fun mangaDetailsParse(document: Document): SManga { val infoElement = document.select("div.leftContent").first() + val rawCategory = infoElement.select("span.elem_category").text() + val category = if (rawCategory.isNotEmpty()) { + rawCategory.toLowerCase() + } else { + "манга" + } val manga = SManga.create() manga.author = infoElement.select("span.elem_author").first()?.text() manga.artist = infoElement.select("span.elem_illustrator").first()?.text() - manga.genre = infoElement.select("span.elem_genre").text().replace(" ,", ",") + manga.genre = infoElement.select("span.elem_genre").text().split(",").plusElement(category).joinToString { it.trim() } manga.description = infoElement.select("div.manga-description").text() manga.status = parseStatus(infoElement.html()) manga.thumbnail_url = infoElement.select("img").attr("data-full") diff --git a/src/ru/readmanga/build.gradle b/src/ru/readmanga/build.gradle index 8ea8baceb..bef815468 100644 --- a/src/ru/readmanga/build.gradle +++ b/src/ru/readmanga/build.gradle @@ -5,7 +5,7 @@ ext { appName = 'Tachiyomi: Readmanga' pkgNameSuffix = 'ru.readmanga' extClass = '.Readmanga' - extVersionCode = 18 + extVersionCode = 19 libVersion = '1.2' } diff --git a/src/ru/readmanga/src/eu/kanade/tachiyomi/extension/ru/readmanga/Readmanga.kt b/src/ru/readmanga/src/eu/kanade/tachiyomi/extension/ru/readmanga/Readmanga.kt index 6f982eb60..0621b0b28 100644 --- a/src/ru/readmanga/src/eu/kanade/tachiyomi/extension/ru/readmanga/Readmanga.kt +++ b/src/ru/readmanga/src/eu/kanade/tachiyomi/extension/ru/readmanga/Readmanga.kt @@ -98,11 +98,17 @@ class Readmanga : ParsedHttpSource() { override fun mangaDetailsParse(document: Document): SManga { val infoElement = document.select("div.leftContent").first() + val rawCategory = infoElement.select("span.elem_category").text() + val category = if (rawCategory.isNotEmpty()) { + rawCategory.toLowerCase() + } else { + "манга" + } val manga = SManga.create() manga.author = infoElement.select("span.elem_author").first()?.text() manga.artist = infoElement.select("span.elem_illustrator").first()?.text() - manga.genre = infoElement.select("span.elem_genre").text().replace(" ,", ",") + manga.genre = infoElement.select("span.elem_genre").text().split(",").plusElement(category).joinToString { it.trim() } manga.description = infoElement.select("div.manga-description").text() manga.status = parseStatus(infoElement.html()) manga.thumbnail_url = infoElement.select("img").attr("data-full")