diff --git a/src/zh/manwa/build.gradle b/src/zh/manwa/build.gradle index b7931e782..1f034dc2b 100644 --- a/src/zh/manwa/build.gradle +++ b/src/zh/manwa/build.gradle @@ -1,7 +1,7 @@ ext { extName = 'Manwa' extClass = '.Manwa' - extVersionCode = 7 + extVersionCode = 8 isNsfw = true } diff --git a/src/zh/manwa/src/eu/kanade/tachiyomi/extension/zh/manwa/Manwa.kt b/src/zh/manwa/src/eu/kanade/tachiyomi/extension/zh/manwa/Manwa.kt index 54b6177cb..258e76b9a 100644 --- a/src/zh/manwa/src/eu/kanade/tachiyomi/extension/zh/manwa/Manwa.kt +++ b/src/zh/manwa/src/eu/kanade/tachiyomi/extension/zh/manwa/Manwa.kt @@ -3,7 +3,6 @@ package eu.kanade.tachiyomi.extension.zh.manwa import android.app.Application import android.content.SharedPreferences import android.net.Uri -import android.util.Base64 import androidx.preference.CheckBoxPreference import androidx.preference.ListPreference import androidx.preference.PreferenceScreen @@ -160,19 +159,20 @@ class Manwa : ParsedHttpSource(), ConfigurableSource { return GET("$baseUrl${chapter.url}?img_host=${preferences.getString(IMAGE_HOST_KEY, IMAGE_HOST_ENTRY_VALUES[0])}", headers) } - override fun pageListParse(document: Document): List { - val script = document.selectFirst("script:containsData(encryptedPhotos)")!!.data() - // key changes every hour - val key = script.substringBefore("','enc'").substringAfterLast("'").toByteArray() - val encrypted = script.substringAfter("encryptedPhotos = '").substringBefore("'") - val decoded = Base64.decode(encrypted, Base64.DEFAULT) - val aesKey = SecretKeySpec(key, "AES") - val cipher = Cipher.getInstance("AES/CBC/PKCS5Padding") - cipher.init(Cipher.DECRYPT_MODE, aesKey, IvParameterSpec(key)) - val decrypted = String(cipher.doFinal(decoded)) - val jsonArray = json.parseToJsonElement(decrypted).jsonArray - return jsonArray.mapIndexed { index, it -> - Page(index, imageUrl = "${it.jsonObject["img_url"]!!.jsonPrimitive.content}?v=20220724") + override fun pageListParse(document: Document): List = mutableListOf().apply { + val cssQuery = "#cp_img > div.img-content > img[data-r-src]" + val elements = document.select(cssQuery) + if (elements.size == 3) { + val darkReader = document.selectFirst("#cp_img p") + if (darkReader != null) { + if (preferences.getBoolean(AUTO_CLEAR_COOKIE_KEY, false)) { + clearCookies() + } + throw Exception(darkReader.text()) + } + } + elements.forEachIndexed { index, it -> + add(Page(index, "", it.attr("data-r-src"))) } }