diff --git a/src/pt/lermanga/build.gradle b/src/pt/lermanga/build.gradle index a69cf4062..df4ba5111 100644 --- a/src/pt/lermanga/build.gradle +++ b/src/pt/lermanga/build.gradle @@ -6,7 +6,7 @@ ext { extName = 'Ler Mangá' pkgNameSuffix = 'pt.lermanga' extClass = '.LerManga' - extVersionCode = 1 + extVersionCode = 2 isNsfw = true } diff --git a/src/pt/lermanga/src/eu/kanade/tachiyomi/extension/pt/lermanga/LerManga.kt b/src/pt/lermanga/src/eu/kanade/tachiyomi/extension/pt/lermanga/LerManga.kt index 91b8b10cf..2f12279a9 100644 --- a/src/pt/lermanga/src/eu/kanade/tachiyomi/extension/pt/lermanga/LerManga.kt +++ b/src/pt/lermanga/src/eu/kanade/tachiyomi/extension/pt/lermanga/LerManga.kt @@ -101,11 +101,21 @@ class LerManga : ParsedHttpSource() { } override fun pageListParse(document: Document): List { - return document.selectFirst("h1.heading-header + script[src^=data]")!! - .attr("src") - .substringAfter("base64,") - .let { Base64.decode(it, Base64.DEFAULT).toString(charset("UTF-8")) } - .substringAfter("var imagens_cap=") + val pagesScript = document.selectFirst("h1.heading-header + script") + ?: return emptyList() + + val pagesJson = when { + pagesScript.hasAttr("src") -> { + pagesScript.attr("src") + .substringAfter("base64,") + .let { Base64.decode(it, Base64.DEFAULT).toString(Charsets.UTF_8) } + } + else -> pagesScript.data() + } + + return pagesJson + .replace(PAGES_VARIABLE_REGEX, "") + .substringBeforeLast(";") .let { json.decodeFromString>(it) } .mapIndexed { index, imageUrl -> Page(index, document.location(), imageUrl) @@ -133,6 +143,7 @@ class LerManga : ParsedHttpSource() { } companion object { + private val PAGES_VARIABLE_REGEX = "var imagens_cap\\s*=\\s*".toRegex() private val DATE_FORMATTER by lazy { SimpleDateFormat("dd-MM-yyyy", Locale("pt", "BR")) }