mangadex: pagination/browse fix. (#269)

* mangadex: pagination/browse fix.
This commit is contained in:
Carlos 2018-03-29 11:35:50 -04:00 committed by GitHub
parent 318f335bf8
commit fd79e3b2dd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 12 deletions

View File

@ -5,8 +5,8 @@ ext {
appName = 'Tachiyomi: MangaDex'
pkgNameSuffix = "all.mangadex"
extClass = '.MangadexFactory'
extVersionCode = 17
extVersionSuffix = 17
extVersionCode = 18
extVersionSuffix = 18
libVersion = '1.2'
}

View File

@ -19,7 +19,7 @@ import java.net.URLEncoder
import java.util.*
import java.util.concurrent.TimeUnit
open class Mangadex(override val lang: String, private val internalLang: String, val pageStart: Int) : ParsedHttpSource() {
open class Mangadex(override val lang: String, private val internalLang: String, val langCode: Int) : ParsedHttpSource() {
override val name = "MangaDex"
@ -36,15 +36,16 @@ open class Mangadex(override val lang: String, private val internalLang: String,
val newReq = chain
.request()
.newBuilder()
.addHeader("Cookie", cookiesHeader(r18Toggle))
.addHeader("Cookie", cookiesHeader(r18Toggle, langCode))
.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64)")
.build()
chain.proceed(newReq)
}.build()!!
private fun cookiesHeader(r18Toggle: Int): String {
private fun cookiesHeader(r18Toggle: Int, langCode: Int): String {
val cookies = mutableMapOf<String, String>()
cookies["mangadex_h_toggle"] = r18Toggle.toString()
cookies["mangadex_filter_langs"] = langCode.toString()
return buildCookies(cookies)
}
@ -52,23 +53,21 @@ open class Mangadex(override val lang: String, private val internalLang: String,
"${URLEncoder.encode(it.key, "UTF-8")}=${URLEncoder.encode(it.value, "UTF-8")}"
}
override fun popularMangaSelector() = ".table-responsive tbody tr"
override fun popularMangaSelector() = "div.col-sm-6"
override fun latestUpdatesSelector() = ".table-responsive tbody tr a.manga_title[href*=manga]"
override fun popularMangaRequest(page: Int): Request {
val pageStr = if (page != 1) "/" + ((page * 100) - 100) else ""
return GET("$baseUrl/titles$pageStr", headers)
return GET("$baseUrl/titles/0/$page", headers)
}
override fun latestUpdatesRequest(page: Int): Request {
val pageStr = if (page != 1) "/" + ((page * 20)) else ""
return GET("$baseUrl/$pageStart$pageStr", headers)
return GET("$baseUrl/0/$page", headers)
}
override fun popularMangaFromElement(element: Element): SManga {
val manga = SManga.create()
element.select("a[href*=manga]").first().let {
element.select("a.manga_title").first().let {
val url = removeMangaNameFromUrl(it.attr("href"))
manga.setUrlWithoutDomain(url)
manga.thumbnail_url = baseUrl + "/images" + manga.url.substringBeforeLast("/") + ".jpg"
@ -157,7 +156,15 @@ open class Mangadex(override val lang: String, private val internalLang: String,
override fun searchMangaSelector() = ".table.table-striped.table-hover.table-condensed tbody tr"
override fun searchMangaFromElement(element: Element): SManga {
return popularMangaFromElement(element)
val manga = SManga.create()
element.select("a[href*=manga]").first().let {
val url = removeMangaNameFromUrl(it.attr("href"))
manga.setUrlWithoutDomain(url)
manga.thumbnail_url = baseUrl + "/images" + manga.url.substringBeforeLast("/") + ".jpg"
manga.title = it.text().trim()
manga.author = it?.text()?.trim()
}
return manga
}
override fun fetchMangaDetails(manga: SManga): Observable<SManga> {