Adapt source implementation for TachiyomiX 1.6 (#3243)

This commit is contained in:
AntsyLich
2026-06-14 02:34:31 +06:00
committed by GitHub
parent 430b13bb81
commit 4c37f4c764
38 changed files with 597 additions and 524 deletions
@@ -1,7 +1,7 @@
package tachiyomi.data.source
import androidx.paging.PagingState
import eu.kanade.tachiyomi.source.CatalogueSource
import eu.kanade.tachiyomi.source.Source
import eu.kanade.tachiyomi.source.model.FilterList
import eu.kanade.tachiyomi.source.model.MangasPage
import mihon.domain.manga.model.toDomainManga
@@ -13,7 +13,7 @@ import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
class SourceSearchPagingSource(
source: CatalogueSource,
source: Source,
private val query: String,
private val filters: FilterList,
) : BaseSourcePagingSource(source) {
@@ -22,20 +22,20 @@ class SourceSearchPagingSource(
}
}
class SourcePopularPagingSource(source: CatalogueSource) : BaseSourcePagingSource(source) {
class SourcePopularPagingSource(source: Source) : BaseSourcePagingSource(source) {
override suspend fun requestNextPage(currentPage: Int): MangasPage {
return source.getPopularManga(currentPage)
}
}
class SourceLatestPagingSource(source: CatalogueSource) : BaseSourcePagingSource(source) {
class SourceLatestPagingSource(source: Source) : BaseSourcePagingSource(source) {
override suspend fun requestNextPage(currentPage: Int): MangasPage {
return source.getLatestUpdates(currentPage)
}
}
abstract class BaseSourcePagingSource(
protected val source: CatalogueSource,
protected val source: Source,
private val networkToLocalManga: NetworkToLocalManga = Injekt.get(),
) : SourcePagingSource() {
@@ -1,6 +1,5 @@
package tachiyomi.data.source
import eu.kanade.tachiyomi.source.CatalogueSource
import eu.kanade.tachiyomi.source.Source
import eu.kanade.tachiyomi.source.model.FilterList
import eu.kanade.tachiyomi.source.online.HttpSource
@@ -22,7 +21,7 @@ class SourceRepositoryImpl(
) : SourceRepository {
override fun getSources(): Flow<List<DomainSource>> {
return sourceManager.catalogueSources.map { sources ->
return sourceManager.sources.map { sources ->
sources.map {
mapSourceToDomainSource(it).copy(
supportsLatest = it.supportsLatest,
@@ -32,7 +31,7 @@ class SourceRepositoryImpl(
}
override fun getOnlineSources(): Flow<List<DomainSource>> {
return sourceManager.catalogueSources.map { sources ->
return sourceManager.sources.map { sources ->
sources
.filterIsInstance<HttpSource>()
.map(::mapSourceToDomainSource)
@@ -43,7 +42,7 @@ class SourceRepositoryImpl(
val sourceIdWithFavoriteCountFlow = database.mangasQueries
.getSourceIdWithFavoriteCount()
.subscribeToList()
return combine(sourceIdWithFavoriteCountFlow, sourceManager.catalogueSources) { sourceIdWithFavoriteCount, _ ->
return combine(sourceIdWithFavoriteCountFlow, sourceManager.sources) { sourceIdWithFavoriteCount, _ ->
sourceIdWithFavoriteCount
}
.map {
@@ -77,18 +76,15 @@ class SourceRepositoryImpl(
query: String,
filterList: FilterList,
): SourcePagingSource {
val source = sourceManager.get(sourceId) as CatalogueSource
return SourceSearchPagingSource(source, query, filterList)
return SourceSearchPagingSource(sourceManager.getOrStub(sourceId), query, filterList)
}
override fun getPopular(sourceId: Long): SourcePagingSource {
val source = sourceManager.get(sourceId) as CatalogueSource
return SourcePopularPagingSource(source)
return SourcePopularPagingSource(sourceManager.getOrStub(sourceId))
}
override fun getLatest(sourceId: Long): SourcePagingSource {
val source = sourceManager.get(sourceId) as CatalogueSource
return SourceLatestPagingSource(source)
return SourceLatestPagingSource(sourceManager.getOrStub(sourceId))
}
private fun mapSourceToDomainSource(source: Source): DomainSource = DomainSource(