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' extName = 'Wcofun'
pkgNameSuffix = 'en.wcofun' pkgNameSuffix = 'en.wcofun'
extClass = '.Wcofun' extClass = '.Wcofun'
extVersionCode = 7 extVersionCode = 8
libVersion = '13' libVersion = '13'
} }

View File

@ -18,7 +18,7 @@ import uy.kohesive.injekt.api.get
import java.util.concurrent.CountDownLatch import java.util.concurrent.CountDownLatch
import java.util.concurrent.TimeUnit import java.util.concurrent.TimeUnit
class RedirectInterceptor : Interceptor { class RedirectInterceptor(private val baseUrl: String) : Interceptor {
private val context = Injekt.get<Application>() private val context = Injekt.get<Application>()
private val handler by lazy { Handler(Looper.getMainLooper()) } private val handler by lazy { Handler(Looper.getMainLooper()) }
@ -63,7 +63,7 @@ class RedirectInterceptor : Interceptor {
view: WebView, view: WebView,
request: WebResourceRequest, request: WebResourceRequest,
): WebResourceResponse? { ): WebResourceResponse? {
if (request.url.toString().contains("https://www.wcofun.net")) { if (request.url.toString().contains(baseUrl)) {
newRequest = GET(request.url.toString(), request.requestHeaders.toHeaders()) newRequest = GET(request.url.toString(), request.requestHeaders.toHeaders())
latch.countDown() latch.countDown()
} }

View File

@ -36,7 +36,7 @@ class Wcofun : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
override val name = "Wcofun" 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" override val lang = "en"
@ -53,7 +53,7 @@ class Wcofun : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
override fun popularAnimeSelector(): String = "#sidebar_right2 ul.items li" override fun popularAnimeSelector(): String = "#sidebar_right2 ul.items li"
override fun popularAnimeRequest(page: Int): Request { 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 val headers = interceptor.newCall(GET(baseUrl)).execute().request.headers
return GET(baseUrl, headers = headers) return GET(baseUrl, headers = headers)
} }
@ -233,6 +233,21 @@ class Wcofun : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
override fun latestUpdatesSelector(): String = throw Exception("Not used") override fun latestUpdatesSelector(): String = throw Exception("Not used")
override fun setupPreferenceScreen(screen: PreferenceScreen) { 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 { val videoQualityPref = ListPreference(screen.context).apply {
key = "preferred_quality" key = "preferred_quality"
title = "Preferred quality" title = "Preferred quality"
@ -248,6 +263,7 @@ class Wcofun : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
preferences.edit().putString(key, entry).commit() preferences.edit().putString(key, entry).commit()
} }
} }
screen.addPreference(domainPref)
screen.addPreference(videoQualityPref) screen.addPreference(videoQualityPref)
} }
} }