Update HiAnime.kt
This commit is contained in:
parent
235c2b3f41
commit
812e9c2e54
1 changed files with 50 additions and 13 deletions
|
@ -1,5 +1,11 @@
|
||||||
package eu.kanade.tachiyomi.animeextension.en.zoro
|
package eu.kanade.tachiyomi.animeextension.en.zoro
|
||||||
|
|
||||||
|
import android.app.Application
|
||||||
|
import android.content.SharedPreferences
|
||||||
|
import android.widget.Toast
|
||||||
|
import androidx.preference.EditTextPreference
|
||||||
|
import androidx.preference.PreferenceScreen
|
||||||
|
import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource
|
||||||
import eu.kanade.tachiyomi.animesource.model.SAnime
|
import eu.kanade.tachiyomi.animesource.model.SAnime
|
||||||
import eu.kanade.tachiyomi.animesource.model.Video
|
import eu.kanade.tachiyomi.animesource.model.Video
|
||||||
import eu.kanade.tachiyomi.lib.megacloudextractor.MegaCloudExtractor
|
import eu.kanade.tachiyomi.lib.megacloudextractor.MegaCloudExtractor
|
||||||
|
@ -8,17 +14,16 @@ import eu.kanade.tachiyomi.multisrc.zorotheme.ZoroTheme
|
||||||
import eu.kanade.tachiyomi.network.GET
|
import eu.kanade.tachiyomi.network.GET
|
||||||
import okhttp3.Request
|
import okhttp3.Request
|
||||||
import org.jsoup.nodes.Element
|
import org.jsoup.nodes.Element
|
||||||
|
import uy.kohesive.injekt.Injekt
|
||||||
|
import uy.kohesive.injekt.api.get
|
||||||
|
|
||||||
class HiAnime : ZoroTheme(
|
class HiAnime : ConfigurableAnimeSource, ZoroTheme(
|
||||||
"en",
|
lang = "en",
|
||||||
"HiAnime",
|
name = "HiAnime",
|
||||||
"https://hianime.to",
|
baseUrl = preferences.getString(PREF_BASE_URL_KEY, DEFAULT_BASE_URL)!!,
|
||||||
hosterNames = listOf(
|
hosterNames = listOf("HD-1", "HD-2", "StreamTape"),
|
||||||
"HD-1",
|
|
||||||
"HD-2",
|
|
||||||
"StreamTape",
|
|
||||||
),
|
|
||||||
) {
|
) {
|
||||||
|
|
||||||
override val id = 6706411382606718900L
|
override val id = 6706411382606718900L
|
||||||
|
|
||||||
override val ajaxRoute = "/v2"
|
override val ajaxRoute = "/v2"
|
||||||
|
@ -26,7 +31,9 @@ class HiAnime : ZoroTheme(
|
||||||
private val streamtapeExtractor by lazy { StreamTapeExtractor(client) }
|
private val streamtapeExtractor by lazy { StreamTapeExtractor(client) }
|
||||||
private val megaCloudExtractor by lazy { MegaCloudExtractor(client, headers, preferences) }
|
private val megaCloudExtractor by lazy { MegaCloudExtractor(client, headers, preferences) }
|
||||||
|
|
||||||
override fun latestUpdatesRequest(page: Int): Request = GET("$baseUrl/recently-updated?page=$page", docHeaders)
|
override fun latestUpdatesRequest(page: Int): Request {
|
||||||
|
return GET("$baseUrl/recently-updated?page=$page", docHeaders)
|
||||||
|
}
|
||||||
|
|
||||||
override fun popularAnimeFromElement(element: Element): SAnime {
|
override fun popularAnimeFromElement(element: Element): SAnime {
|
||||||
return super.popularAnimeFromElement(element).apply {
|
return super.popularAnimeFromElement(element).apply {
|
||||||
|
@ -38,11 +45,41 @@ class HiAnime : ZoroTheme(
|
||||||
return when (server.name) {
|
return when (server.name) {
|
||||||
"StreamTape" -> {
|
"StreamTape" -> {
|
||||||
streamtapeExtractor.videoFromUrl(server.link, "Streamtape - ${server.type}")
|
streamtapeExtractor.videoFromUrl(server.link, "Streamtape - ${server.type}")
|
||||||
?.let(::listOf)
|
?.let(::listOf) ?: emptyList()
|
||||||
?: emptyList()
|
}
|
||||||
|
"HD-1", "HD-2" -> {
|
||||||
|
megaCloudExtractor.getVideosFromUrl(server.link, server.type, server.name)
|
||||||
}
|
}
|
||||||
"HD-1", "HD-2" -> megaCloudExtractor.getVideosFromUrl(server.link, server.type, server.name)
|
|
||||||
else -> emptyList()
|
else -> emptyList()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun setupPreferenceScreen(screen: PreferenceScreen) {
|
||||||
|
val baseUrlPref = EditTextPreference(screen.context).apply {
|
||||||
|
key = PREF_BASE_URL_KEY
|
||||||
|
title = "Custom domain"
|
||||||
|
summary = "Set a custom domain to override the default ($DEFAULT_BASE_URL)"
|
||||||
|
dialogTitle = "Custom domain"
|
||||||
|
setDefaultValue(DEFAULT_BASE_URL)
|
||||||
|
setOnPreferenceChangeListener { _, newValue ->
|
||||||
|
Toast.makeText(
|
||||||
|
screen.context,
|
||||||
|
"Restart Aniyomi to apply changes.",
|
||||||
|
Toast.LENGTH_LONG
|
||||||
|
).show()
|
||||||
|
true // Save the preference
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
screen.addPreference(baseUrlPref)
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
private const val PREF_BASE_URL_KEY = "pref_base_url"
|
||||||
|
private const val DEFAULT_BASE_URL = "https://hianime.to"
|
||||||
|
|
||||||
|
private val preferences: SharedPreferences by lazy {
|
||||||
|
Injekt.get<Application>().getSharedPreferences("hianime", 0)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue