MangaCataloug Added Search function (#6834)

* Update MangaCatalog.kt

* Update MangaCatalogGenerator.kt

* Updated overrides
This commit is contained in:
Johannes Joens 2021-05-06 00:16:06 +12:00 committed by GitHub
parent ebeb40b522
commit 28e1753d75
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 41 additions and 4 deletions

View File

@ -11,6 +11,5 @@ class ReadNarutoBorutoSamurai8MangaOnline : MangaCatalog("Read Naruto/Boruto/Sam
Pair("Colored", "$baseUrl/manga/naruto-digital-colored-comics/"), Pair("Colored", "$baseUrl/manga/naruto-digital-colored-comics/"),
Pair("Naruto Gaiden", "$baseUrl/manga/naruto-gaiden-the-seventh-hokage/"), Pair("Naruto Gaiden", "$baseUrl/manga/naruto-gaiden-the-seventh-hokage/"),
Pair("Samurai 8", "$baseUrl/manga/samurai-8-hachimaru-den/"), Pair("Samurai 8", "$baseUrl/manga/samurai-8-hachimaru-den/"),
Pair("", "$baseUrl/manga//"),
).sortedBy { it.first }.distinctBy { it.second } ).sortedBy { it.first }.distinctBy { it.second }
} }

View File

@ -3,6 +3,16 @@ package eu.kanade.tachiyomi.extension.en.readnoblessemanhwaonline
import eu.kanade.tachiyomi.multisrc.mangacatalog.MangaCatalog import eu.kanade.tachiyomi.multisrc.mangacatalog.MangaCatalog
import eu.kanade.tachiyomi.source.model.MangasPage import eu.kanade.tachiyomi.source.model.MangasPage
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.model.FilterList
import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import okhttp3.Request
import rx.Observable
import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
class ReadNoblesseManhwaOnline : MangaCatalog("Read Noblesse Manhwa Online", "https://ww2.readnoblesse.com", "en") { class ReadNoblesseManhwaOnline : MangaCatalog("Read Noblesse Manhwa Online", "https://ww2.readnoblesse.com", "en") {
override val sourceList = listOf( override val sourceList = listOf(
@ -11,4 +21,23 @@ class ReadNoblesseManhwaOnline : MangaCatalog("Read Noblesse Manhwa Online", "ht
Pair("NOBLESSE S", "$baseUrl/manga/noblesse-s/"), Pair("NOBLESSE S", "$baseUrl/manga/noblesse-s/"),
Pair("Ability", "$baseUrl/manga/ability/"), Pair("Ability", "$baseUrl/manga/ability/"),
).sortedBy { it.first }.distinctBy { it.second } ).sortedBy { it.first }.distinctBy { it.second }
override fun mangaDetailsParse(document: Document): SManga = SManga.create().apply {
description = document.select("div.flex > div.py-2 > div:not(:first-child)").text()
title = document.select(".container h1").text()
thumbnail_url = document.select("img.rounded-full").attr("src")
}
override fun chapterListSelector(): String = "div.w-full > div > div.flex"
override fun chapterFromElement(element: Element): SChapter = SChapter.create().apply {
val name1 = element.select(".flex-col > a:not(.text-xs)").text()
val name2 = element.select(".text-xs:not(a)").text()
if (name2 == ""){
name = name1
} else {
name = "$name1 - $name2"
}
url = element.select(".flex-col > a:not(.text-xs)").attr("abs:href")
date_upload = System.currentTimeMillis()
}
} }

View File

@ -30,7 +30,6 @@ abstract class MangaCatalog(
override val supportsLatest: Boolean = false override val supportsLatest: Boolean = false
// Popular // Popular
override fun fetchPopularManga(page: Int): Observable<MangasPage> { override fun fetchPopularManga(page: Int): Observable<MangasPage> {
return Observable.just(MangasPage(sourceList.map { popularMangaFromPair(it.first, it.second) }, false)) return Observable.just(MangasPage(sourceList.map { popularMangaFromPair(it.first, it.second) }, false))
} }
@ -51,7 +50,17 @@ abstract class MangaCatalog(
// Search // Search
override fun searchMangaRequest(page: Int, query: String, filters: FilterList) = throw Exception("No Search Function") override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable<MangasPage> {
val mangas = mutableListOf<SManga>()
sourceList.map {
if (it.first.contains(query)) {
mangas.add(popularMangaFromPair(it.first, it.second))
}
}
return Observable.just(MangasPage(mangas, false))
}
override fun searchMangaRequest(page: Int, query: String, filters: FilterList) = throw Exception("Not used")
override fun searchMangaNextPageSelector() = throw Exception("Not used") override fun searchMangaNextPageSelector() = throw Exception("Not used")
override fun searchMangaSelector() = throw Exception("Not used") override fun searchMangaSelector() = throw Exception("Not used")
override fun searchMangaFromElement(element: Element) = throw Exception("Not used") override fun searchMangaFromElement(element: Element) = throw Exception("Not used")

View File

@ -9,7 +9,7 @@ class MangaCatalogGenerator : ThemeSourceGenerator {
override val themeClass = "MangaCatalog" override val themeClass = "MangaCatalog"
override val baseVersionCode: Int = 1 override val baseVersionCode: Int = 2
override val sources = listOf( override val sources = listOf(
SingleLang("Read Boku no Hero Academia/My Hero Academia Manga", "https://ww6.readmha.com", "en", className = "ReadBokuNoHeroAcademiaMyHeroAcademiaManga", overrideVersionCode = 1), SingleLang("Read Boku no Hero Academia/My Hero Academia Manga", "https://ww6.readmha.com", "en", className = "ReadBokuNoHeroAcademiaMyHeroAcademiaManga", overrideVersionCode = 1),