NHentai: switch to SourceFactory
This commit is contained in:
parent
40de8b9723
commit
b81d7ad2aa
@ -4,8 +4,8 @@ apply plugin: 'kotlin-android'
|
|||||||
ext {
|
ext {
|
||||||
appName = 'Tachiyomi: NHentai'
|
appName = 'Tachiyomi: NHentai'
|
||||||
pkgNameSuffix = 'all.nhentai'
|
pkgNameSuffix = 'all.nhentai'
|
||||||
extClass = '.NHEnglish; .NHJapanese; .NHChinese'
|
extClass = '.NHFactory'
|
||||||
extVersionCode = 13
|
extVersionCode = 14
|
||||||
libVersion = '1.2'
|
libVersion = '1.2'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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")
|
||||||
|
)
|
||||||
|
}
|
@ -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"))
|
|
@ -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")
|
|
@ -5,6 +5,7 @@ import android.content.ActivityNotFoundException
|
|||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
|
import kotlin.system.exitProcess
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Springboard that accepts https://nhentai.net/g/xxxxxx intents and redirects them to
|
* Springboard that accepts https://nhentai.net/g/xxxxxx intents and redirects them to
|
||||||
@ -32,6 +33,6 @@ class NHUrlActivity : Activity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
finish()
|
finish()
|
||||||
System.exit(0)
|
exitProcess(0)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package eu.kanade.tachiyomi.extension.all.nhentai
|
package eu.kanade.tachiyomi.extension.all.nhentai
|
||||||
|
|
||||||
import org.jsoup.nodes.Document
|
import org.jsoup.nodes.Document
|
||||||
import java.lang.StringBuilder
|
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
|
|
||||||
class NHUtils {
|
class NHUtils {
|
||||||
@ -88,4 +87,4 @@ class NHUtils {
|
|||||||
|
|
||||||
private fun cleanTag(tag: String): String = tag.replace(Regex("\\(.*\\)"), "").trim()
|
private fun cleanTag(tag: String): String = tag.replace(Regex("\\(.*\\)"), "").trim()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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.extension.all.nhentai.NHUtils.Companion.getTime
|
||||||
import eu.kanade.tachiyomi.network.GET
|
import eu.kanade.tachiyomi.network.GET
|
||||||
import eu.kanade.tachiyomi.network.asObservableSuccess
|
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.FilterList
|
||||||
import eu.kanade.tachiyomi.source.model.MangasPage
|
import eu.kanade.tachiyomi.source.model.MangasPage
|
||||||
import eu.kanade.tachiyomi.source.model.Page
|
import eu.kanade.tachiyomi.source.model.Page
|
||||||
@ -23,7 +24,10 @@ import org.jsoup.nodes.Document
|
|||||||
import org.jsoup.nodes.Element
|
import org.jsoup.nodes.Element
|
||||||
import rx.Observable
|
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"
|
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)) {
|
return if (query.startsWith(PREFIX_ID_SEARCH)) {
|
||||||
val id = query.removePrefix(PREFIX_ID_SEARCH)
|
val id = query.removePrefix(PREFIX_ID_SEARCH)
|
||||||
client.newCall(searchMangaByIdRequest(id))
|
client.newCall(searchMangaByIdRequest(id))
|
||||||
.asObservableSuccess()
|
.asObservableSuccess()
|
||||||
.map { response -> searchMangaByIdParse(response, id) }
|
.map { response -> searchMangaByIdParse(response, id) }
|
||||||
} else {
|
} else {
|
||||||
return super.fetchSearchManga(page, query, filters)
|
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 {
|
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
|
||||||
val url = HttpUrl.parse("$baseUrl/search")!!.newBuilder()
|
val url = HttpUrl.parse("$baseUrl/search")!!.newBuilder()
|
||||||
.addQueryParameter("q", "$query +$nhLang")
|
.addQueryParameter("q", "$query +$nhLang")
|
||||||
.addQueryParameter("page", page.toString())
|
.addQueryParameter("page", page.toString())
|
||||||
|
|
||||||
filters.forEach {
|
filters.forEach {
|
||||||
when (it) {
|
when (it) {
|
||||||
@ -148,4 +152,6 @@ open class NHentai(override val lang: String, private val nhLang: String) : Pars
|
|||||||
const val PREFIX_ID_SEARCH = "id:"
|
const val PREFIX_ID_SEARCH = "id:"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private class SortFilter : Filter.Select<String>("Sort", arrayOf("Popular", "Date"))
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user