ComicExtra image parsing (#1580)

ComicExtra image parsing
This commit is contained in:
Mike 2019-09-29 22:47:55 -04:00 committed by arkon
parent 4e45edd8cf
commit b054d22bb6
2 changed files with 11 additions and 19 deletions

View File

@ -5,7 +5,7 @@ ext {
appName = 'Tachiyomi: ComicExtra' appName = 'Tachiyomi: ComicExtra'
pkgNameSuffix = 'en.comicextra' pkgNameSuffix = 'en.comicextra'
extClass = '.ComicExtra' extClass = '.ComicExtra'
extVersionCode = 3 extVersionCode = 4
libVersion = '1.2' libVersion = '1.2'
} }

View File

@ -1,13 +1,14 @@
package eu.kanade.tachiyomi.extension.en.comicextra package eu.kanade.tachiyomi.extension.en.comicextra
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.asObservableSuccess
import eu.kanade.tachiyomi.source.model.FilterList import eu.kanade.tachiyomi.source.model.FilterList
import eu.kanade.tachiyomi.source.model.Page import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.ParsedHttpSource import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.Response import okhttp3.Response
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
@ -26,6 +27,8 @@ class ComicExtra : ParsedHttpSource() {
override val supportsLatest = true override val supportsLatest = true
override val client: OkHttpClient = network.cloudflareClient
private val datePattern = Pattern.compile("(\\d+) days? ago") private val datePattern = Pattern.compile("(\\d+) days? ago")
override fun popularMangaSelector() = "div.cartoon-box" override fun popularMangaSelector() = "div.cartoon-box"
@ -144,30 +147,19 @@ class ComicExtra : ParsedHttpSource() {
return date.time return date.time
} }
override fun pageListRequest(chapter: SChapter): Request {
return GET(baseUrl + chapter.url + "/full", headers)
}
override fun pageListParse(document: Document): List<Page> { override fun pageListParse(document: Document): List<Page> {
val pages = mutableListOf<Page>() val pages = mutableListOf<Page>()
val urls = document.select("select.full-select[name=page_select] > option")
for (element in urls) { document.select("img.chapter_img").forEachIndexed { i, img ->
val url = element.attr("value") pages.add(Page(i, "", img.attr("abs:src")))
if (url.isEmpty()) continue
pages.add(Page(index = Integer.valueOf(element.text()) - 1, url = url))
} }
return pages return pages
} }
override fun imageUrlRequest(page: Page) = GET(page.url)
override fun fetchImageUrl(page: Page) = client.newCall(imageUrlRequest(page))
.asObservableSuccess()
.map { realImageUrlParse(it) }!!
private fun realImageUrlParse(response: Response) = with(response.asJsoup()) {
getElementById("main_img").attr("src")
}!!
override fun imageUrlParse(response: Response) = throw UnsupportedOperationException("Unused method was called somehow!")
override fun imageUrlParse(document: Document) = throw UnsupportedOperationException("Unused method was called somehow!") override fun imageUrlParse(document: Document) = throw UnsupportedOperationException("Unused method was called somehow!")
} }