perf: remove custom coroutine scope
All checks were successful
PR build check / Prepare job (pull_request) Successful in 18s
PR build check / Build individual modules (pull_request) Successful in 7m20s

This commit is contained in:
ZhendongWu 2025-06-06 21:58:14 +08:00 committed by AlphaBoom
parent ae982dcfd5
commit fc7e6bee65
2 changed files with 8 additions and 8 deletions

View file

@ -17,8 +17,9 @@ import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.awaitSuccess
import eu.kanade.tachiyomi.util.asJsoup
import kotlinx.coroutines.CoroutineExceptionHandler
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.DelicateCoroutinesApi
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking
import kotlinx.serialization.encodeToString
@ -237,11 +238,12 @@ class Hanime1 : AnimeHttpSource(), ConfigurableAnimeSource {
return chain.proceed(chain.request())
}
@OptIn(DelicateCoroutinesApi::class)
private fun updateFilters() {
filterUpdateState = FilterUpdateState.UPDATING
val exceptionHandler =
CoroutineExceptionHandler { _, _ -> filterUpdateState = FilterUpdateState.FAILED }
CoroutineScope(Dispatchers.IO + exceptionHandler).launch {
GlobalScope.launch(Dispatchers.IO + exceptionHandler) {
val jsoup = client.newCall(GET("$baseUrl/search")).awaitSuccess().asJsoup()
val genreList = jsoup.select("div.genre-option div.hentai-sort-options").eachText()
val sortList =

View file

@ -20,8 +20,9 @@ import eu.kanade.tachiyomi.network.POST
import eu.kanade.tachiyomi.network.awaitSuccess
import eu.kanade.tachiyomi.util.asJsoup
import kotlinx.coroutines.CoroutineExceptionHandler
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.DelicateCoroutinesApi
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.jsonObject
@ -259,12 +260,13 @@ class Xfani : AnimeHttpSource(), ConfigurableAnimeSource {
return numbers.size == 2 && numbers[0] != numbers[1]
}
@OptIn(DelicateCoroutinesApi::class)
private fun updateFilter() {
filterState = FilterUpdateState.UPDATING
val handler = CoroutineExceptionHandler { _, _ ->
filterState = FilterUpdateState.FAILED
}
CoroutineScope(Dispatchers.IO + handler).launch {
GlobalScope.launch(Dispatchers.IO + handler) {
val jsoup = client.newCall(GET("$baseUrl/show/1/html")).awaitSuccess().asJsoup()
// update class and year filter type
val classList = jsoup.select("li[data-type=class]").eachAttr("data-val")
@ -393,9 +395,5 @@ class Xfani : AnimeHttpSource(), ConfigurableAnimeSource {
const val PREF_KEY_FILTER_YEAR = "PREF_KEY_FILTER_YEAR"
const val DEFAULT_VIDEO_SOURCE = "0"
val STATUS_STR_MAPPING = mapOf(
"已完结" to SAnime.COMPLETED,
)
}
}