Add nhentai URL importing

Allow fast importing of single URLs by inputting the URL into the source's search bar
This commit is contained in:
NerdNumber9
2017-08-24 18:31:08 -04:00
parent dcb6ae44dd
commit 239b36c31a
5 changed files with 85 additions and 17 deletions

View File

@@ -26,6 +26,8 @@ import okhttp3.CacheControl
import okhttp3.Headers
import okhttp3.Request
import org.jsoup.nodes.Document
import exh.GalleryAdder
import exh.util.urlImportFetchSearchManga
class EHentai(override val id: Long,
val exh: Boolean,
@@ -50,6 +52,8 @@ class EHentai(override val id: Long,
val metadataHelper = MetadataHelper()
val galleryAdder = GalleryAdder()
/**
* Gallery list entry
*/
@@ -142,6 +146,12 @@ class EHentai(override val id: Long,
else
exGet("$baseUrl/toplist.php?tl=15", page)
//Support direct URL importing
override fun fetchSearchManga(page: Int, query: String, filters: FilterList) =
urlImportFetchSearchManga(query, {
super.fetchSearchManga(page, query, filters)
})
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
val uri = Uri.parse("$baseUrl$QUERY_PREFIX").buildUpon()
uri.appendQueryParameter("f_search", query)

View File

@@ -21,6 +21,7 @@ import exh.metadata.MetadataHelper
import exh.metadata.copyTo
import exh.metadata.models.NHentaiMetadata
import exh.metadata.models.Tag
import exh.util.urlImportFetchSearchManga
import okhttp3.Request
import okhttp3.Response
import rx.Observable
@@ -45,6 +46,12 @@ class NHentai(context: Context) : HttpSource() {
TODO("Currently unavailable!")
}
//Support direct URL importing
override fun fetchSearchManga(page: Int, query: String, filters: FilterList) =
urlImportFetchSearchManga(query, {
super.fetchSearchManga(page, query, filters)
})
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
//Currently we have no filters
//TODO Filter builder
@@ -82,7 +89,7 @@ class NHentai(context: Context) : HttpSource() {
= nhGet(manga.url)
fun urlToDetailsRequest(url: String)
= nhGet(baseUrl + "/api/gallery/" + url.split("/").last())
= nhGet(baseUrl + "/api/gallery/" + url.split("/").last { it.isNotBlank() })
fun parseResultPage(response: Response): MangasPage {
val res = jsonParser.parse(response.body()!!.string()).asJsonObject