diff --git a/src/en/comicpunch/build.gradle b/src/en/comicpunch/build.gradle index b2da6b691..f531e2134 100644 --- a/src/en/comicpunch/build.gradle +++ b/src/en/comicpunch/build.gradle @@ -5,7 +5,7 @@ ext { appName = 'Tachiyomi: Comicpunch' pkgNameSuffix = 'en.comicpunch' extClass = '.Comicpunch' - extVersionCode = 1 + extVersionCode = 2 libVersion = '1.2' } diff --git a/src/en/comicpunch/src/eu/kanade/tachiyomi/extension/en/comicpunch/Comicpunch.kt b/src/en/comicpunch/src/eu/kanade/tachiyomi/extension/en/comicpunch/Comicpunch.kt index 12da835ad..ed121d1d0 100644 --- a/src/en/comicpunch/src/eu/kanade/tachiyomi/extension/en/comicpunch/Comicpunch.kt +++ b/src/en/comicpunch/src/eu/kanade/tachiyomi/extension/en/comicpunch/Comicpunch.kt @@ -1,6 +1,7 @@ package eu.kanade.tachiyomi.extension.en.comicpunch 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.MangasPage import eu.kanade.tachiyomi.source.model.Page @@ -13,6 +14,7 @@ import okhttp3.Request import okhttp3.Response import org.jsoup.nodes.Document import org.jsoup.nodes.Element +import rx.Observable class Comicpunch : ParsedHttpSource() { @@ -63,32 +65,31 @@ class Comicpunch : ParsedHttpSource() { // Search + override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable { + return client.newCall(searchMangaRequest(page, query, filters)) + .asObservableSuccess() + .map { response -> + searchMangaParse(response, query) + } + } + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { - return GET("$baseUrl/search/node/$query?page=${page - 1}", headers) + return GET("$baseUrl/comics-list", headers) } - override fun searchMangaParse(response: Response): MangasPage { - val mangas = mutableListOf() - val document = response.asJsoup() + private fun searchMangaParse(response: Response, query: String): MangasPage { + val mangas = response.asJsoup().select(searchMangaSelector()) + .filter { it.text().contains(query, ignoreCase = true) } + .map { searchMangaFromElement(it) } - document.select(searchMangaSelector()) - .asSequence() - .filterNot { it.attr("href").contains("/comic/") } - .filterNot { it.attr("href").contains("/asiancomics/") } - .filterNot { it.attr("href").contains("/latest-issues") } - .filterNot { it.attr("href").contains("$baseUrl/latest-issues") } - .filterNot { it.attr("href").contains("$baseUrl/newest-issues") } - .map { mangas.add(searchMangaFromElement(it)) } - .toList() - - return MangasPage(mangas, document.select(searchMangaNextPageSelector()).isNotEmpty()) + return MangasPage(mangas, false) } - override fun searchMangaSelector() = "li.search-result h3 a" + override fun searchMangaSelector() = "table.cols-2 td a" override fun searchMangaFromElement(element: Element): SManga = popularMangaFromElement(element) - override fun searchMangaNextPageSelector() = popularMangaNextPageSelector() + override fun searchMangaNextPageSelector() = throw UnsupportedOperationException("Not used") // Details