Fix url(s) (#1327)

This commit is contained in:
Secozzi
2023-02-24 15:07:18 +01:00
committed by GitHub
parent 569c2615a0
commit 7347d80404
3 changed files with 21 additions and 5 deletions

View File

@ -5,7 +5,7 @@ ext {
extName = 'Wcofun'
pkgNameSuffix = 'en.wcofun'
extClass = '.Wcofun'
extVersionCode = 7
extVersionCode = 8
libVersion = '13'
}

View File

@ -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<Application>()
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()
}

View File

@ -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)
}
}