mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-04 16:18:55 +01:00 
			
		
		
		
	Add UnmeteredSource interface
To be included in extension-lib 1.3 (or whatever it's going to be). This applies to sources like Komga or Lanragi, where large numbers of update/download aren't of concern since they're (usually) self-hosted.
This commit is contained in:
		@@ -13,6 +13,7 @@ import eu.kanade.tachiyomi.data.database.models.Manga
 | 
			
		||||
import eu.kanade.tachiyomi.data.download.model.Download
 | 
			
		||||
import eu.kanade.tachiyomi.data.download.model.DownloadQueue
 | 
			
		||||
import eu.kanade.tachiyomi.source.SourceManager
 | 
			
		||||
import eu.kanade.tachiyomi.source.UnmeteredSource
 | 
			
		||||
import eu.kanade.tachiyomi.source.model.Page
 | 
			
		||||
import eu.kanade.tachiyomi.source.online.HttpSource
 | 
			
		||||
import eu.kanade.tachiyomi.source.online.fetchAllImageUrlsFromPageList
 | 
			
		||||
@@ -266,7 +267,10 @@ class Downloader(
 | 
			
		||||
 | 
			
		||||
            // Start downloader if needed
 | 
			
		||||
            if (autoStart && wasEmpty) {
 | 
			
		||||
                val maxDownloadsFromSource = queue.groupBy { it.source }.maxOf { it.value.size }
 | 
			
		||||
                val maxDownloadsFromSource = queue
 | 
			
		||||
                    .groupBy { it.source }
 | 
			
		||||
                    .filterKeys { it !is UnmeteredSource }
 | 
			
		||||
                    .maxOf { it.value.size }
 | 
			
		||||
                if (maxDownloadsFromSource > CHAPTERS_PER_SOURCE_QUEUE_WARNING_THRESHOLD) {
 | 
			
		||||
                    withUIContext {
 | 
			
		||||
                        context.toast(R.string.download_queue_size_warning, Toast.LENGTH_LONG)
 | 
			
		||||
 
 | 
			
		||||
@@ -25,6 +25,7 @@ import eu.kanade.tachiyomi.data.track.EnhancedTrackService
 | 
			
		||||
import eu.kanade.tachiyomi.data.track.TrackManager
 | 
			
		||||
import eu.kanade.tachiyomi.data.track.TrackService
 | 
			
		||||
import eu.kanade.tachiyomi.source.SourceManager
 | 
			
		||||
import eu.kanade.tachiyomi.source.UnmeteredSource
 | 
			
		||||
import eu.kanade.tachiyomi.source.model.SManga
 | 
			
		||||
import eu.kanade.tachiyomi.source.model.toSChapter
 | 
			
		||||
import eu.kanade.tachiyomi.source.model.toSManga
 | 
			
		||||
@@ -267,7 +268,10 @@ class LibraryUpdateService(
 | 
			
		||||
            .sortedWith(rankingScheme[selectedScheme])
 | 
			
		||||
 | 
			
		||||
        // Warn when excessively checking a single source
 | 
			
		||||
        val maxUpdatesFromSource = mangaToUpdate.groupBy { it.source }.maxOfOrNull { it.value.size } ?: 0
 | 
			
		||||
        val maxUpdatesFromSource = mangaToUpdate
 | 
			
		||||
            .groupBy { it.source }
 | 
			
		||||
            .filterKeys { sourceManager.get(it) !is UnmeteredSource }
 | 
			
		||||
            .maxOfOrNull { it.value.size } ?: 0
 | 
			
		||||
        if (maxUpdatesFromSource > MANGA_PER_SOURCE_QUEUE_WARNING_THRESHOLD) {
 | 
			
		||||
            toast(R.string.notification_size_warning, Toast.LENGTH_LONG)
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -38,7 +38,8 @@ import java.util.Locale
 | 
			
		||||
import java.util.concurrent.TimeUnit
 | 
			
		||||
import java.util.zip.ZipFile
 | 
			
		||||
 | 
			
		||||
class LocalSource(private val context: Context) : CatalogueSource {
 | 
			
		||||
class LocalSource(private val context: Context) : CatalogueSource, UnmeteredSource {
 | 
			
		||||
 | 
			
		||||
    companion object {
 | 
			
		||||
        const val ID = 0L
 | 
			
		||||
        const val HELP_URL = "https://tachiyomi.org/help/guides/local-manga/"
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,8 @@
 | 
			
		||||
package eu.kanade.tachiyomi.source
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * A source that explicitly doesn't require traffic considerations.
 | 
			
		||||
 *
 | 
			
		||||
 * This typically applies for self-hosted sources.
 | 
			
		||||
 */
 | 
			
		||||
interface UnmeteredSource
 | 
			
		||||
		Reference in New Issue
	
	Block a user