mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-04 08:08:55 +01:00 
			
		
		
		
	Clean up fetch interval tests a bit
Also limit the dates we look at to most recent 10 distinct dates only. Closes #9930
This commit is contained in:
		@@ -50,6 +50,7 @@ import tachiyomi.domain.history.interactor.GetTotalReadDuration
 | 
			
		||||
import tachiyomi.domain.history.interactor.RemoveHistory
 | 
			
		||||
import tachiyomi.domain.history.interactor.UpsertHistory
 | 
			
		||||
import tachiyomi.domain.history.repository.HistoryRepository
 | 
			
		||||
import tachiyomi.domain.manga.interactor.FetchInterval
 | 
			
		||||
import tachiyomi.domain.manga.interactor.GetDuplicateLibraryManga
 | 
			
		||||
import tachiyomi.domain.manga.interactor.GetFavorites
 | 
			
		||||
import tachiyomi.domain.manga.interactor.GetLibraryManga
 | 
			
		||||
@@ -57,7 +58,6 @@ import tachiyomi.domain.manga.interactor.GetManga
 | 
			
		||||
import tachiyomi.domain.manga.interactor.GetMangaWithChapters
 | 
			
		||||
import tachiyomi.domain.manga.interactor.NetworkToLocalManga
 | 
			
		||||
import tachiyomi.domain.manga.interactor.ResetViewerFlags
 | 
			
		||||
import tachiyomi.domain.manga.interactor.SetFetchInterval
 | 
			
		||||
import tachiyomi.domain.manga.interactor.SetMangaChapterFlags
 | 
			
		||||
import tachiyomi.domain.manga.repository.MangaRepository
 | 
			
		||||
import tachiyomi.domain.release.interactor.GetApplicationRelease
 | 
			
		||||
