[RU]GroupLe fix chapter loads and manga status (#6828)

* [RU]GroupLe fix chapter loads and manga status

* [RU]GroupLe small fix of manga status

* [RU]GroupLe review fix

* [RU]GroupLe fix for allhentai

* [RU]GroupLe checks for allhentai and mintmanga
This commit is contained in:
Dr1ks 2024-12-30 09:06:33 -08:00 committed by Draff
parent 64b447a4ac
commit 18b1977691
No known key found for this signature in database
GPG Key ID: E8A89F3211677653
4 changed files with 27 additions and 32 deletions

View File

@ -2,4 +2,4 @@ plugins {
id("lib-multisrc") id("lib-multisrc")
} }
baseVersionCode = 26 baseVersionCode = 27

View File

@ -177,17 +177,16 @@ abstract class GroupLe(
"div#tab-description .manga-description", "div#tab-description .manga-description",
).text() ).text()
manga.status = when { manga.status = when {
infoElement.html() document.html()
.contains("Запрещена публикация произведения по копирайту") || infoElement.html() .contains("Запрещена публикация произведения по копирайту") || document.html()
.contains("ЗАПРЕЩЕНА К ПУБЛИКАЦИИ НА ТЕРРИТОРИИ РФ!") -> SManga.LICENSED .contains("ЗАПРЕЩЕНА К ПУБЛИКАЦИИ НА ТЕРРИТОРИИ РФ!") -> SManga.LICENSED
infoElement.html().contains("<b>Сингл</b>") -> SManga.COMPLETED infoElement.html().contains("<b>Сингл") -> SManga.COMPLETED
else -> else ->
when (infoElement.select("p:contains(Перевод:) span").first()?.text()) { when (infoElement.selectFirst("span.badge:contains(выпуск)")?.text()) {
"продолжается" -> SManga.ONGOING "выпуск продолжается" -> SManga.ONGOING
"начат" -> SManga.ONGOING "выпуск начат" -> SManga.ONGOING
"переведено" -> SManga.COMPLETED "выпуск завершён" -> if (infoElement.selectFirst("span.badge:contains(переведено)")?.text()?.isNotEmpty() == true) SManga.COMPLETED else SManga.PUBLISHING_FINISHED
"завершён" -> SManga.COMPLETED "выпуск приостановлен" -> SManga.ON_HIATUS
"приостановлен" -> SManga.ON_HIATUS
else -> SManga.UNKNOWN else -> SManga.UNKNOWN
} }
} }
@ -213,15 +212,9 @@ abstract class GroupLe(
private fun chapterListParse(response: Response, manga: SManga): List<SChapter> { private fun chapterListParse(response: Response, manga: SManga): List<SChapter> {
val document = response.asJsoup() val document = response.asJsoup()
if ((
document.select(".expandable.hide-dn").isNotEmpty() && document.select(".user-avatar") if (document.select(".user-avatar").isEmpty() &&
.isEmpty() && document.toString() document.title().run { contains("AllHentai") || contains("MintManga") || contains("МинтМанга") }
.contains("current_user_country_code = 'RU'")
) || (
document.select("img.logo")
.first()?.attr("title")
?.contains("Allhentai") == true && document.select(".user-avatar").isEmpty()
)
) { ) {
throw Exception("Для просмотра контента необходима авторизация через WebView\uD83C\uDF0E") throw Exception("Для просмотра контента необходима авторизация через WebView\uD83C\uDF0E")
} }
@ -313,20 +306,22 @@ abstract class GroupLe(
val html = document.html() val html = document.html()
val readerMark = "rm_h.readerDoInit([" if (document.select(".user-avatar").isEmpty() &&
document.title().run { contains("AllHentai") || contains("MintManga") || contains("МинтМанга") }
if (!html.contains(readerMark)) {
if (document.select(".input-lg").isNotEmpty() || (
document.select(".user-avatar")
.isEmpty() && document.select("img.logo").first()?.attr("title")
?.contains("Allhentai") == true
)
) { ) {
throw Exception("Для просмотра контента необходима авторизация через WebView\uD83C\uDF0E") throw Exception("Для просмотра контента необходима авторизация через WebView\uD83C\uDF0E")
} }
if (!response.request.url.toString().contains(baseUrl)) {
val readerMark = when {
html.contains("rm_h.readerDoInit([") -> "rm_h.readerDoInit(["
html.contains("rm_h.readerInit([") -> "rm_h.readerInit(["
!response.request.url.toString().contains(baseUrl) -> {
throw Exception("Не удалось загрузить главу. Url: ${response.request.url}") throw Exception("Не удалось загрузить главу. Url: ${response.request.url}")
} }
else -> {
throw Exception("Дизайн сайта обновлен, для дальнейшей работы необходимо обновление дополнения")
}
} }
val beginIndex = html.indexOf(readerMark) val beginIndex = html.indexOf(readerMark)

View File

@ -2,7 +2,7 @@ ext {
extName = 'AllHentai' extName = 'AllHentai'
extClass = '.AllHentai' extClass = '.AllHentai'
themePkg = 'grouple' themePkg = 'grouple'
baseUrl = 'https://z.ahen.me' baseUrl = 'https://20.allhen.online'
overrideVersionCode = 24 overrideVersionCode = 24
isNsfw = true isNsfw = true
} }

View File

@ -12,7 +12,7 @@ import org.jsoup.nodes.Document
import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get import uy.kohesive.injekt.api.get
class AllHentai : GroupLe("AllHentai", "https://z.ahen.me", "ru") { class AllHentai : GroupLe("AllHentai", "https://20.allhen.online", "ru") {
override val id = 1809051393403180443 override val id = 1809051393403180443
private val preferences = Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000) private val preferences = Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)