From fd79e3b2dd07cdd5abe2c0ba92919efc7d826951 Mon Sep 17 00:00:00 2001 From: Carlos Date: Thu, 29 Mar 2018 11:35:50 -0400 Subject: [PATCH] mangadex: pagination/browse fix. (#269) * mangadex: pagination/browse fix. --- src/all/mangadex/build.gradle | 4 +-- .../extension/all/mangadex/Mangadex.kt | 27 ++++++++++++------- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/all/mangadex/build.gradle b/src/all/mangadex/build.gradle index 47d1f288c..04f6a6c30 100644 --- a/src/all/mangadex/build.gradle +++ b/src/all/mangadex/build.gradle @@ -5,8 +5,8 @@ ext { appName = 'Tachiyomi: MangaDex' pkgNameSuffix = "all.mangadex" extClass = '.MangadexFactory' - extVersionCode = 17 - extVersionSuffix = 17 + extVersionCode = 18 + extVersionSuffix = 18 libVersion = '1.2' } diff --git a/src/all/mangadex/src/eu/kanade/tachiyomi/extension/all/mangadex/Mangadex.kt b/src/all/mangadex/src/eu/kanade/tachiyomi/extension/all/mangadex/Mangadex.kt index c153e9806..976255f61 100644 --- a/src/all/mangadex/src/eu/kanade/tachiyomi/extension/all/mangadex/Mangadex.kt +++ b/src/all/mangadex/src/eu/kanade/tachiyomi/extension/all/mangadex/Mangadex.kt @@ -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() 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 {