[RU]Manga/Hentailib name correct in details (#11152)

* [RU]Manga/Hentailib name correct in details

* no duplicate
This commit is contained in:
e-shl 2022-03-18 07:57:03 +05:00 committed by GitHub
parent ed56a22115
commit 913d9dca86
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 46 additions and 16 deletions

View File

@ -6,7 +6,7 @@ ext {
extName = 'HentaiLib' extName = 'HentaiLib'
pkgNameSuffix = 'ru.libhentai' pkgNameSuffix = 'ru.libhentai'
extClass = '.LibHentai' extClass = '.LibHentai'
extVersionCode = 9 extVersionCode = 10
isNsfw = true isNsfw = true
} }

View File

@ -181,6 +181,13 @@ class LibHentai : ConfigurableSource, HttpSource() {
override fun mangaDetailsParse(response: Response): SManga { override fun mangaDetailsParse(response: Response): SManga {
val document = response.asJsoup() val document = response.asJsoup()
val dataStr = document
.toString()
.substringAfter("window.__DATA__ = ")
.substringBefore("window._SITE_COLOR_")
.substringBeforeLast(";")
val dataManga = json.decodeFromString<JsonObject>(dataStr)["manga"]
val manga = SManga.create() val manga = SManga.create()
@ -212,7 +219,11 @@ class LibHentai : ConfigurableSource, HttpSource() {
else -> "☆☆☆☆☆" else -> "☆☆☆☆☆"
} }
val genres = document.select(".media-tags > a").map { it.text().capitalize() } val genres = document.select(".media-tags > a").map { it.text().capitalize() }
manga.title = if (isEng.equals("rus")) document.select(".media-name__main").text() else document.select(".media-name__alt").text() manga.title = when {
isEng.equals("rus") && dataManga!!.jsonObject["rusName"]?.jsonPrimitive?.content.orEmpty().isNotEmpty() -> dataManga.jsonObject["rusName"]!!.jsonPrimitive.content
isEng.equals("eng") && dataManga!!.jsonObject["engName"]?.jsonPrimitive?.content.orEmpty().isNotEmpty() -> dataManga.jsonObject["engName"]!!.jsonPrimitive.content
else -> dataManga!!.jsonObject["name"]!!.jsonPrimitive.content
}
manga.thumbnail_url = document.select(".media-sidebar__cover > img").attr("src") manga.thumbnail_url = document.select(".media-sidebar__cover > img").attr("src")
manga.author = body.select("div.media-info-list__title:contains(Автор) + div").text() manga.author = body.select("div.media-info-list__title:contains(Автор) + div").text()
manga.artist = body.select("div.media-info-list__title:contains(Художник) + div").text() manga.artist = body.select("div.media-info-list__title:contains(Художник) + div").text()
@ -230,13 +241,17 @@ class LibHentai : ConfigurableSource, HttpSource() {
else -> SManga.UNKNOWN else -> SManga.UNKNOWN
} }
manga.genre = category + ", " + rawAgeStop + ", " + genres.joinToString { it.trim() } manga.genre = category + ", " + rawAgeStop + ", " + genres.joinToString { it.trim() }
val altSelector = document.select(".media-info-list__item_alt-names .media-info-list__value div")
var altName = "" val altName = if (dataManga!!.jsonObject["altNames"]?.jsonArray.orEmpty().isNotEmpty())
if (altSelector.isNotEmpty()) { "Альтернативные названия:\n" + dataManga.jsonObject["altNames"]!!.jsonArray.joinToString(" / ") { it.jsonPrimitive.content } + "\n\n"
altName = "Альтернативные названия:\n" + altSelector.map { it.text() }.joinToString(" / ") + "\n\n" else ""
val mediaNameLanguage = when {
isEng.equals("eng") && dataManga!!.jsonObject["rusName"]?.jsonPrimitive?.content.orEmpty().isNotEmpty() -> dataManga.jsonObject["rusName"]!!.jsonPrimitive.content + "\n"
isEng.equals("rus") && dataManga!!.jsonObject["engName"]?.jsonPrimitive?.content.orEmpty().isNotEmpty() -> dataManga.jsonObject["engName"]!!.jsonPrimitive.content + "\n"
else -> ""
} }
val mediaNameLanguage = if (isEng.equals("rus")) document.select(".media-name__alt").text() else document.select(".media-name__main").text() manga.description = mediaNameLanguage + ratingStar + " " + ratingValue + " (голосов: " + ratingVotes + ")\n" + altName + document.select(".media-description__text").text()
manga.description = mediaNameLanguage + "\n" + ratingStar + " " + ratingValue + " (голосов: " + ratingVotes + ")\n" + altName + document.select(".media-description__text").text()
return manga return manga
} }

