diff --git a/src/en/wcofun/build.gradle b/src/en/wcofun/build.gradle index d8deed5cd..cc0450bc1 100644 --- a/src/en/wcofun/build.gradle +++ b/src/en/wcofun/build.gradle @@ -5,7 +5,7 @@ ext { extName = 'Wcofun' pkgNameSuffix = 'en.wcofun' extClass = '.Wcofun' - extVersionCode = 7 + extVersionCode = 8 libVersion = '13' } diff --git a/src/en/wcofun/src/eu/kanade/tachiyomi/animeextension/en/wcofun/RedirectInterceptor.kt b/src/en/wcofun/src/eu/kanade/tachiyomi/animeextension/en/wcofun/RedirectInterceptor.kt index 3177341e2..9021a8862 100644 --- a/src/en/wcofun/src/eu/kanade/tachiyomi/animeextension/en/wcofun/RedirectInterceptor.kt +++ b/src/en/wcofun/src/eu/kanade/tachiyomi/animeextension/en/wcofun/RedirectInterceptor.kt @@ -18,7 +18,7 @@ import uy.kohesive.injekt.api.get import java.util.concurrent.CountDownLatch import java.util.concurrent.TimeUnit -class RedirectInterceptor : Interceptor { +class RedirectInterceptor(private val baseUrl: String) : Interceptor { private val context = Injekt.get() private val handler by lazy { Handler(Looper.getMainLooper()) } @@ -63,7 +63,7 @@ class RedirectInterceptor : Interceptor { view: WebView, request: WebResourceRequest, ): WebResourceResponse? { - if (request.url.toString().contains("https://www.wcofun.net")) { + if (request.url.toString().contains(baseUrl)) { newRequest = GET(request.url.toString(), request.requestHeaders.toHeaders()) latch.countDown() } diff --git a/src/en/wcofun/src/eu/kanade/tachiyomi/animeextension/en/wcofun/Wcofun.kt b/src/en/wcofun/src/eu/kanade/tachiyomi/animeextension/en/wcofun/Wcofun.kt index 5a7ddfb72..88fc97b5b 100644 --- a/src/en/wcofun/src/eu/kanade/tachiyomi/animeextension/en/wcofun/Wcofun.kt +++ b/src/en/wcofun/src/eu/kanade/tachiyomi/animeextension/en/wcofun/Wcofun.kt @@ -36,7 +36,7 @@ class Wcofun : ConfigurableAnimeSource, ParsedAnimeHttpSource() { override val name = "Wcofun" - override val baseUrl = "https://www.wcofun.net" + override val baseUrl by lazy { preferences.getString("preferred_domain", "https://www.wcofun.com")!! } override val lang = "en" @@ -53,7 +53,7 @@ class Wcofun : ConfigurableAnimeSource, ParsedAnimeHttpSource() { override fun popularAnimeSelector(): String = "#sidebar_right2 ul.items li" override fun popularAnimeRequest(page: Int): Request { - val interceptor = client.newBuilder().addInterceptor(RedirectInterceptor()).build() + val interceptor = client.newBuilder().addInterceptor(RedirectInterceptor(baseUrl)).build() val headers = interceptor.newCall(GET(baseUrl)).execute().request.headers return GET(baseUrl, headers = headers) } @@ -233,6 +233,21 @@ class Wcofun : ConfigurableAnimeSource, ParsedAnimeHttpSource() { override fun latestUpdatesSelector(): String = throw Exception("Not used") override fun setupPreferenceScreen(screen: PreferenceScreen) { + val domainPref = ListPreference(screen.context).apply { + key = "preferred_domain" + title = "Preferred domain (requires app restart)" + entries = arrayOf("www.wcofun.com", "www.wcofun.net", "www.wcofun.tv") + entryValues = arrayOf("https://www.wcofun.com", "https://www.wcofun.net", "https://www.wcofun.tv") + setDefaultValue("https://www.wcofun.com") + 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() + } + } val videoQualityPref = ListPreference(screen.context).apply { key = "preferred_quality" title = "Preferred quality" @@ -248,6 +263,7 @@ class Wcofun : ConfigurableAnimeSource, ParsedAnimeHttpSource() { preferences.edit().putString(key, entry).commit() } } + screen.addPreference(domainPref) screen.addPreference(videoQualityPref) } }