NHentai: switch to SourceFactory

This commit is contained in:
Eugene 2019-10-27 17:46:54 -04:00
parent 40de8b9723
commit b81d7ad2aa
No known key found for this signature in database
GPG Key ID: E1FD745328866B0A
7 changed files with 28 additions and 20 deletions

View File

@ -4,8 +4,8 @@ apply plugin: 'kotlin-android'
ext {
appName = 'Tachiyomi: NHentai'
pkgNameSuffix = 'all.nhentai'
extClass = '.NHEnglish; .NHJapanese; .NHChinese'
extVersionCode = 13
extClass = '.NHFactory'
extVersionCode = 14
libVersion = '1.2'
}

View File

@ -0,0 +1,12 @@
package eu.kanade.tachiyomi.extension.all.nhentai
import eu.kanade.tachiyomi.source.Source
import eu.kanade.tachiyomi.source.SourceFactory
class NHFactory : SourceFactory {
override fun createSources(): List<Source> = listOf(
NHentai("en", "english"),
NHentai("ja", "japanese"),
NHentai("zh", "chinese")
)
}

View File

@ -1,5 +0,0 @@
package eu.kanade.tachiyomi.extension.all.nhentai
import eu.kanade.tachiyomi.source.model.Filter
class SortFilter : Filter.Select<String>("Sort", arrayOf("Popular", "Date"))

View File

@ -1,5 +0,0 @@
package eu.kanade.tachiyomi.extension.all.nhentai
class NHEnglish : NHentai("en", "english")
class NHJapanese : NHentai("ja", "japanese")
class NHChinese : NHentai("zh", "chinese")

View File

@ -5,6 +5,7 @@ import android.content.ActivityNotFoundException
import android.content.Intent
import android.os.Bundle
import android.util.Log
import kotlin.system.exitProcess
/**
* Springboard that accepts https://nhentai.net/g/xxxxxx intents and redirects them to
@ -32,6 +33,6 @@ class NHUrlActivity : Activity() {
}
finish()
System.exit(0)
exitProcess(0)
}
}

View File

@ -1,7 +1,6 @@
package eu.kanade.tachiyomi.extension.all.nhentai
import org.jsoup.nodes.Document
import java.lang.StringBuilder
import java.text.SimpleDateFormat
class NHUtils {
@ -88,4 +87,4 @@ class NHUtils {
private fun cleanTag(tag: String): String = tag.replace(Regex("\\(.*\\)"), "").trim()
}
}
}

View File

@ -7,6 +7,7 @@ import eu.kanade.tachiyomi.extension.all.nhentai.NHUtils.Companion.getTags
import eu.kanade.tachiyomi.extension.all.nhentai.NHUtils.Companion.getTime
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
import eu.kanade.tachiyomi.source.model.Page
@ -23,7 +24,10 @@ import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
import rx.Observable
open class NHentai(override val lang: String, private val nhLang: String) : ParsedHttpSource() {
open class NHentai(
override val lang: String,
private val nhLang: String
) : ParsedHttpSource() {
final override val baseUrl = "https://nhentai.net"
@ -63,8 +67,8 @@ open class NHentai(override val lang: String, private val nhLang: String) : Pars
return if (query.startsWith(PREFIX_ID_SEARCH)) {
val id = query.removePrefix(PREFIX_ID_SEARCH)
client.newCall(searchMangaByIdRequest(id))
.asObservableSuccess()
.map { response -> searchMangaByIdParse(response, id) }
.asObservableSuccess()
.map { response -> searchMangaByIdParse(response, id) }
} else {
return super.fetchSearchManga(page, query, filters)
}
@ -72,8 +76,8 @@ open class NHentai(override val lang: String, private val nhLang: String) : Pars
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
val url = HttpUrl.parse("$baseUrl/search")!!.newBuilder()
.addQueryParameter("q", "$query +$nhLang")
.addQueryParameter("page", page.toString())
.addQueryParameter("q", "$query +$nhLang")
.addQueryParameter("page", page.toString())
filters.forEach {
when (it) {
@ -148,4 +152,6 @@ open class NHentai(override val lang: String, private val nhLang: String) : Pars
const val PREFIX_ID_SEARCH = "id:"
}
private class SortFilter : Filter.Select<String>("Sort", arrayOf("Popular", "Date"))
}