Add search ID hentaivn (#14619)

This commit is contained in:
are-are-are 2022-12-20 22:17:31 +07:00 committed by GitHub
parent 7e10b61cff
commit 5959e0db32
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 1 deletions

View File

@ -5,7 +5,7 @@ ext {
extName = 'HentaiVN'
pkgNameSuffix = 'vi.hentaivn'
extClass = '.HentaiVN'
extVersionCode = 17
extVersionCode = 18
isNsfw = true
}

View File

@ -1,6 +1,7 @@
package eu.kanade.tachiyomi.extension.vi.hentaivn
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.asObservableSuccess
import eu.kanade.tachiyomi.source.model.Filter
import eu.kanade.tachiyomi.source.model.FilterList
import eu.kanade.tachiyomi.source.model.MangasPage
@ -17,6 +18,7 @@ import okhttp3.Request
import okhttp3.Response
import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
import rx.Observable
import java.text.ParseException
import java.text.SimpleDateFormat
import java.util.Locale
@ -162,6 +164,33 @@ class HentaiVN : ParsedHttpSource() {
override fun searchMangaNextPageSelector() = "ul.pagination > li:contains(Cuối)"
private fun searchMangaByIdRequest(id: String) = GET("$baseUrl/tim-kiem-truyen.html?key=$id", headers)
private fun searchMangaByIdParse(response: Response, ids: String): MangasPage {
val details = mangaDetailsParse(response)
details.url = "$baseUrl/$ids-doc-truyen-id.html"
return MangasPage(listOf(details), false)
}
override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable<MangasPage> {
return when {
query.startsWith(PREFIX_ID_SEARCH) -> {
val ids = query.removePrefix(PREFIX_ID_SEARCH)
client.newCall(searchMangaByIdRequest(ids))
.asObservableSuccess()
.map { response -> searchMangaByIdParse(response, ids) }
}
query.toIntOrNull() != null -> {
client.newCall(searchMangaByIdRequest(query))
.asObservableSuccess()
.map { response -> searchMangaByIdParse(response, query) }
}
else -> super.fetchSearchManga(page, query, filters)
}
}
companion object {
const val PREFIX_ID_SEARCH = "id:"
}
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
val url = "$searchUrl?name=$query&page=$page&dou=&char=&group=0&search=".toHttpUrlOrNull()!!.newBuilder()
(if (filters.isEmpty()) getFilterList() else filters).forEach { filter ->