fix(en/uhdmovies): Fix crashes when fetching the current baseUrl (#2605)
This commit is contained in:
parent
aef6ac42d7
commit
cbc63acfcf
@ -8,7 +8,7 @@ ext {
|
|||||||
extName = 'UHD Movies'
|
extName = 'UHD Movies'
|
||||||
pkgNameSuffix = 'en.uhdmovies'
|
pkgNameSuffix = 'en.uhdmovies'
|
||||||
extClass = '.UHDMovies'
|
extClass = '.UHDMovies'
|
||||||
extVersionCode = 18
|
extVersionCode = 19
|
||||||
libVersion = '13'
|
libVersion = '13'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,24 +38,29 @@ class UHDMovies : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||||||
override val name = "UHD Movies"
|
override val name = "UHD Movies"
|
||||||
|
|
||||||
override val baseUrl by lazy {
|
override val baseUrl by lazy {
|
||||||
val url = preferences.getString(PREF_DOMAIN_KEY, PREF_DOMAIN_DEFAULT)!!
|
preferences.getString(PREF_DOMAIN_KEY, PREF_DOMAIN_DEFAULT)!!
|
||||||
|
}
|
||||||
|
|
||||||
|
private val currentBaseUrl by lazy {
|
||||||
|
runCatching {
|
||||||
runBlocking {
|
runBlocking {
|
||||||
withContext(Dispatchers.Default) {
|
withContext(Dispatchers.Default) {
|
||||||
client.newBuilder()
|
client.newBuilder()
|
||||||
.followRedirects(false)
|
.followRedirects(false)
|
||||||
.build()
|
.build()
|
||||||
.newCall(GET("$url/")).execute().use { resp ->
|
.newCall(GET("$baseUrl/")).execute().use { resp ->
|
||||||
when (resp.code) {
|
when (resp.code) {
|
||||||
301 -> {
|
301 -> {
|
||||||
(resp.headers["location"]?.substringBeforeLast("/") ?: url).also {
|
(resp.headers["location"]?.substringBeforeLast("/") ?: baseUrl).also {
|
||||||
preferences.edit().putString(PREF_DOMAIN_KEY, it).apply()
|
preferences.edit().putString(PREF_DOMAIN_KEY, it).apply()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else -> url
|
else -> baseUrl
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}.getOrDefault(baseUrl)
|
||||||
}
|
}
|
||||||
|
|
||||||
override val lang = "en"
|
override val lang = "en"
|
||||||
@ -71,7 +76,7 @@ class UHDMovies : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ============================== Popular ===============================
|
// ============================== Popular ===============================
|
||||||
override fun popularAnimeRequest(page: Int): Request = GET("$baseUrl/page/$page/")
|
override fun popularAnimeRequest(page: Int): Request = GET("$currentBaseUrl/page/$page/")
|
||||||
|
|
||||||
override fun popularAnimeSelector(): String = "div#content div.gridlove-posts > div.layout-masonry"
|
override fun popularAnimeSelector(): String = "div#content div.gridlove-posts > div.layout-masonry"
|
||||||
|
|
||||||
@ -97,7 +102,7 @@ class UHDMovies : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||||||
// =============================== Search ===============================
|
// =============================== Search ===============================
|
||||||
override fun searchAnimeRequest(page: Int, query: String, filters: AnimeFilterList): Request {
|
override fun searchAnimeRequest(page: Int, query: String, filters: AnimeFilterList): Request {
|
||||||
val cleanQuery = query.replace(" ", "+").lowercase()
|
val cleanQuery = query.replace(" ", "+").lowercase()
|
||||||
return GET("$baseUrl/page/$page/?s=$cleanQuery")
|
return GET("$currentBaseUrl/page/$page/?s=$cleanQuery")
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun searchAnimeSelector(): String = popularAnimeSelector()
|
override fun searchAnimeSelector(): String = popularAnimeSelector()
|
||||||
@ -116,6 +121,8 @@ class UHDMovies : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ============================== Episodes ==============================
|
// ============================== Episodes ==============================
|
||||||
|
override fun episodeListRequest(anime: SAnime) = GET(currentBaseUrl + anime.url, headers)
|
||||||
|
|
||||||
private fun Regex.firstValue(text: String) =
|
private fun Regex.firstValue(text: String) =
|
||||||
find(text)?.groupValues?.get(1)?.let { Pair(text, it) }
|
find(text)?.groupValues?.get(1)?.let { Pair(text, it) }
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user