[RU]LibGoup fix IOException 18+ & status 1.3 more smart (#12166)
This commit is contained in:
parent
3f01076936
commit
c5cd8463b9
|
@ -1,22 +1,14 @@
|
|||
package eu.kanade.tachiyomi.extension.ru.hentailib
|
||||
|
||||
import android.app.Application
|
||||
import android.content.SharedPreferences
|
||||
import android.widget.Toast
|
||||
import androidx.preference.ListPreference
|
||||
import androidx.preference.PreferenceScreen
|
||||
import eu.kanade.tachiyomi.multisrc.libgroup.LibGroup
|
||||
import eu.kanade.tachiyomi.network.GET
|
||||
import eu.kanade.tachiyomi.network.POST
|
||||
import eu.kanade.tachiyomi.multisrc.libgroup.LibGroup
|
||||
import eu.kanade.tachiyomi.source.model.Filter
|
||||
import eu.kanade.tachiyomi.source.model.FilterList
|
||||
import java.io.IOException
|
||||
import okhttp3.Headers
|
||||
import okhttp3.OkHttpClient
|
||||
import okhttp3.Request
|
||||
import okhttp3.Response
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import java.io.IOException
|
||||
|
||||
class HentaiLib : LibGroup("HentaiLib", "https://hentailib.me", "ru") {
|
||||
|
||||
|
|
|
@ -5,16 +5,17 @@ import android.content.SharedPreferences
|
|||
import android.widget.Toast
|
||||
import androidx.preference.ListPreference
|
||||
import androidx.preference.PreferenceScreen
|
||||
import eu.kanade.tachiyomi.network.POST
|
||||
import eu.kanade.tachiyomi.multisrc.libgroup.LibGroup
|
||||
import eu.kanade.tachiyomi.network.GET
|
||||
import eu.kanade.tachiyomi.network.POST
|
||||
import eu.kanade.tachiyomi.source.model.Filter
|
||||
import eu.kanade.tachiyomi.source.model.FilterList
|
||||
import okhttp3.Headers
|
||||
import okhttp3.OkHttpClient
|
||||
import okhttp3.Request
|
||||
import okhttp3.Response
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import java.io.IOException
|
||||
|
||||
class MangaLib : LibGroup("MangaLib", "https://mangalib.me", "ru") {
|
||||
|
||||
|
@ -26,6 +27,16 @@ class MangaLib : LibGroup("MangaLib", "https://mangalib.me", "ru") {
|
|||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(::imageContentTypeIntercept)
|
||||
.addInterceptor { chain ->
|
||||
val originalRequest = chain.request()
|
||||
val response = chain.proceed(originalRequest)
|
||||
if (originalRequest.url.toString().contains(baseUrl))
|
||||
if (!network.cloudflareClient.newCall(GET(baseUrl, headers))
|
||||
.execute().body!!.string().contains("m-menu__user-info") && response.code == 404
|
||||
)
|
||||
throw IOException("Для просмотра 18+ контента необходима авторизация через WebView")
|
||||
return@addInterceptor response
|
||||
}
|
||||
.build()
|
||||
|
||||
private var csrfToken: String = ""
|
||||
|
|
|
@ -9,7 +9,7 @@ class LibGenerator: ThemeSourceGenerator {
|
|||
|
||||
override val themeClass = "LibGroup"
|
||||
|
||||
override val baseVersionCode: Int = 2
|
||||
override val baseVersionCode: Int = 3
|
||||
|
||||
override val sources = listOf(
|
||||
SingleLang("MangaLib", "https://mangalib.me", "ru", overrideVersionCode = 74),
|
||||
|
|
|
@ -46,6 +46,7 @@ import java.text.SimpleDateFormat
|
|||
import java.util.Locale
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
|
||||
abstract class LibGroup(
|
||||
override val name: String,
|
||||
override val baseUrl: String,
|
||||
|
@ -238,20 +239,27 @@ abstract class LibGroup(
|
|||
manga.thumbnail_url = document.select(".media-header__cover").attr("src")
|
||||
manga.author = body.select("div.media-info-list__title:contains(Автор) + div a").joinToString { it.text() }
|
||||
manga.artist = body.select("div.media-info-list__title:contains(Художник) + div a").joinToString { it.text() }
|
||||
|
||||
val StatusTranslate = body.select("div.media-info-list__title:contains(Статус перевода) + div").text().lowercase(Locale.ROOT)
|
||||
val StatusTitle = body.select("div.media-info-list__title:contains(Статус тайтла) + div").text().lowercase(Locale.ROOT)
|
||||
|
||||
manga.status = if (document.html().contains("paper empty section")
|
||||
) {
|
||||
SManga.LICENSED
|
||||
} else
|
||||
when (
|
||||
body.select("div.media-info-list__title:contains(Статус тайтла) + div")
|
||||
.text()
|
||||
.lowercase(Locale.ROOT)
|
||||
) {
|
||||
"онгоинг" -> SManga.ONGOING
|
||||
"завершён" -> SManga.COMPLETED
|
||||
"приостановлен" -> SManga.ON_HIATUS
|
||||
"выпуск прекращён" -> SManga.CANCELLED
|
||||
else -> SManga.UNKNOWN
|
||||
when {
|
||||
StatusTranslate.contains("завершен" ) && StatusTitle.contains("приостановлен" ) || StatusTranslate.contains("заморожен" ) -> SManga.ON_HIATUS
|
||||
StatusTranslate.contains("завершен" ) && StatusTitle.contains("выпуск прекращён" ) -> SManga.CANCELLED
|
||||
StatusTranslate.contains("продолжается" ) -> SManga.ONGOING
|
||||
StatusTranslate.contains("завершен" ) -> SManga.COMPLETED
|
||||
else -> when (StatusTitle){
|
||||
"онгоинг" -> SManga.ONGOING
|
||||
"анонс" -> SManga.ONGOING
|
||||
"завершён" -> SManga.COMPLETED
|
||||
"приостановлен" -> SManga.ON_HIATUS
|
||||
"выпуск прекращён" -> SManga.CANCELLED
|
||||
else -> SManga.UNKNOWN
|
||||
}
|
||||
}
|
||||
manga.genre = category + ", " + rawAgeStop + ", " + genres.joinToString { it.trim() }
|
||||
|
||||
|
@ -384,13 +392,6 @@ abstract class LibGroup(
|
|||
override fun pageListParse(response: Response): List<Page> {
|
||||
val document = response.asJsoup()
|
||||
|
||||
val redirect = document.html()
|
||||
if (!redirect.contains("window.__info")) {
|
||||
if (redirect.contains("hold-transition login-page")) {
|
||||
throw Exception("Для просмотра 18+ контента необходима авторизация через WebView")
|
||||
}
|
||||
}
|
||||
|
||||
val chapInfo = document
|
||||
.select("script:containsData(window.__info)")
|
||||
.first()
|
||||
|
|
Loading…
Reference in New Issue