diff --git a/src/ru/henchan/build.gradle b/src/ru/henchan/build.gradle index f3e20ee37..f58f09d6e 100644 --- a/src/ru/henchan/build.gradle +++ b/src/ru/henchan/build.gradle @@ -6,7 +6,7 @@ ext { extName = 'Henchan' pkgNameSuffix = 'ru.henchan' extClass = '.Henchan' - extVersionCode = 27 + extVersionCode = 28 isNsfw = true } diff --git a/src/ru/henchan/src/eu/kanade/tachiyomi/extension/ru/henchan/Henchan.kt b/src/ru/henchan/src/eu/kanade/tachiyomi/extension/ru/henchan/Henchan.kt index 8d2e3d71b..1231aa29f 100644 --- a/src/ru/henchan/src/eu/kanade/tachiyomi/extension/ru/henchan/Henchan.kt +++ b/src/ru/henchan/src/eu/kanade/tachiyomi/extension/ru/henchan/Henchan.kt @@ -11,12 +11,6 @@ import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.online.ParsedHttpSource import eu.kanade.tachiyomi.util.asJsoup -import kotlinx.serialization.decodeFromString -import kotlinx.serialization.json.Json -import kotlinx.serialization.json.JsonArray -import kotlinx.serialization.json.JsonObject -import kotlinx.serialization.json.jsonArray -import kotlinx.serialization.json.jsonPrimitive import okhttp3.Headers import okhttp3.OkHttpClient import okhttp3.Request @@ -24,7 +18,6 @@ import okhttp3.Response import org.jsoup.nodes.Document import org.jsoup.nodes.Element import rx.Observable -import uy.kohesive.injekt.injectLazy import java.net.URL import java.text.SimpleDateFormat import java.util.Date @@ -36,8 +29,6 @@ class Henchan : ParsedHttpSource() { override val baseUrl = "https://hentaichan.live" - private val exhentaiBaseUrl = "http://exhentai-dono.me" - override val lang = "ru" override val supportsLatest = true @@ -246,29 +237,31 @@ class Henchan : ParsedHttpSource() { override fun pageListRequest(chapter: SChapter): Request { val url = if (chapter.url.contains("/manga/")) { - exhentaiBaseUrl + chapter.url.replace("/manga/", "/online/") + "?development_access=true" + baseUrl + chapter.url.replace("/manga/", "/online/") } else { baseUrl + chapter.url } return GET(url, Headers.Builder().add("Accept", "image/webp,image/apng").build()) } + override fun pageListParse(response: Response): List { + val html = response.body!!.string() + val prefix = "fullimg\": [" + val beginIndex = html.indexOf(prefix) + prefix.length + val endIndex = html.indexOf("]", beginIndex) + val trimmedHtml = html.substring(beginIndex, endIndex) + .replace("\"", "") + .replace("\'", "") - override fun imageUrlParse(document: Document) = throw Exception("Not Used") - - private val json: Json by injectLazy() - - private fun Document.parseJsonArray(): JsonArray { - val imgScript = this.select("script:containsData(fullimg)").first().toString() - val imgString = imgScript.substring(imgScript.indexOf('{'), imgScript.lastIndexOf('}') + 1).replace(""", "\"") - return json.decodeFromString(imgString)["fullimg"]!!.jsonArray + val pageUrls = trimmedHtml.split(", ") + return pageUrls.mapIndexed { i, url -> Page(i, "", url) } } override fun pageListParse(document: Document): List { - return document.parseJsonArray().mapIndexed { index, imageUrl -> - Page(index, imageUrl = imageUrl.jsonPrimitive.content.replace(".gif.webp", ".gif")) - } + throw Exception("Not used") } + override fun imageUrlParse(document: Document) = "" + private class Genre(val id: String, @SuppressLint("DefaultLocale") name: String = id.replace('_', ' ').capitalize()) : Filter.TriState(name) private class GenreList(genres: List) : Filter.Group("Тэги", genres) private class OrderBy : UriPartFilter(