Add Search to JapScan (#2270)

Add Search to JapScan
This commit is contained in:
happywillow0 2020-02-22 09:45:13 -05:00 committed by GitHub
parent cc07b759d7
commit 1e3786d713
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 13 deletions

View File

@ -5,7 +5,7 @@ ext {
appName = 'Tachiyomi: Japscan' appName = 'Tachiyomi: Japscan'
pkgNameSuffix = 'fr.japscan' pkgNameSuffix = 'fr.japscan'
extClass = '.Japscan' extClass = '.Japscan'
extVersionCode = 15 extVersionCode = 16
libVersion = '1.2' libVersion = '1.2'
} }

View File

@ -105,9 +105,9 @@ class Japscan : ParsedHttpSource() {
override fun latestUpdatesSelector() = "#chapters > div > h3.text-truncate" override fun latestUpdatesSelector() = "#chapters > div > h3.text-truncate"
override fun latestUpdatesFromElement(element: Element): SManga = popularMangaFromElement(element) override fun latestUpdatesFromElement(element: Element): SManga = popularMangaFromElement(element)
//"Search" //Search
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
if (query.isNullOrEmpty()) { if (query.isEmpty()) {
val uri = Uri.parse(baseUrl).buildUpon() val uri = Uri.parse(baseUrl).buildUpon()
.appendPath("mangas") .appendPath("mangas")
filters.forEach { filter -> filters.forEach { filter ->
@ -117,19 +117,30 @@ class Japscan : ParsedHttpSource() {
} }
} }
return GET(uri.toString(), headers) return GET(uri.toString(), headers)
} else } else {
throw Exception("Search unavailable, use filter to browse by page") val uri = Uri.parse("https://duckduckgo.com/lite/").buildUpon()
.appendQueryParameter("q","$query site:www.japscan.co/manga/")
.appendQueryParameter("kd","-1")
return GET(uri.toString(), headers)
}
} }
override fun searchMangaNextPageSelector(): String? = null //"li.page-item:last-child:not(li.active)" override fun searchMangaNextPageSelector(): String? = null //"li.page-item:last-child:not(li.active)"
override fun searchMangaSelector(): String = "div.card div.p-2" override fun searchMangaSelector(): String = "div.card div.p-2, a.result-link"
override fun searchMangaFromElement(element: Element): SManga = SManga.create().apply { override fun searchMangaFromElement(element: Element): SManga =
thumbnail_url = baseUrl+element.select("img").attr("src").substringAfter(baseUrl) if (element.attr("class")=="result-link") {
SManga.create().apply {
title = element.text().substringAfter(" ").substringBefore(" | JapScan")
setUrlWithoutDomain(element.attr("abs:href"))
}
} else {
SManga.create().apply {
thumbnail_url = element.select("img").attr("abs:src")
element.select("p a").let { element.select("p a").let {
title = it.text() title = it.text()
url = it.attr("href") url = it.attr("href")
} }
}
} }
override fun mangaDetailsParse(document: Document): SManga { override fun mangaDetailsParse(document: Document): SManga {
@ -255,10 +266,12 @@ class Japscan : ParsedHttpSource() {
pagelist.add(i+1) pagelist.add(i+1)
} }
FilterList( FilterList(
Filter.Header("Recherche par Duck Duck Go"),
Filter.Header("Page alphabétique"), Filter.Header("Page alphabétique"),
PageList(pagelist.toTypedArray()) PageList(pagelist.toTypedArray())
) )
} else FilterList( } else FilterList(
Filter.Header("Recherche par Duck Duck Go"),
Filter.Header("Page alphabétique"), Filter.Header("Page alphabétique"),
TextField("Page #", "page"), TextField("Page #", "page"),
Filter.Header("Appuyez sur reset pour la liste") Filter.Header("Appuyez sur reset pour la liste")