@@ -102,7 +102,7 @@ class DomainModule : InjektModule {
 | 
			
		||||
        addFactory { GetNextChapters(get(), get(), get()) }
 | 
			
		||||
        addFactory { ResetViewerFlags(get()) }
 | 
			
		||||
        addFactory { SetMangaChapterFlags(get()) }
 | 
			
		||||
        addFactory { SetFetchInterval(get()) }
 | 
			
		||||
        addFactory { FetchInterval(get()) }
 | 
			
		||||
        addFactory { SetMangaDefaultChapterFlags(get(), get(), get()) }
 | 
			
		||||
        addFactory { SetMangaViewerFlags(get()) }
 | 
			
		||||
        addFactory { NetworkToLocalManga(get()) }
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@ package eu.kanade.domain.manga.interactor
 | 
			
		||||
import eu.kanade.domain.manga.model.hasCustomCover
 | 
			
		||||
import eu.kanade.tachiyomi.data.cache.CoverCache
 | 
			
		||||
import eu.kanade.tachiyomi.source.model.SManga
 | 
			
		||||
import tachiyomi.domain.manga.interactor.SetFetchInterval
 | 
			
		||||
import tachiyomi.domain.manga.interactor.FetchInterval
 | 
			
		||||
import tachiyomi.domain.manga.model.Manga
 | 
			
		||||
import tachiyomi.domain.manga.model.MangaUpdate
 | 
			
		||||
import tachiyomi.domain.manga.repository.MangaRepository
 | 
			
		||||
@@ -15,7 +15,7 @@ import java.util.Date
 | 
			
		||||
 | 
			
		||||
class UpdateManga(
 | 
			
		||||
    private val mangaRepository: MangaRepository,
 | 
			
		||||
    private val setFetchInterval: SetFetchInterval,
 | 
			
		||||
    private val fetchInterval: FetchInterval,
 | 
			
		||||
) {
 | 
			
		||||
 | 
			
		||||
    suspend fun await(mangaUpdate: MangaUpdate): Boolean {
 | 
			
		||||
@@ -79,9 +79,9 @@ class UpdateManga(
 | 
			
		||||
    suspend fun awaitUpdateFetchInterval(
 | 
			
		||||
        manga: Manga,
 | 
			
		||||
        dateTime: ZonedDateTime = ZonedDateTime.now(),
 | 
			
		||||
        window: Pair<Long, Long> = setFetchInterval.getWindow(dateTime),
 | 
			
		||||
        window: Pair<Long, Long> = fetchInterval.getWindow(dateTime),
 | 
			
		||||
    ): Boolean {
 | 
			
		||||
        return setFetchInterval.toMangaUpdateOrNull(manga, dateTime, window)
 | 
			
		||||
        return fetchInterval.toMangaUpdateOrNull(manga, dateTime, window)
 | 
			
		||||
            ?.let { mangaRepository.update(it) }
 | 
			
		||||
            ?: false
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -16,7 +16,7 @@ import androidx.compose.ui.res.stringResource
 | 
			
		||||
import androidx.compose.ui.unit.DpSize
 | 
			
		||||
import androidx.compose.ui.unit.dp
 | 
			
		||||
import eu.kanade.tachiyomi.R
 | 
			
		||||
import tachiyomi.domain.manga.interactor.MAX_FETCH_INTERVAL
 | 
			
		||||
import tachiyomi.domain.manga.interactor.FetchInterval
 | 
			
		||||
import tachiyomi.presentation.core.components.WheelTextPicker
 | 
			
		||||
 | 
			
		||||
@Composable
 | 
			
		||||
@@ -67,7 +67,7 @@ fun SetIntervalDialog(
 | 
			
		||||
                contentAlignment = Alignment.Center,
 | 
			
		||||
            ) {
 | 
			
		||||
                val size = DpSize(width = maxWidth / 2, height = 128.dp)
 | 
			
		||||
                val items = (0..MAX_FETCH_INTERVAL).map {
 | 
			
		||||
                val items = (0..FetchInterval.MAX_INTERVAL).map {
 | 
			
		||||
                    if (it == 0) {
 | 
			
		||||
                        stringResource(R.string.label_default)
 | 
			
		||||
                    } else {
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,7 @@ import kotlinx.coroutines.coroutineScope
 | 
			
		||||
import kotlinx.coroutines.isActive
 | 
			
		||||
import tachiyomi.domain.chapter.model.Chapter
 | 
			
		||||
import tachiyomi.domain.chapter.repository.ChapterRepository
 | 
			
		||||
import tachiyomi.domain.manga.interactor.SetFetchInterval
 | 
			
		||||
import tachiyomi.domain.manga.interactor.FetchInterval
 | 
			
		||||
import tachiyomi.domain.manga.model.Manga
 | 
			
		||||
import tachiyomi.domain.track.model.Track
 | 
			
		||||
import uy.kohesive.injekt.Injekt
 | 
			
		||||
@@ -31,10 +31,10 @@ class BackupRestorer(
 | 
			
		||||
) {
 | 
			
		||||
    private val updateManga: UpdateManga = Injekt.get()
 | 
			
		||||
    private val chapterRepository: ChapterRepository = Injekt.get()
 | 
			
		||||
    private val setFetchInterval: SetFetchInterval = Injekt.get()
 | 
			
		||||
    private val fetchInterval: FetchInterval = Injekt.get()
 | 
			
		||||
 | 
			
		||||
    private var now = ZonedDateTime.now()
 | 
			
		||||
    private var currentFetchWindow = setFetchInterval.getWindow(now)
 | 
			
		||||
    private var currentFetchWindow = fetchInterval.getWindow(now)
 | 
			
		||||
 | 
			
		||||
    private var backupManager = BackupManager(context)
 | 
			
		||||
 | 
			
		||||
@@ -103,7 +103,7 @@ class BackupRestorer(
 | 
			
		||||
        val backupMaps = backup.backupBrokenSources.map { BackupSource(it.name, it.sourceId) } + backup.backupSources
 | 
			
		||||
        sourceMapping = backupMaps.associate { it.sourceId to it.name }
 | 
			
		||||
        now = ZonedDateTime.now()
 | 
			
		||||
        currentFetchWindow = setFetchInterval.getWindow(now)
 | 
			
		||||
        currentFetchWindow = fetchInterval.getWindow(now)
 | 
			
		||||
 | 
			
		||||
        return coroutineScope {
 | 
			
		||||
            // Restore individual manga
 | 
			
		||||
 
 | 
			
		||||
@@ -59,9 +59,9 @@ import tachiyomi.domain.library.service.LibraryPreferences.Companion.MANGA_HAS_U
 | 
			
		||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.MANGA_NON_COMPLETED
 | 
			
		||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.MANGA_NON_READ
 | 
			
		||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.MANGA_OUTSIDE_RELEASE_PERIOD
 | 
			
		||||
import tachiyomi.domain.manga.interactor.FetchInterval
 | 
			
		||||
import tachiyomi.domain.manga.interactor.GetLibraryManga
 | 
			
		||||
import tachiyomi.domain.manga.interactor.GetManga
 | 
			
		||||
import tachiyomi.domain.manga.interactor.SetFetchInterval
 | 
			
		||||
import tachiyomi.domain.manga.model.Manga
 | 
			
		||||
import tachiyomi.domain.manga.model.toMangaUpdate
 | 
			
		||||
import tachiyomi.domain.source.model.SourceNotInstalledException
 | 
			
		||||
@@ -90,7 +90,7 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet
 | 
			
		||||
    private val getCategories: GetCategories = Injekt.get()
 | 
			
		||||
    private val syncChaptersWithSource: SyncChaptersWithSource = Injekt.get()
 | 
			
		||||
    private val refreshTracks: RefreshTracks = Injekt.get()
 | 
			
		||||
    private val setFetchInterval: SetFetchInterval = Injekt.get()
 | 
			
		||||
    private val fetchInterval: FetchInterval = Injekt.get()
 | 
			
		||||
 | 
			
		||||
    private val notifier = LibraryUpdateNotifier(context)
 | 
			
		||||
 | 
			
		||||
@@ -216,7 +216,7 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet
 | 
			
		||||
        val failedUpdates = CopyOnWriteArrayList<Pair<Manga, String?>>()
 | 
			
		||||
        val hasDownloads = AtomicBoolean(false)
 | 
			
		||||
        val restrictions = libraryPreferences.autoUpdateMangaRestrictions().get()
 | 
			
		||||
        val fetchWindow = setFetchInterval.getWindow(ZonedDateTime.now())
 | 
			
		||||
        val fetchWindow = fetchInterval.getWindow(ZonedDateTime.now())
 | 
			
		||||
 | 
			
		||||
        coroutineScope {
 | 
			
		||||
            mangaToUpdate.groupBy { it.manga.source }.values
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user