Add nhentai search-by-id

This commit is contained in:
NerdNumber9 2019-08-07 10:48:17 -04:00
parent e915fd28cb
commit 333dfbc642

View File

@ -43,14 +43,20 @@ class NHentai(context: Context) : HttpSource(), LewdSource<NHentaiSearchMetadata
override fun popularMangaParse(response: Response) = throw UnsupportedOperationException() override fun popularMangaParse(response: Response) = throw UnsupportedOperationException()
//Support direct URL importing //Support direct URL importing
override fun fetchSearchManga(page: Int, query: String, filters: FilterList) = override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable<MangasPage> {
urlImportFetchSearchManga(query) { val trimmedIdQuery = query.trim().removePrefix("id:")
searchMangaRequestObservable(page, query, filters).flatMap { val newQuery = if(trimmedIdQuery.toIntOrNull() ?: -1 >= 0) {
client.newCall(it).asObservableSuccess() "$baseUrl/g/$trimmedIdQuery/"
} .map { response -> } else query
searchMangaParse(response)
} return urlImportFetchSearchManga(newQuery) {
searchMangaRequestObservable(page, query, filters).flatMap {
client.newCall(it).asObservableSuccess()
}.map { response ->
searchMangaParse(response)
} }
}
}
private fun searchMangaRequestObservable(page: Int, query: String, filters: FilterList): Observable<Request> { private fun searchMangaRequestObservable(page: Int, query: String, filters: FilterList): Observable<Request> {
val uri = if(query.isNotBlank()) { val uri = if(query.isNotBlank()) {
@ -281,7 +287,7 @@ class NHentai(context: Context) : HttpSource(), LewdSource<NHentaiSearchMetadata
if(uri.pathSegments.firstOrNull()?.toLowerCase() != "g") if(uri.pathSegments.firstOrNull()?.toLowerCase() != "g")
return null return null
return "https://nhentai.net/g/${uri.pathSegments[1]}/" return "$baseUrl/g/${uri.pathSegments[1]}/"
} }
companion object { companion object {