fix: avoid waiting on network for local exts

This commit is contained in:
rebel onion 2025-05-15 01:47:06 -05:00
parent baffbc845c
commit 61a8350043
3 changed files with 17 additions and 10 deletions

View file

@ -113,21 +113,28 @@ class App : MultiDexApplication() {
} }
} }
CoroutineScope(Dispatchers.IO).launch { val scope = CoroutineScope(Dispatchers.IO)
scope.launch {
animeExtensionManager = Injekt.get() animeExtensionManager = Injekt.get()
launch {
animeExtensionManager.findAvailableExtensions() animeExtensionManager.findAvailableExtensions()
}
Logger.log("Anime Extensions: ${animeExtensionManager.installedExtensionsFlow.first()}") Logger.log("Anime Extensions: ${animeExtensionManager.installedExtensionsFlow.first()}")
AnimeSources.init(animeExtensionManager.installedExtensionsFlow) AnimeSources.init(animeExtensionManager.installedExtensionsFlow)
} }
CoroutineScope(Dispatchers.IO).launch { scope.launch {
mangaExtensionManager = Injekt.get() mangaExtensionManager = Injekt.get()
launch {
mangaExtensionManager.findAvailableExtensions() mangaExtensionManager.findAvailableExtensions()
}
Logger.log("Manga Extensions: ${mangaExtensionManager.installedExtensionsFlow.first()}") Logger.log("Manga Extensions: ${mangaExtensionManager.installedExtensionsFlow.first()}")
MangaSources.init(mangaExtensionManager.installedExtensionsFlow) MangaSources.init(mangaExtensionManager.installedExtensionsFlow)
} }
CoroutineScope(Dispatchers.IO).launch { scope.launch {
novelExtensionManager = Injekt.get() novelExtensionManager = Injekt.get()
launch {
novelExtensionManager.findAvailableExtensions() novelExtensionManager.findAvailableExtensions()
}
Logger.log("Novel Extensions: ${novelExtensionManager.installedExtensionsFlow.first()}") Logger.log("Novel Extensions: ${novelExtensionManager.installedExtensionsFlow.first()}")
NovelSources.init(novelExtensionManager.installedExtensionsFlow) NovelSources.init(novelExtensionManager.installedExtensionsFlow)
} }

View file

@ -26,7 +26,6 @@ object AnimeSources : WatchSources() {
) )
isInitialized = true isInitialized = true
// Update as StateFlow emits new values
fromExtensions.collect { extensions -> fromExtensions.collect { extensions ->
list = sortPinnedAnimeSources( list = sortPinnedAnimeSources(
createParsersFromExtensions(extensions), createParsersFromExtensions(extensions),

View file

@ -1,5 +1,6 @@
package eu.kanade.tachiyomi.extension.api package eu.kanade.tachiyomi.extension.api
import ani.dantotsu.asyncMap
import ani.dantotsu.parsers.novel.AvailableNovelSources import ani.dantotsu.parsers.novel.AvailableNovelSources
import ani.dantotsu.parsers.novel.NovelExtension import ani.dantotsu.parsers.novel.NovelExtension
import ani.dantotsu.settings.saving.PrefManager import ani.dantotsu.settings.saving.PrefManager
@ -67,7 +68,7 @@ internal class ExtensionGithubApi {
val repos = val repos =
PrefManager.getVal<Set<String>>(PrefName.AnimeExtensionRepos).toMutableList() PrefManager.getVal<Set<String>>(PrefName.AnimeExtensionRepos).toMutableList()
repos.forEach { repos.asyncMap {
val repoUrl = if (it.contains("index.min.json")) { val repoUrl = if (it.contains("index.min.json")) {
it it
} else { } else {
@ -155,7 +156,7 @@ internal class ExtensionGithubApi {
val repos = val repos =
PrefManager.getVal<Set<String>>(PrefName.MangaExtensionRepos).toMutableList() PrefManager.getVal<Set<String>>(PrefName.MangaExtensionRepos).toMutableList()
repos.forEach { repos.asyncMap {
val repoUrl = if (it.contains("index.min.json")) { val repoUrl = if (it.contains("index.min.json")) {
it it
} else { } else {
@ -207,7 +208,7 @@ internal class ExtensionGithubApi {
val repos = val repos =
PrefManager.getVal<Set<String>>(PrefName.NovelExtensionRepos).toMutableList() PrefManager.getVal<Set<String>>(PrefName.NovelExtensionRepos).toMutableList()
repos.forEach { repos.asyncMap {
val repoUrl = if (it.contains("index.min.json")) { val repoUrl = if (it.contains("index.min.json")) {
it it
} else { } else {