From d31dd59dd14e89df2655150d39253ea34aee8c00 Mon Sep 17 00:00:00 2001 From: Mike <51273546+SnakeDoc83@users.noreply.github.com> Date: Mon, 22 Jul 2019 18:25:49 -0400 Subject: [PATCH] Madara (add Zinmanga, fix Tritinia) (#1330) --- src/all/madara/build.gradle | 2 +- .../extension/all/madara/MadaraFactory.kt | 36 ++++++++++++++++--- 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/src/all/madara/build.gradle b/src/all/madara/build.gradle index 6cf7a32cf..29a83f829 100644 --- a/src/all/madara/build.gradle +++ b/src/all/madara/build.gradle @@ -5,7 +5,7 @@ ext { appName = 'Tachiyomi: Madara' pkgNameSuffix = "all.madara" extClass = '.MadaraFactory' - extVersionCode = 6 + extVersionCode = 7 libVersion = '1.2' } diff --git a/src/all/madara/src/eu/kanade/tachiyomi/extension/all/madara/MadaraFactory.kt b/src/all/madara/src/eu/kanade/tachiyomi/extension/all/madara/MadaraFactory.kt index 60457f373..82698a3e2 100644 --- a/src/all/madara/src/eu/kanade/tachiyomi/extension/all/madara/MadaraFactory.kt +++ b/src/all/madara/src/eu/kanade/tachiyomi/extension/all/madara/MadaraFactory.kt @@ -10,6 +10,7 @@ import eu.kanade.tachiyomi.source.model.* import eu.kanade.tachiyomi.util.asJsoup import okhttp3.Request import okhttp3.Response +import org.jsoup.nodes.Element class MadaraFactory : SourceFactory { override fun createSources(): List = listOf( @@ -39,7 +40,8 @@ class MadaraFactory : SourceFactory { WuxiaWorld(), YoManga(), ManyToon(), - ChibiManga() + ChibiManga(), + ZinManga() ) } @@ -86,11 +88,36 @@ class Kanjiku : Madara("Kanjiku", "https://kanjiku.net/", "de", dateFormat = Sim class KomikGo : Madara("KomikGo", "https://komikgo.com/", "id") class LuxyScans : Madara("Luxy Scans", "https://luxyscans.com/", "en") class TritiniaScans : Madara("Tritinia Scans", "http://tritiniascans.ml/", "en") { - override fun popularMangaRequest(page: Int): Request = GET("$baseUrl/index-m_orderby=views.html", headers) - override fun latestUpdatesRequest(page: Int): Request = GET("$baseUrl/index-m_orderby=latest.html", headers) - override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request = GET("$baseUrl/index.html?s=$query", headers) + override fun popularMangaRequest(page: Int): Request = GET("$baseUrl/?m_orderby=views", headers) + override fun latestUpdatesRequest(page: Int): Request = GET("$baseUrl/?m_orderby=latest", headers) override fun latestUpdatesNextPageSelector(): String? = null override fun popularMangaNextPageSelector(): String? = null + + // Source's search seems broken (doesn't return results) + private var searchQuery = "" + + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + searchQuery = query.toLowerCase() + return popularMangaRequest(1) + } + + override fun searchMangaParse(response: Response): MangasPage { + val searchMatches = mutableListOf() + val document = response.asJsoup() + + document.select(searchMangaSelector()) + .filter { it.text().toLowerCase().contains(searchQuery) } + .map { searchMatches.add(searchMangaFromElement(it)) } + + return MangasPage(searchMatches, false) + } + + override fun searchMangaSelector() = popularMangaSelector() + + override fun searchMangaFromElement(element: Element) = popularMangaFromElement(element) + + override fun searchMangaNextPageSelector() = "Not needed" + } class TsubakiNoScan : Madara("Tsubaki No Scan", "https://tsubakinoscan.com/", "fr", dateFormat = SimpleDateFormat("dd/MM/yy", Locale.US)) class YokaiJump : Madara("Yokai Jump", "https://yokaijump.fr/", "fr", dateFormat = SimpleDateFormat("dd/MM/yy", Locale.US)) @@ -132,3 +159,4 @@ class WuxiaWorld : Madara("WuxiaWorld", "https://wuxiaworld.site/", "en") { class YoManga : Madara("Yo Manga", "https://yomanga.info/", "en") class ManyToon : Madara("ManyToon", "https://manytoon.com/", "en") class ChibiManga : Madara("Chibi Manga", "http://www.cmreader.info/", "en") +class ZinManga : Madara("Zin Translator", "https://zinmanga.com/", "en")