View File

@ -6,7 +6,7 @@ ext {
extName = 'MangaLib' extName = 'MangaLib'
pkgNameSuffix = 'ru.libmanga' pkgNameSuffix = 'ru.libmanga'
extClass = '.LibManga' extClass = '.LibManga'
extVersionCode = 65 extVersionCode = 66
} }
dependencies { dependencies {

View File

@ -174,6 +174,13 @@ class LibManga : ConfigurableSource, HttpSource() {
override fun mangaDetailsParse(response: Response): SManga { override fun mangaDetailsParse(response: Response): SManga {
val document = response.asJsoup() val document = response.asJsoup()
val dataStr = document
.toString()
.substringAfter("window.__DATA__ = ")
.substringBefore("window._SITE_COLOR_")
.substringBeforeLast(";")
val dataManga = json.decodeFromString<JsonObject>(dataStr)["manga"]
val manga = SManga.create() val manga = SManga.create()
@ -205,7 +212,11 @@ class LibManga : ConfigurableSource, HttpSource() {
else -> "☆☆☆☆☆" else -> "☆☆☆☆☆"
} }
val genres = document.select(".media-tags > a").map { it.text().capitalize() } val genres = document.select(".media-tags > a").map { it.text().capitalize() }
manga.title = if (isEng.equals("rus")) document.select(".media-name__main").text() else document.select(".media-name__alt").text() manga.title = when {
isEng.equals("rus") && dataManga!!.jsonObject["rusName"]?.jsonPrimitive?.content.orEmpty().isNotEmpty() -> dataManga.jsonObject["rusName"]!!.jsonPrimitive.content
isEng.equals("eng") && dataManga!!.jsonObject["engName"]?.jsonPrimitive?.content.orEmpty().isNotEmpty() -> dataManga.jsonObject["engName"]!!.jsonPrimitive.content
else -> dataManga!!.jsonObject["name"]!!.jsonPrimitive.content
}
manga.thumbnail_url = document.select(".media-sidebar__cover > img").attr("src") manga.thumbnail_url = document.select(".media-sidebar__cover > img").attr("src")
manga.author = body.select("div.media-info-list__title:contains(Автор) + div").text() manga.author = body.select("div.media-info-list__title:contains(Автор) + div").text()
manga.artist = body.select("div.media-info-list__title:contains(Художник) + div").text() manga.artist = body.select("div.media-info-list__title:contains(Художник) + div").text()
@ -223,13 +234,17 @@ class LibManga : ConfigurableSource, HttpSource() {
else -> SManga.UNKNOWN else -> SManga.UNKNOWN
} }
manga.genre = category + ", " + rawAgeStop + ", " + genres.joinToString { it.trim() } manga.genre = category + ", " + rawAgeStop + ", " + genres.joinToString { it.trim() }
val altSelector = document.select(".media-info-list__item_alt-names .media-info-list__value div")
var altName = "" val altName = if (dataManga!!.jsonObject["altNames"]?.jsonArray.orEmpty().isNotEmpty())
if (altSelector.isNotEmpty()) { "Альтернативные названия:\n" + dataManga.jsonObject["altNames"]!!.jsonArray.joinToString(" / ") { it.jsonPrimitive.content } + "\n\n"
altName = "Альтернативные названия:\n" + altSelector.map { it.text() }.joinToString(" / ") + "\n\n" else ""
val mediaNameLanguage = when {
isEng.equals("eng") && dataManga!!.jsonObject["rusName"]?.jsonPrimitive?.content.orEmpty().isNotEmpty() -> dataManga.jsonObject["rusName"]!!.jsonPrimitive.content + "\n"
isEng.equals("rus") && dataManga!!.jsonObject["engName"]?.jsonPrimitive?.content.orEmpty().isNotEmpty() -> dataManga.jsonObject["engName"]!!.jsonPrimitive.content + "\n"
else -> ""
} }
val mediaNameLanguage = if (isEng.equals("rus")) document.select(".media-name__alt").text() else document.select(".media-name__main").text() manga.description = mediaNameLanguage + ratingStar + " " + ratingValue + " (голосов: " + ratingVotes + ")\n" + altName + document.select(".media-description__text").text()
manga.description = mediaNameLanguage + "\n" + ratingStar + " " + ratingValue + " (голосов: " + ratingVotes + ")\n" + altName + document.select(".media-description__text").text()
return manga return manga
} }