From c0d4915d1e02002c52f1ed124062efa2a6c8000d Mon Sep 17 00:00:00 2001 From: AbdullahM0hamed <25087116+AbdullahM0hamed@users.noreply.github.com> Date: Sat, 18 Jul 2020 18:52:03 +0100 Subject: [PATCH] Comic latest (#3829) * Fix search on ComicLatest * Re-add annotation * Remove unnecessary import * Make comment clearer * Add Author Filter * Annotation * Add Author Filter for real --- src/all/wpcomics/build.gradle | 2 +- .../extension/all/wpcomics/WPComicsFactory.kt | 32 +++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/all/wpcomics/build.gradle b/src/all/wpcomics/build.gradle index 6f6f01027..25afb1768 100644 --- a/src/all/wpcomics/build.gradle +++ b/src/all/wpcomics/build.gradle @@ -5,7 +5,7 @@ ext { extName = 'WP-Comics' pkgNameSuffix = 'all.wpcomics' extClass = '.WPComicsFactory' - extVersionCode = 11 + extVersionCode = 12 libVersion = '1.2' } diff --git a/src/all/wpcomics/src/eu/kanade/tachiyomi/extension/all/wpcomics/WPComicsFactory.kt b/src/all/wpcomics/src/eu/kanade/tachiyomi/extension/all/wpcomics/WPComicsFactory.kt index 070c8e452..53ea60c1e 100644 --- a/src/all/wpcomics/src/eu/kanade/tachiyomi/extension/all/wpcomics/WPComicsFactory.kt +++ b/src/all/wpcomics/src/eu/kanade/tachiyomi/extension/all/wpcomics/WPComicsFactory.kt @@ -4,6 +4,7 @@ import eu.kanade.tachiyomi.annotations.MultiSource import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.source.Source import eu.kanade.tachiyomi.source.SourceFactory +import eu.kanade.tachiyomi.source.model.Filter import eu.kanade.tachiyomi.source.model.FilterList import eu.kanade.tachiyomi.source.model.Page import eu.kanade.tachiyomi.source.model.SChapter @@ -120,6 +121,29 @@ private class ComicLatest : WPComics("ComicLatest", "https://comiclatest.com", " thumbnail_url = element.select("img").attr("data-original") } + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + filters.forEach { filter -> + when (filter) { + is AuthorFilter -> { + val author = filter.state.trim().replace(" ", "-").toLowerCase() + return GET("$baseUrl/author/$author", headers) + } + } + } + + return GET("$baseUrl/search?keyword=$query", headers) + } + + override fun searchMangaSelector() = "div.item div.box_img > a[title]" + + //For whatever reason, errors with author search if this isn't overridden + override fun searchMangaFromElement(element: Element): SManga { + return SManga.create().apply { + title = element.attr("title") + setUrlWithoutDomain(element.attr("href")) + } + } + override fun chapterListParse(response: Response): List { val chapters = mutableListOf() @@ -135,4 +159,12 @@ private class ComicLatest : WPComics("ComicLatest", "https://comiclatest.com", " } override fun pageListRequest(chapter: SChapter) = GET("$baseUrl${chapter.url}/all", headers) + + private class AuthorFilter: Filter.Text("Author") + + override fun getFilterList() = FilterList( + Filter.Header("NOTE: Cannot be used with search"), + Filter.Separator(), + AuthorFilter() + ) }