From 95e6d6504bf49c7aebde0b4f358e57a9a0559e5b Mon Sep 17 00:00:00 2001 From: beerpsi <92439990+beerpiss@users.noreply.github.com> Date: Thu, 12 Jan 2023 22:14:24 +0700 Subject: [PATCH] unyeet (#14906) * unyeet * make regex lazy * what was that * remove from autocloser and removed_sources.md * add filters * suggestions * chore: bump version code * more selectFirsts --- .github/workflows/issue_moderator.yml | 2 +- REMOVED_SOURCES.md | 1 - src/en/mangago/AndroidManifest.xml | 2 + src/en/mangago/build.gradle | 16 + .../mangago/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3575 bytes .../mangago/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1877 bytes .../mangago/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 5170 bytes .../mangago/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 10022 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 15220 bytes src/en/mangago/res/web_hi_res_512.png | Bin 0 -> 100427 bytes .../tachiyomi/extension/en/mangago/Mangago.kt | 459 ++++++++++++++++++ .../en/mangago/SoJsonV4Deobfuscator.kt | 23 + 12 files changed, 501 insertions(+), 2 deletions(-) create mode 100644 src/en/mangago/AndroidManifest.xml create mode 100644 src/en/mangago/build.gradle create mode 100644 src/en/mangago/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/en/mangago/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/en/mangago/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/en/mangago/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/en/mangago/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/en/mangago/res/web_hi_res_512.png create mode 100644 src/en/mangago/src/eu/kanade/tachiyomi/extension/en/mangago/Mangago.kt create mode 100644 src/en/mangago/src/eu/kanade/tachiyomi/extension/en/mangago/SoJsonV4Deobfuscator.kt diff --git a/.github/workflows/issue_moderator.yml b/.github/workflows/issue_moderator.yml index 1caa5f61b..5b7ec3fbd 100644 --- a/.github/workflows/issue_moderator.yml +++ b/.github/workflows/issue_moderator.yml @@ -37,7 +37,7 @@ jobs: }, { "type": "both", - "regex": ".*(mangago|mangafox|hq\\s*dragon|manga\\s*host|supermangas|superhentais|union\\s*mangas|yes\\s*mangas|manhuascan|manhwahot|leitor\\.?net|manga\\s*livre|tsuki\\s*mangas|manga\\s*yabu|mangas\\.in|mangas\\.pw|hentaikai|toptoon\\+?|cocomanga|hitomi\\.la|copymanga|neox|1manga\\.co|mangafox\\.fun|mangahere\\.onl|mangakakalot\\.fun|manganel(?!o)|mangaonline\\.fun|mangatoday|manga\\.town|onemanga\\.info|koushoku).*", + "regex": ".*(mangafox|hq\\s*dragon|manga\\s*host|supermangas|superhentais|union\\s*mangas|yes\\s*mangas|manhuascan|manhwahot|leitor\\.?net|manga\\s*livre|tsuki\\s*mangas|manga\\s*yabu|mangas\\.in|mangas\\.pw|hentaikai|toptoon\\+?|cocomanga|hitomi\\.la|copymanga|neox|1manga\\.co|mangafox\\.fun|mangahere\\.onl|mangakakalot\\.fun|manganel(?!o)|mangaonline\\.fun|mangatoday|manga\\.town|onemanga\\.info|koushoku).*", "ignoreCase": true, "message": "{match} will not be added back as it is too difficult to maintain. Read #3475 for more information." }, diff --git a/REMOVED_SOURCES.md b/REMOVED_SOURCES.md index 2b7c3c031..d75addb24 100644 --- a/REMOVED_SOURCES.md +++ b/REMOVED_SOURCES.md @@ -10,7 +10,6 @@ - Koushoku https://github.com/tachiyomiorg/tachiyomi-extensions/pull/13329 - Mangá Host https://github.com/tachiyomiorg/tachiyomi-extensions/pull/7065 - Mangá Livre and Leitor.net https://github.com/tachiyomiorg/tachiyomi-extensions/pull/8679 -- mangago.me https://github.com/tachiyomiorg/tachiyomi-extensions/issues/988 - MangaYabu! https://github.com/tachiyomiorg/tachiyomi-extensions/pull/9336 - ManhuaScan https://github.com/tachiyomiorg/tachiyomi-extensions/pull/7129 - ManhwaHot https://github.com/tachiyomiorg/tachiyomi-extensions/pull/7129 diff --git a/src/en/mangago/AndroidManifest.xml b/src/en/mangago/AndroidManifest.xml new file mode 100644 index 000000000..30deb7f79 --- /dev/null +++ b/src/en/mangago/AndroidManifest.xml @@ -0,0 +1,2 @@ + + diff --git a/src/en/mangago/build.gradle b/src/en/mangago/build.gradle new file mode 100644 index 000000000..e82b2dbf8 --- /dev/null +++ b/src/en/mangago/build.gradle @@ -0,0 +1,16 @@ +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' + +ext { + extName = 'Mangago' + pkgNameSuffix = 'en.mangago' + extClass = '.Mangago' + extVersionCode = 8 + isNsfw = true +} + +apply from: "$rootDir/common.gradle" + +dependencies { + implementation(project(':lib-cryptoaes')) +} \ No newline at end of file diff --git a/src/en/mangago/res/mipmap-hdpi/ic_launcher.png b/src/en/mangago/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..b740bf68618a5f8e4834ffc0babe2f054e03431c GIT binary patch literal 3575 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 literal 0 HcmV?d00001 diff --git a/src/en/mangago/res/mipmap-mdpi/ic_launcher.png b/src/en/mangago/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..6b567e830570aab24a7a1af628ca11306c7c1e6e GIT binary patch literal 1877 zcmV-b2demqP)Px+4@pEpRA@u(nhj7?*A>TqZ+BsV1qF=JG=^Y|z?eiC9H9x;YJ}D*rm56XNkl85 z(UKsxF;k`D2a-e)@QcJaLzzj4+89j+(U7SE0irFMHVP_WKrCt_0+oRU_Uqlw1GFM5 zACV0>_0GK6eQ)o(=l{Rw+;h)8XC?0QCf(=wc|c&GHQ1d7l;2b^;93%Z3@D#nnl%Da zYHF%3A|fJLtJTg2Tn2cS8x01-zO=No-$zA7HQkBD8Uc-7uixe52ym0^X)&}NkF;RSuB=+t5hoI!9+lorL>%RYu2FBX!z1E@a zyCiju)Z3olWYBT*`OeK;E4#p=?YphM(UW&@ z_!GuF>(BbVALHoi+C?KZRaNYcU5zlCSs1q#&v8$IBuHN#fyXnGnEuMLZnfBN8aR-! z0l!(Z8138c0{3rC=5%f@3s=YTUd#%f4_m+suSa(RV=;zlhL^; zfnj@l|IIf!lb4IpY)0oglr5iUqt-ff$_AYM+X>#DzktvcG3-l9X3p|x=KbM~TVp6@ zxOS=^s}2{UvtoYz;zsMQRC6qC2Xo^#AzLhe+3FkyCh7LCi(R1_WO(Do!^ zG7i{A13MPZ<%N|id3-_u!dQc7twa(6)UL>mV^FJm4$PELLNpa4nW_+S3zB*$xcmf3 zqvQOSM=AU?lgO>xZ9o7xmzTpgf6XK;VQX7{Nk&2?K$c_>8dO$x->ygmLeZEcx4kQr zcN9~SB=Y{ejT?HI7hhjt8v;U>Ntqu?&~GCdAJo2(zh4vW;YJ4m#a{{8LPE%NB6nvn z;x3!ny{&-`q)iPCq%L`xi9Zi!+LC2GMxVVQs7%b^qzzoYdYz>yskYt7l+jH_BcCL` zMQKhZ)5Bk3!pyl08U7GbpAy*uqrpJMiCnUGq+oP$XZd^SI5;}mp1@5BS1K#X`7n)h z#||;n)g3SYNsJingUiT~xD6kUqs|#w219EL`i6QM>*{E(ucN-Yf{K!2s=uvdjQ>=o zERMkU$ItbstbQ>eYf==?QhW6Z#f61j__~P7(#dM`$gu(>e2_G2V=L!iz_} zeDLu0X6!TLQTHLaWitYIl2Qm+Yu3&PJx=>=9eywZeF4>%zW+Z23(Xf#fJ5!By(&1Q3RRaMoIu&}V$($dmPfZ=u-R;!eN0@|&kLfL(yr@s+*9naJ; z>q=><`Ob3d-Ri{3bLCj2T*|3qAe(aXQ7V(l)x|$Q_^ZJ{sz#B0-)rE%=#w#C`g0p3 P00000NkvXXu0mjfd-|Bu literal 0 HcmV?d00001 diff --git a/src/en/mangago/res/mipmap-xhdpi/ic_launcher.png b/src/en/mangago/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..5ba854ef364434218b7debce3add573b87a784f7 GIT binary patch literal 5170 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 literal 0 HcmV?d00001 diff --git a/src/en/mangago/res/mipmap-xxhdpi/ic_launcher.png b/src/en/mangago/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..24f5e0995acfde0d3a0b6473dcc495feb391926b GIT binary patch literal 10022 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 sk!zs-#Srbv_Ordl1~3qnE@M9Vi&F8}}l literal 0 HcmV?d00001 diff --git a/src/en/mangago/res/web_hi_res_512.png b/src/en/mangago/res/web_hi_res_512.png new file mode 100644 index 0000000000000000000000000000000000000000..cefea8c34fca264e6e99b51f4dc0bfd256c7a5ad GIT binary patch literal 100427 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 literal 0 HcmV?d00001 diff --git a/src/en/mangago/src/eu/kanade/tachiyomi/extension/en/mangago/Mangago.kt b/src/en/mangago/src/eu/kanade/tachiyomi/extension/en/mangago/Mangago.kt new file mode 100644 index 000000000..eb3c19b2d --- /dev/null +++ b/src/en/mangago/src/eu/kanade/tachiyomi/extension/en/mangago/Mangago.kt @@ -0,0 +1,459 @@ +package eu.kanade.tachiyomi.extension.en.mangago + +import android.graphics.Bitmap +import android.graphics.BitmapFactory +import android.graphics.Canvas +import android.graphics.Rect +import android.util.Base64 +import app.cash.quickjs.QuickJs +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.source.model.Filter +import eu.kanade.tachiyomi.source.model.FilterList +import eu.kanade.tachiyomi.source.model.Page +import eu.kanade.tachiyomi.source.model.SChapter +import eu.kanade.tachiyomi.source.model.SManga +import eu.kanade.tachiyomi.source.online.ParsedHttpSource +import okhttp3.Headers +import okhttp3.HttpUrl +import okhttp3.HttpUrl.Companion.toHttpUrl +import okhttp3.MediaType.Companion.toMediaTypeOrNull +import okhttp3.Request +import okhttp3.ResponseBody.Companion.toResponseBody +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element +import java.io.ByteArrayOutputStream +import java.io.InputStream +import java.net.URLEncoder +import java.text.SimpleDateFormat +import java.util.Locale +import javax.crypto.Cipher +import javax.crypto.spec.IvParameterSpec +import javax.crypto.spec.SecretKeySpec + +class Mangago : ParsedHttpSource() { + + override val name = "Mangago" + + override val baseUrl = "https://www.mangago.me" + + override val lang = "en" + + override val supportsLatest = true + + override val client = network.cloudflareClient.newBuilder().addInterceptor { chain -> + val response = chain.proceed(chain.request()) + + val key = response.request.url.queryParameter("desckey") ?: return@addInterceptor response + val cols = response.request.url.queryParameter("cols")?.toIntOrNull() ?: return@addInterceptor response + + val image = unscrambleImage(response.body!!.byteStream(), key, cols) + val body = image.toResponseBody("image/jpeg".toMediaTypeOrNull()) + return@addInterceptor response.newBuilder() + .body(body) + .build() + }.build() + + override fun headersBuilder(): Headers.Builder = super.headersBuilder() + .add("Referer", "$baseUrl/") + .add("Cookie", cookiesHeader) + + private val cookiesHeader by lazy { + val cookies = mutableMapOf() + + // Needed for correct page ordering + cookies["_m_superu"] = "1" + + buildCookies(cookies) + } + + private val genreListingSelector = ".updatesli" + + private val genreListingNextPageSelector = ".current+li > a" + + private val dateFormat = SimpleDateFormat("MMM d, yyyy", Locale.ENGLISH) + + private fun mangaFromElement(element: Element) = SManga.create().apply { + val linkElement = element.selectFirst(".thm-effect") + + setUrlWithoutDomain(linkElement.attr("href")) + title = linkElement.attr("title") + + val thumbnailElem = linkElement.selectFirst("img") + thumbnail_url = thumbnailElem.attr("abs:src").ifBlank { thumbnailElem.attr("abs:data-src") } + } + + override fun popularMangaRequest(page: Int): Request = + GET("$baseUrl/genre/all/$page/?f=1&o=1&sortby=view&e=", headers) + + override fun popularMangaSelector(): String = genreListingSelector + + override fun popularMangaFromElement(element: Element) = mangaFromElement(element) + + override fun popularMangaNextPageSelector() = genreListingNextPageSelector + + override fun latestUpdatesRequest(page: Int) = GET("$baseUrl/genre/all/$page/?f=1&o=1&sortby=update_date&e=", headers) + + override fun latestUpdatesSelector() = genreListingSelector + + override fun latestUpdatesFromElement(element: Element) = mangaFromElement(element) + + override fun latestUpdatesNextPageSelector() = genreListingNextPageSelector + + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + val url = if (query.isNotBlank()) { + "$baseUrl/r/l_search".toHttpUrl().newBuilder() + .addQueryParameter("name", query) + .addQueryParameter("page", page.toString()) + .build().toString() + } else { + "$baseUrl/genre/".toHttpUrl().newBuilder().apply { + val genres = mutableListOf() + val genresEx = mutableListOf() + + filters.ifEmpty { getFilterList() }.forEach { + when (it) { + is UriFilter -> it.addToUrl(this) + is GenreFilterGroup -> it.state.forEach { genre -> + when (genre.state) { + Filter.TriState.STATE_EXCLUDE -> genresEx.add(genre.name) + Filter.TriState.STATE_INCLUDE -> genres.add(genre.name) + else -> {} + } + } + else -> {} + } + } + + if (genres.isEmpty()) { + addPathSegment("all") + } else { + addPathSegment(genres.joinToString(",")) + } + addPathSegment(page.toString()) + + addQueryParameter("e", genresEx.joinToString(",")) + }.build().toString() + } + return GET(url, headers) + } + + override fun searchMangaSelector() = "$genreListingSelector, .pic_list .box" + + override fun searchMangaFromElement(element: Element) = mangaFromElement(element) + + override fun searchMangaNextPageSelector() = genreListingNextPageSelector + + override fun mangaDetailsParse(document: Document) = SManga.create().apply { + val coverElement = document.select(".left.cover > img") + + title = coverElement.attr("alt") + thumbnail_url = coverElement.attr("src") + document.select(".manga_right td").forEach { + when (it.getElementsByTag("label").text().trim().lowercase()) { + "status:" -> { + status = when (it.selectFirst("span").text().trim().lowercase()) { + "ongoing" -> SManga.ONGOING + "completed" -> SManga.COMPLETED + else -> SManga.UNKNOWN + } + } + "author:" -> { + author = it.selectFirst("a").text() + } + "genre(s):" -> { + genre = it.getElementsByTag("a").joinToString { it.text() } + } + } + } + description = document.selectFirst(".manga_summary").ownText().trim() + } + + override fun chapterListSelector() = "#chapter_table > tbody > tr" + + override fun chapterFromElement(element: Element) = SChapter.create().apply { + val link = element.getElementsByTag("a") + + setUrlWithoutDomain(link.attr("href")) + name = link.text().trim() + date_upload = kotlin.runCatching { + dateFormat.parse(element.getElementsByClass("no").text().trim())?.time + }.getOrNull() ?: 0L + } + + override fun pageListParse(document: Document): List { + val imgsrcsScript = document.selectFirst("script:containsData(imgsrcs)")?.html() + ?: throw Exception("Could not find imgsrcs") + val imgsrcRaw = imgSrcsRegex.find(imgsrcsScript)?.groupValues?.get(1) + ?: throw Exception("Could not extract imgsrcs") + val imgsrcs = Base64.decode(imgsrcRaw, Base64.DEFAULT) + + val chapterJsUrl = document.getElementsByTag("script").first { + it.attr("src").contains("chapter.js", ignoreCase = true) + }.attr("abs:src") + + val obfuscatedChapterJs = client.newCall(GET(chapterJsUrl, headers)).execute().body!!.string() + val deobfChapterJs = SoJsonV4Deobfuscator.decode(obfuscatedChapterJs) + + val key = findHexEncodedVariable(deobfChapterJs, "key").decodeHex() + val iv = findHexEncodedVariable(deobfChapterJs, "iv").decodeHex() + val cipher = Cipher.getInstance(hashCipher) + val keyS = SecretKeySpec(key, aes) + cipher.init(Cipher.DECRYPT_MODE, keyS, IvParameterSpec(iv)) + + var imageList = cipher.doFinal(imgsrcs).toString(Charsets.UTF_8) + + try { + val keyLocations = keyLocationRegex.findAll(deobfChapterJs).map { + it.groupValues[1].toInt() + }.distinct() + + val unscrambleKey = keyLocations.map { + imageList[it].toString().toInt() + }.toList() + + keyLocations.forEachIndexed { idx, it -> + imageList = imageList.removeRange(it - idx..it - idx) + } + + imageList = imageList.unscramble(unscrambleKey) + } catch (e: NumberFormatException) { + // Only call where it should throw is imageList[it].toString().toInt(). + // This usually means that the list is already unscrambled. + } + + val cols = deobfChapterJs + .substringAfter("var widthnum=heightnum=") + .substringBefore(";") + + return imageList + .split(",") + .mapIndexed { idx, it -> + val url = if (it.contains("cspiclink")) { + "$it?desckey=${getDescramblingKey(deobfChapterJs, it)}&cols=$cols" + } else { + it + } + + Page(idx, imageUrl = url) + } + } + + override fun imageUrlParse(document: Document): String = throw UnsupportedOperationException("Not used") + + override fun getFilterList(): FilterList = FilterList( + Filter.Header("Ignored if using text search"), + StatusFilterGroup(), + SortFilter(), + GenreFilterGroup(), + ) + + private interface UriFilter { + fun addToUrl(builder: HttpUrl.Builder) + } + + private class StatusFilter(name: String, val query: String) : UriFilter, Filter.CheckBox(name) { + override fun addToUrl(builder: HttpUrl.Builder) { + builder.addQueryParameter(query, if (state) "1" else "0") + } + } + + private class StatusFilterGroup : UriFilter, Filter.Group( + "Status", + listOf( + StatusFilter("Completed", "f"), + StatusFilter("Ongoing", "o") + ) + ) { + override fun addToUrl(builder: HttpUrl.Builder) { + state.forEach { + it.addToUrl(builder) + } + } + } + + open class UriPartFilter( + name: String, + private val query: String, + private val vals: Array>, + private val firstIsUnspecified: Boolean = true, + state: Int = 0 + ) : UriFilter, Filter.Select(name, vals.map { it.first }.toTypedArray(), state) { + override fun addToUrl(builder: HttpUrl.Builder) { + if (state != 0 || !firstIsUnspecified) { + builder.addQueryParameter(query, vals[state].second) + } + } + } + + private class SortFilter : UriPartFilter( + "Sort", + "sortby", + arrayOf( + Pair("Random", "random"), + Pair("Views", "view"), + Pair("Comment Count", "comment_count"), + Pair("Creation Date", "create_date"), + Pair("Update Date", "update_date") + ), + state = 1, + ) + + private class GenreFilter(name: String) : Filter.TriState(name) + + private class GenreFilterGroup : Filter.Group( + "Genres", + listOf( + GenreFilter("Yaoi"), + GenreFilter("Doujinshi"), + GenreFilter("Shounen Ai"), + GenreFilter("Shoujo"), + GenreFilter("Yuri"), + GenreFilter("Romance"), + GenreFilter("Fantasy"), + GenreFilter("Comedy"), + GenreFilter("Smut"), + GenreFilter("Adult"), + GenreFilter("School Life"), + GenreFilter("Mystery"), + GenreFilter("One Shot"), + GenreFilter("Ecchi"), + GenreFilter("Shounen"), + GenreFilter("Martial Arts"), + GenreFilter("Shoujo Ai"), + GenreFilter("Supernatural"), + GenreFilter("Drama"), + GenreFilter("Action"), + GenreFilter("Adventure"), + GenreFilter("Harem"), + GenreFilter("Historical"), + GenreFilter("Horror"), + GenreFilter("Josei"), + GenreFilter("Mature"), + GenreFilter("Mecha"), + GenreFilter("Psychological"), + GenreFilter("Sci-fi"), + GenreFilter("Seinen"), + GenreFilter("Slice Of Life"), + GenreFilter("Sports"), + GenreFilter("Gender Bender"), + GenreFilter("Tragedy"), + GenreFilter("Bara"), + GenreFilter("Shotacon"), + GenreFilter("Webtoons") + ) + ) + + private fun findHexEncodedVariable(input: String, variable: String): String { + val regex = Regex("""var $variable\s*=\s*CryptoJS\.enc\.Hex\.parse\("([0-9a-zA-Z]+)"\)""") + return regex.find(input)?.groupValues?.get(1) ?: "" + } + + private fun String.unscramble(keys: List): String { + var s = this + keys.reversed().forEach { + for (i in s.length - 1 downTo it) { + if (i % 2 != 0) { + val temp = s[i - it] + s = s.replaceRange(i - it..i - it, s[i].toString()) + s = s.replaceRange(i..i, temp.toString()) + } + } + } + return s + } + + private fun unscrambleImage(image: InputStream, key: String, cols: Int): ByteArray { + val bitmap = BitmapFactory.decodeStream(image) + + val result = Bitmap.createBitmap(bitmap.width, bitmap.height, Bitmap.Config.ARGB_8888) + val canvas = Canvas(result) + + val unitWidth = bitmap.width / cols + val unitHeight = bitmap.height / cols + + val keyArray = key.split("a") + + for (idx in 0 until cols * cols) { + val keyval = keyArray[idx].ifEmpty { "0" }.toInt() + + val heightY = keyval.floorDiv(cols) + val dy = heightY * unitHeight + val dx = (keyval - heightY * cols) * unitWidth + + val widthY = idx.floorDiv(cols) + val sy = widthY * unitHeight + val sx = (idx - widthY * cols) * unitWidth + + val srcRect = Rect(sx, sy, sx + unitWidth, sy + unitHeight) + val dstRect = Rect(dx, dy, dx + unitWidth, dy + unitHeight) + + canvas.drawBitmap(bitmap, srcRect, dstRect, null) + } + + val output = ByteArrayOutputStream() + result.compress(Bitmap.CompressFormat.JPEG, 100, output) + + return output.toByteArray() + } + + private fun buildCookies(cookies: Map) = cookies.entries.joinToString(separator = "; ", postfix = ";") { + "${URLEncoder.encode(it.key, "UTF-8")}=${URLEncoder.encode(it.value, "UTF-8")}" + } + + private fun String.decodeHex(): ByteArray { + check(length % 2 == 0) { "Must have an even length" } + + return chunked(2) + .map { it.toInt(16).toByte() } + .toByteArray() + } + + private fun getDescramblingKey(deobfChapterJs: String, imageUrl: String): String { + val imgkeys = deobfChapterJs + .substringAfter("var renImg = function(img,width,height,id){") + .substringBefore("key = key.split(") + .split("\n") + .filter { jsFilters.all { filter -> !it.contains(filter) } } + .joinToString("\n") + .replace("img.src", "url") + + val js = """ + function getDescramblingKey(url) { $imgkeys; return key; } + getDescramblingKey("$imageUrl"); + """.trimIndent() + + return QuickJs.create().use { + it.execute(replacePosBytecode) + + it.evaluate(js).toString() + } + } + + private val jsFilters = listOf("jQuery", "document", "getContext", "toDataURL", "getImageData", "width", "height") + + private val hashCipher = "AES/CBC/ZEROBYTEPADDING" + + private val aes = "AES" + + private val keyLocationRegex by lazy { + Regex("""str\.charAt\(\s*(\d+)\s*\)""") + } + + private val imgSrcsRegex by lazy { + Regex("""var imgsrcs\s*=\s*['"]([a-zA-Z0-9+=/]+)['"]""") + } + + private val replacePosBytecode by lazy { + QuickJs.create().use { + it.compile( + """ + function replacePos(strObj, pos, replacetext) { + var str = strObj.substr(0, pos) + replacetext + strObj.substring(pos + 1, strObj.length); + return str; + } + """.trimIndent(), + "?" + ) + } + } +} diff --git a/src/en/mangago/src/eu/kanade/tachiyomi/extension/en/mangago/SoJsonV4Deobfuscator.kt b/src/en/mangago/src/eu/kanade/tachiyomi/extension/en/mangago/SoJsonV4Deobfuscator.kt new file mode 100644 index 000000000..b6aff8bd2 --- /dev/null +++ b/src/en/mangago/src/eu/kanade/tachiyomi/extension/en/mangago/SoJsonV4Deobfuscator.kt @@ -0,0 +1,23 @@ +package eu.kanade.tachiyomi.extension.en.mangago + +import kotlin.IllegalArgumentException + +/* + Ported from https://github.com/hax0r31337/JSDec/blob/master/js/dec.js + + SPDX-License-Identifier: MIT + Copyright (c) 2020 liulihaocai + */ +object SoJsonV4Deobfuscator { + private val splitRegex: Regex = Regex("""[a-zA-Z]+""") + + fun decode(jsf: String): String { + if (!jsf.startsWith("['sojson.v4']")) { + throw IllegalArgumentException("Obfuscated code is not sojson.v4") + } + + val args = jsf.substring(240, jsf.length - 59).split(splitRegex) + + return args.map { it.toInt().toChar() }.joinToString("") + } +}