mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-04 16:18:55 +01:00 
			
		
		
		
	Move sourceMapper to data module
This commit is contained in:
		@@ -1,19 +0,0 @@
 | 
			
		||||
package eu.kanade.data.source
 | 
			
		||||
 | 
			
		||||
import eu.kanade.tachiyomi.source.CatalogueSource
 | 
			
		||||
import eu.kanade.tachiyomi.source.SourceManager
 | 
			
		||||
import tachiyomi.domain.source.model.Source
 | 
			
		||||
 | 
			
		||||
val sourceMapper: (eu.kanade.tachiyomi.source.Source) -> Source = { source ->
 | 
			
		||||
    Source(
 | 
			
		||||
        source.id,
 | 
			
		||||
        source.lang,
 | 
			
		||||
        source.name,
 | 
			
		||||
        supportsLatest = false,
 | 
			
		||||
        isStub = source is SourceManager.StubSource,
 | 
			
		||||
    )
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
val catalogueSourceMapper: (CatalogueSource) -> Source = { source ->
 | 
			
		||||
    sourceMapper(source).copy(supportsLatest = source.supportsLatest)
 | 
			
		||||
}
 | 
			
		||||
@@ -4,6 +4,7 @@ import eu.kanade.domain.source.repository.SourceRepository
 | 
			
		||||
import eu.kanade.tachiyomi.source.CatalogueSource
 | 
			
		||||
import eu.kanade.tachiyomi.source.SourceManager
 | 
			
		||||
import eu.kanade.tachiyomi.source.model.FilterList
 | 
			
		||||
import eu.kanade.tachiyomi.source.online.HttpSource
 | 
			
		||||
import kotlinx.coroutines.flow.Flow
 | 
			
		||||
import kotlinx.coroutines.flow.map
 | 
			
		||||
import tachiyomi.data.DatabaseHandler
 | 
			
		||||
@@ -11,6 +12,7 @@ import tachiyomi.data.source.SourceLatestPagingSource
 | 
			
		||||
import tachiyomi.data.source.SourcePagingSourceType
 | 
			
		||||
import tachiyomi.data.source.SourcePopularPagingSource
 | 
			
		||||
import tachiyomi.data.source.SourceSearchPagingSource
 | 
			
		||||
import tachiyomi.data.source.sourceMapper
 | 
			
		||||
import tachiyomi.domain.source.model.Source
 | 
			
		||||
import tachiyomi.domain.source.model.SourceWithCount
 | 
			
		||||
import tachiyomi.source.local.LocalSource
 | 
			
		||||
@@ -22,13 +24,19 @@ class SourceRepositoryImpl(
 | 
			
		||||
 | 
			
		||||
    override fun getSources(): Flow<List<Source>> {
 | 
			
		||||
        return sourceManager.catalogueSources.map { sources ->
 | 
			
		||||
            sources.map(catalogueSourceMapper)
 | 
			
		||||
            sources.map {
 | 
			
		||||
                sourceMapper(it).copy(
 | 
			
		||||
                    supportsLatest = it.supportsLatest,
 | 
			
		||||
                )
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override fun getOnlineSources(): Flow<List<Source>> {
 | 
			
		||||
        return sourceManager.onlineSources.map { sources ->
 | 
			
		||||
            sources.map(sourceMapper)
 | 
			
		||||
        return sourceManager.catalogueSources.map { sources ->
 | 
			
		||||
            sources
 | 
			
		||||
                .filterIsInstance<HttpSource>()
 | 
			
		||||
                .map(sourceMapper)
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -38,8 +46,11 @@ class SourceRepositoryImpl(
 | 
			
		||||
            sourceIdsWithCount
 | 
			
		||||
                .filterNot { it.source == LocalSource.ID }
 | 
			
		||||
                .map { (sourceId, count) ->
 | 
			
		||||
                    val source = sourceMapper(sourceManager.getOrStub(sourceId))
 | 
			
		||||
                    source to count
 | 
			
		||||
                    val source = sourceManager.getOrStub(sourceId)
 | 
			
		||||
                    val domainSource = sourceMapper(source).copy(
 | 
			
		||||
                        isStub = source is SourceManager.StubSource,
 | 
			
		||||
                    )
 | 
			
		||||
                    domainSource to count
 | 
			
		||||
                }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
@@ -49,7 +60,10 @@ class SourceRepositoryImpl(
 | 
			
		||||
        return sourceIdWithNonLibraryManga.map { sourceId ->
 | 
			
		||||
            sourceId.map { (sourceId, count) ->
 | 
			
		||||
                val source = sourceManager.getOrStub(sourceId)
 | 
			
		||||
                SourceWithCount(sourceMapper(source), count)
 | 
			
		||||
                val domainSource = sourceMapper(source).copy(
 | 
			
		||||
                    isStub = source is SourceManager.StubSource,
 | 
			
		||||
                )
 | 
			
		||||
                SourceWithCount(domainSource, count)
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -40,7 +40,6 @@ class SourceManager(
 | 
			
		||||
    private val stubSourcesMap = ConcurrentHashMap<Long, StubSource>()
 | 
			
		||||
 | 
			
		||||
    val catalogueSources: Flow<List<CatalogueSource>> = sourcesMapFlow.map { it.values.filterIsInstance<CatalogueSource>() }
 | 
			
		||||
    val onlineSources: Flow<List<HttpSource>> = catalogueSources.map { it.filterIsInstance<HttpSource>() }
 | 
			
		||||
 | 
			
		||||
    init {
 | 
			
		||||
        scope.launch {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,18 @@
 | 
			
		||||
package tachiyomi.data.source
 | 
			
		||||
 | 
			
		||||
import tachiyomi.domain.source.model.Source
 | 
			
		||||
import tachiyomi.domain.source.model.SourceData
 | 
			
		||||
 | 
			
		||||
val sourceMapper: (eu.kanade.tachiyomi.source.Source) -> Source = { source ->
 | 
			
		||||
    Source(
 | 
			
		||||
        source.id,
 | 
			
		||||
        source.lang,
 | 
			
		||||
        source.name,
 | 
			
		||||
        supportsLatest = false,
 | 
			
		||||
        isStub = false,
 | 
			
		||||
    )
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
val sourceDataMapper: (Long, String, String) -> SourceData = { id, lang, name ->
 | 
			
		||||
    SourceData(id, lang, name)
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user