diff --git a/src/all/ninemanga/build.gradle b/src/all/ninemanga/build.gradle index 3d19291da..cb278f1fc 100644 --- a/src/all/ninemanga/build.gradle +++ b/src/all/ninemanga/build.gradle @@ -1,7 +1,7 @@ ext { extName = 'NineManga' extClass = '.NineMangaFactory' - extVersionCode = 22 + extVersionCode = 23 } apply from: "$rootDir/common.gradle" diff --git a/src/all/ninemanga/src/eu/kanade/tachiyomi/extension/all/ninemanga/NineMangaFactory.kt b/src/all/ninemanga/src/eu/kanade/tachiyomi/extension/all/ninemanga/NineMangaFactory.kt index 9c4fe9814..f2dba8db0 100644 --- a/src/all/ninemanga/src/eu/kanade/tachiyomi/extension/all/ninemanga/NineMangaFactory.kt +++ b/src/all/ninemanga/src/eu/kanade/tachiyomi/extension/all/ninemanga/NineMangaFactory.kt @@ -1,10 +1,15 @@ package eu.kanade.tachiyomi.extension.all.ninemanga +import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.source.Source import eu.kanade.tachiyomi.source.SourceFactory 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 keiyoushi.utils.parseAs import okhttp3.Request +import org.jsoup.nodes.Document import org.jsoup.nodes.Element import java.text.ParseException import java.text.SimpleDateFormat @@ -45,6 +50,29 @@ class NineMangaEs : NineManga("NineMangaEs", "https://es.ninemanga.com", "es") { else -> SManga.UNKNOWN } + override fun pageListRequest(chapter: SChapter): Request { + val headers = headers.newBuilder() + .set("Referer", "$baseUrl/") + .build() + + return GET(baseUrl + chapter.url, headers) + } + + private val imgRegex = Regex("""all_imgs_url\s*:\s*\[\s*([^]]*)\s*,\s*]""") + + override fun pageListParse(document: Document): List { + val script = document.selectFirst("script:containsData(all_imgs_url)")?.data() + ?: throw Exception("Image data not found") + + val images = imgRegex.find(script)?.groupValues?.get(1) + ?.let { "[$it]".parseAs>() } + ?: throw Exception("Image list not found") + + return images.mapIndexed { idx, img -> + Page(idx, imageUrl = img) + } + } + override fun parseChapterDate(date: String) = parseChapterDateByLang(date) // https://es.ninemanga.com/search/?type=high