mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-30 22:07:57 +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