feat(en/edytjedhgmdhm): Update url(s) (#3218)

This commit is contained in:
Secozzi 2024-05-06 09:10:55 +00:00 committed by GitHub
parent a59119a6c7
commit 653a8c63be
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 69 additions and 4 deletions

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'edytjedhgmdhm' extName = 'edytjedhgmdhm'
extClass = '.Edytjedhgmdhm' extClass = '.Edytjedhgmdhm'
extVersionCode = 4 extVersionCode = 5
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -1,5 +1,10 @@
package eu.kanade.tachiyomi.animeextension.en.edytjedhgmdhm package eu.kanade.tachiyomi.animeextension.en.edytjedhgmdhm
import android.app.Application
import android.content.SharedPreferences
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource
import eu.kanade.tachiyomi.animesource.model.AnimeFilter import eu.kanade.tachiyomi.animesource.model.AnimeFilter
import eu.kanade.tachiyomi.animesource.model.AnimeFilterList import eu.kanade.tachiyomi.animesource.model.AnimeFilterList
import eu.kanade.tachiyomi.animesource.model.AnimesPage import eu.kanade.tachiyomi.animesource.model.AnimesPage
@ -14,14 +19,16 @@ import okhttp3.Request
import okhttp3.Response import okhttp3.Response
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import java.net.URI import java.net.URI
import java.net.URISyntaxException import java.net.URISyntaxException
class Edytjedhgmdhm : ParsedAnimeHttpSource() { class Edytjedhgmdhm : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
override val name = "edytjedhgmdhm" override val name = "edytjedhgmdhm"
override val baseUrl = "https://edytjedhgmdhm.abfhaqrhbnf.workers.dev" override val baseUrl by lazy { getBaseUrlPref() }
private val videoFormats = arrayOf(".mkv", ".mp4", ".avi") private val videoFormats = arrayOf(".mkv", ".mp4", ".avi")
@ -29,8 +36,24 @@ class Edytjedhgmdhm : ParsedAnimeHttpSource() {
override val supportsLatest = false override val supportsLatest = false
private val preferences: SharedPreferences by lazy {
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
// ============================ Initializers ============================ // ============================ Initializers ============================
private val asiandramaList by lazy {
client.newCall(GET("$baseUrl/asiandrama/")).execute()
.asJsoup()
.select(LINK_SELECTOR)
}
private val kdramaList by lazy {
client.newCall(GET("$baseUrl/kdrama/")).execute()
.asJsoup()
.select(LINK_SELECTOR)
}
private val miscList by lazy { private val miscList by lazy {
client.newCall(GET("$baseUrl/misc/")).execute() client.newCall(GET("$baseUrl/misc/")).execute()
.asJsoup() .asJsoup()
@ -104,6 +127,8 @@ class Edytjedhgmdhm : ParsedAnimeHttpSource() {
"/tvs/" -> tvsList "/tvs/" -> tvsList
"/movies/" -> moviesList "/movies/" -> moviesList
"/misc/" -> miscList "/misc/" -> miscList
"/kdrama/" -> kdramaList
"/asiandrama/" -> asiandramaList
else -> emptyList() else -> emptyList()
} }
@ -149,7 +174,9 @@ class Edytjedhgmdhm : ParsedAnimeHttpSource() {
arrayOf( arrayOf(
Pair("TVs", "/tvs/"), Pair("TVs", "/tvs/"),
Pair("Movies", "/movies/"), Pair("Movies", "/movies/"),
Pair("misc", "/misc/"), Pair("Misc", "/misc/"),
Pair("K-drama", "/kdrama/"),
Pair("Asian drama", "/asiandrama/"),
), ),
) )
@ -278,5 +305,43 @@ class Edytjedhgmdhm : ParsedAnimeHttpSource() {
companion object { companion object {
private const val CHUNKED_SIZE = 30 private const val CHUNKED_SIZE = 30
private const val LINK_SELECTOR = "table tbody a:not([href=..])" private const val LINK_SELECTOR = "table tbody a:not([href=..])"
private const val PREF_DOMAIN_KEY = "preferred_domain"
private const val PREF_DOMAIN_TITLE = "Preferred domain (requires app restart)"
private val PREF_DOMAIN_ENTRY_VALUES = arrayOf(
"https://edytjedhgmdhm.abfhaqrhbnf.workers.dev",
"https://odd-bird-1319.zwuhygoaqe.workers.dev",
"https://hello-world-flat-violet-6291.wstnjewyeaykmdg.workers.dev",
"https://worker-mute-fog-66ae.ihrqljobdq.workers.dev",
"https://worker-square-heart-580a.uieafpvtgl.workers.dev",
"https://worker-little-bread-2c2f.wqwmiuvxws.workers.dev",
)
private val PREF_DOMAIN_ENTRIES = PREF_DOMAIN_ENTRY_VALUES.map {
it.substringAfter("//").substringBefore(".")
}.toTypedArray()
private val PREF_DOMAIN_DEFAULT = PREF_DOMAIN_ENTRY_VALUES.first()
}
private fun getBaseUrlPref(): String =
preferences.getString(PREF_DOMAIN_KEY, PREF_DOMAIN_DEFAULT)!!
// ============================== Settings ==============================
override fun setupPreferenceScreen(screen: PreferenceScreen) {
ListPreference(screen.context).apply {
key = PREF_DOMAIN_KEY
title = PREF_DOMAIN_TITLE
entries = PREF_DOMAIN_ENTRIES
entryValues = PREF_DOMAIN_ENTRY_VALUES
setDefaultValue(PREF_DOMAIN_DEFAULT)
summary = "%s"
setOnPreferenceChangeListener { _, newValue ->
val selected = newValue as String
val index = findIndexOfValue(selected)
val entry = entryValues[index] as String
preferences.edit().putString(key, entry).commit()
}
}.also(screen::addPreference)
} }
} }