mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-30 22:07:57 +01:00 
			
		
		
		
	Replace usages of fetchMangaDetails with 1.x getMangaDetails API
This commit is contained in:
		| @@ -26,7 +26,10 @@ import eu.kanade.tachiyomi.data.database.models.History | ||||
| import eu.kanade.tachiyomi.data.database.models.Manga | ||||
| import eu.kanade.tachiyomi.data.database.models.MangaCategory | ||||
| import eu.kanade.tachiyomi.data.database.models.Track | ||||
| import eu.kanade.tachiyomi.data.database.models.toMangaInfo | ||||
| import eu.kanade.tachiyomi.source.Source | ||||
| import eu.kanade.tachiyomi.source.model.toSManga | ||||
| import eu.kanade.tachiyomi.util.lang.runAsObservable | ||||
| import kotlinx.serialization.ExperimentalSerializationApi | ||||
| import kotlinx.serialization.protobuf.ProtoBuf | ||||
| import okio.buffer | ||||
| @@ -190,14 +193,14 @@ class FullBackupManager(context: Context) : AbstractBackupManager(context) { | ||||
|      */ | ||||
|     fun restoreMangaFetchObservable(source: Source?, manga: Manga, online: Boolean): Observable<Manga> { | ||||
|         return if (online && source != null) { | ||||
|             source.fetchMangaDetails(manga) | ||||
|                 .map { networkManga -> | ||||
|                     manga.copyFrom(networkManga) | ||||
|                     manga.favorite = manga.favorite | ||||
|                     manga.initialized = true | ||||
|                     manga.id = insertManga(manga) | ||||
|                     manga | ||||
|                 } | ||||
|             return runAsObservable({ | ||||
|                 val networkManga = source.getMangaDetails(manga.toMangaInfo()) | ||||
|                 manga.copyFrom(networkManga.toSManga()) | ||||
|                 manga.favorite = manga.favorite | ||||
|                 manga.initialized = true | ||||
|                 manga.id = insertManga(manga) | ||||
|                 manga | ||||
|             }) | ||||
|         } else { | ||||
|             Observable.just(manga) | ||||
|                 .map { | ||||
|   | ||||
| @@ -44,8 +44,11 @@ import eu.kanade.tachiyomi.data.database.models.MangaCategory | ||||
| import eu.kanade.tachiyomi.data.database.models.MangaImpl | ||||
| import eu.kanade.tachiyomi.data.database.models.Track | ||||
| import eu.kanade.tachiyomi.data.database.models.TrackImpl | ||||
| import eu.kanade.tachiyomi.data.database.models.toMangaInfo | ||||
| import eu.kanade.tachiyomi.source.LocalSource | ||||
| import eu.kanade.tachiyomi.source.Source | ||||
| import eu.kanade.tachiyomi.source.model.toSManga | ||||
| import eu.kanade.tachiyomi.util.lang.runAsObservable | ||||
| import rx.Observable | ||||
| import timber.log.Timber | ||||
| import kotlin.math.max | ||||
| @@ -256,14 +259,14 @@ class LegacyBackupManager(context: Context, version: Int = CURRENT_VERSION) : Ab | ||||
|      * @return [Observable] that contains manga | ||||
|      */ | ||||
|     fun restoreMangaFetchObservable(source: Source, manga: Manga): Observable<Manga> { | ||||
|         return source.fetchMangaDetails(manga) | ||||
|             .map { networkManga -> | ||||
|                 manga.copyFrom(networkManga) | ||||
|                 manga.favorite = true | ||||
|                 manga.initialized = true | ||||
|                 manga.id = insertManga(manga) | ||||
|                 manga | ||||
|             } | ||||
|         return runAsObservable({ | ||||
|             val networkManga = source.getMangaDetails(manga.toMangaInfo()) | ||||
|             manga.copyFrom(networkManga.toSManga()) | ||||
|             manga.favorite = true | ||||
|             manga.initialized = true | ||||
|             manga.id = insertManga(manga) | ||||
|             manga | ||||
|         }) | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|   | ||||
| @@ -13,6 +13,7 @@ import eu.kanade.tachiyomi.data.database.models.Category | ||||
| import eu.kanade.tachiyomi.data.database.models.Chapter | ||||
| import eu.kanade.tachiyomi.data.database.models.LibraryManga | ||||
| import eu.kanade.tachiyomi.data.database.models.Manga | ||||
| import eu.kanade.tachiyomi.data.database.models.toMangaInfo | ||||
| import eu.kanade.tachiyomi.data.download.DownloadManager | ||||
| import eu.kanade.tachiyomi.data.download.DownloadService | ||||
| import eu.kanade.tachiyomi.data.library.LibraryUpdateRanker.rankingScheme | ||||
| @@ -22,8 +23,10 @@ import eu.kanade.tachiyomi.data.preference.PreferencesHelper | ||||
| import eu.kanade.tachiyomi.data.track.TrackManager | ||||
| import eu.kanade.tachiyomi.source.SourceManager | ||||
| import eu.kanade.tachiyomi.source.model.SManga | ||||
| import eu.kanade.tachiyomi.source.model.toSManga | ||||
| import eu.kanade.tachiyomi.util.chapter.NoChaptersException | ||||
| import eu.kanade.tachiyomi.util.chapter.syncChaptersWithSource | ||||
| import eu.kanade.tachiyomi.util.lang.runAsObservable | ||||
| import eu.kanade.tachiyomi.util.prepUpdateCover | ||||
| import eu.kanade.tachiyomi.util.shouldDownloadNewChapters | ||||
| import eu.kanade.tachiyomi.util.storage.getUriCompat | ||||
| @@ -339,19 +342,20 @@ class LibraryUpdateService( | ||||
|  | ||||
|         // Update manga details metadata in the background | ||||
|         if (preferences.autoUpdateMetadata()) { | ||||
|             source.fetchMangaDetails(manga) | ||||
|                 .map { updatedManga -> | ||||
|                     // Avoid "losing" existing cover | ||||
|                     if (!updatedManga.thumbnail_url.isNullOrEmpty()) { | ||||
|                         manga.prepUpdateCover(coverCache, updatedManga, false) | ||||
|                     } else { | ||||
|                         updatedManga.thumbnail_url = manga.thumbnail_url | ||||
|                     } | ||||
|  | ||||
|                     manga.copyFrom(updatedManga) | ||||
|                     db.insertManga(manga).executeAsBlocking() | ||||
|                     manga | ||||
|             runAsObservable({ | ||||
|                 val updatedManga = source.getMangaDetails(manga.toMangaInfo()) | ||||
|                 val sManga = updatedManga.toSManga() | ||||
|                 // Avoid "losing" existing cover | ||||
|                 if (!sManga.thumbnail_url.isNullOrEmpty()) { | ||||
|                     manga.prepUpdateCover(coverCache, sManga, false) | ||||
|                 } else { | ||||
|                     sManga.thumbnail_url = manga.thumbnail_url | ||||
|                 } | ||||
|  | ||||
|                 manga.copyFrom(sManga) | ||||
|                 db.insertManga(manga).executeAsBlocking() | ||||
|                 manga | ||||
|             }) | ||||
|                 .onErrorResumeNext { Observable.just(manga) } | ||||
|                 .subscribeOn(Schedulers.io()) | ||||
|                 .subscribe() | ||||
| @@ -372,15 +376,16 @@ class LibraryUpdateService( | ||||
|                 val source = sourceManager.get(manga.source) | ||||
|                     ?: return@flatMap Observable.empty<LibraryManga>() | ||||
|  | ||||
|                 source.fetchMangaDetails(manga) | ||||
|                     .map { networkManga -> | ||||
|                         manga.prepUpdateCover(coverCache, networkManga, true) | ||||
|                         networkManga.thumbnail_url?.let { | ||||
|                             manga.thumbnail_url = it | ||||
|                             db.insertManga(manga).executeAsBlocking() | ||||
|                         } | ||||
|                         manga | ||||
|                 runAsObservable({ | ||||
|                     val networkManga = source.getMangaDetails(manga.toMangaInfo()) | ||||
|                     val sManga = networkManga.toSManga() | ||||
|                     manga.prepUpdateCover(coverCache, sManga, true) | ||||
|                     sManga.thumbnail_url?.let { | ||||
|                         manga.thumbnail_url = it | ||||
|                         db.insertManga(manga).executeAsBlocking() | ||||
|                     } | ||||
|                     manga | ||||
|                 }) | ||||
|                     .onErrorReturn { manga } | ||||
|             } | ||||
|             .doOnCompleted { | ||||
|   | ||||
| @@ -3,6 +3,7 @@ package eu.kanade.tachiyomi.ui.browse.source.globalsearch | ||||
| import android.os.Bundle | ||||
| import eu.kanade.tachiyomi.data.database.DatabaseHelper | ||||
| import eu.kanade.tachiyomi.data.database.models.Manga | ||||
| import eu.kanade.tachiyomi.data.database.models.toMangaInfo | ||||
| import eu.kanade.tachiyomi.data.preference.PreferencesHelper | ||||
| import eu.kanade.tachiyomi.extension.ExtensionManager | ||||
| import eu.kanade.tachiyomi.source.CatalogueSource | ||||
| @@ -11,8 +12,10 @@ import eu.kanade.tachiyomi.source.SourceManager | ||||
| import eu.kanade.tachiyomi.source.model.FilterList | ||||
| import eu.kanade.tachiyomi.source.model.MangasPage | ||||
| import eu.kanade.tachiyomi.source.model.SManga | ||||
| import eu.kanade.tachiyomi.source.model.toSManga | ||||
| import eu.kanade.tachiyomi.ui.base.presenter.BasePresenter | ||||
| import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourcePresenter | ||||
| import eu.kanade.tachiyomi.util.lang.runAsObservable | ||||
| import rx.Observable | ||||
| import rx.Subscription | ||||
| import rx.android.schedulers.AndroidSchedulers | ||||
| @@ -247,13 +250,13 @@ open class GlobalSearchPresenter( | ||||
|      * @return an observable of the manga to initialize | ||||
|      */ | ||||
|     private fun getMangaDetailsObservable(manga: Manga, source: Source): Observable<Manga> { | ||||
|         return source.fetchMangaDetails(manga) | ||||
|             .flatMap { networkManga -> | ||||
|                 manga.copyFrom(networkManga) | ||||
|                 manga.initialized = true | ||||
|                 db.insertManga(manga).executeAsBlocking() | ||||
|                 Observable.just(manga) | ||||
|             } | ||||
|         return runAsObservable({ | ||||
|             val networkManga = source.getMangaDetails(manga.toMangaInfo()) | ||||
|             manga.copyFrom(networkManga.toSManga()) | ||||
|             manga.initialized = true | ||||
|             db.insertManga(manga).executeAsBlocking() | ||||
|             manga | ||||
|         }) | ||||
|             .onErrorResumeNext { Observable.just(manga) } | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -10,12 +10,14 @@ import eu.kanade.tachiyomi.data.database.models.Category | ||||
| import eu.kanade.tachiyomi.data.database.models.Chapter | ||||
| import eu.kanade.tachiyomi.data.database.models.Manga | ||||
| import eu.kanade.tachiyomi.data.database.models.MangaCategory | ||||
| import eu.kanade.tachiyomi.data.database.models.toMangaInfo | ||||
| import eu.kanade.tachiyomi.data.download.DownloadManager | ||||
| import eu.kanade.tachiyomi.data.download.model.Download | ||||
| import eu.kanade.tachiyomi.data.preference.PreferencesHelper | ||||
| import eu.kanade.tachiyomi.data.track.TrackManager | ||||
| import eu.kanade.tachiyomi.source.LocalSource | ||||
| import eu.kanade.tachiyomi.source.Source | ||||
| import eu.kanade.tachiyomi.source.model.toSManga | ||||
| import eu.kanade.tachiyomi.ui.base.presenter.BasePresenter | ||||
| import eu.kanade.tachiyomi.ui.manga.chapter.ChapterItem | ||||
| import eu.kanade.tachiyomi.util.chapter.ChapterSettingsHelper | ||||
| @@ -24,6 +26,7 @@ import eu.kanade.tachiyomi.util.isLocal | ||||
| import eu.kanade.tachiyomi.util.lang.await | ||||
| import eu.kanade.tachiyomi.util.lang.isNullOrUnsubscribed | ||||
| import eu.kanade.tachiyomi.util.lang.launchIO | ||||
| import eu.kanade.tachiyomi.util.lang.runAsObservable | ||||
| import eu.kanade.tachiyomi.util.prepUpdateCover | ||||
| import eu.kanade.tachiyomi.util.removeCovers | ||||
| import eu.kanade.tachiyomi.util.shouldDownloadNewChapters | ||||
| @@ -157,14 +160,15 @@ class MangaPresenter( | ||||
|      */ | ||||
|     fun fetchMangaFromSource(manualFetch: Boolean = false) { | ||||
|         if (!fetchMangaSubscription.isNullOrUnsubscribed()) return | ||||
|         fetchMangaSubscription = Observable.defer { source.fetchMangaDetails(manga) } | ||||
|             .map { networkManga -> | ||||
|                 manga.prepUpdateCover(coverCache, networkManga, manualFetch) | ||||
|                 manga.copyFrom(networkManga) | ||||
|                 manga.initialized = true | ||||
|                 db.insertManga(manga).executeAsBlocking() | ||||
|                 manga | ||||
|             } | ||||
|         fetchMangaSubscription = runAsObservable({ | ||||
|             val networkManga = source.getMangaDetails(manga.toMangaInfo()) | ||||
|             val sManga = networkManga.toSManga() | ||||
|             manga.prepUpdateCover(coverCache, sManga, manualFetch) | ||||
|             manga.copyFrom(sManga) | ||||
|             manga.initialized = true | ||||
|             db.insertManga(manga).executeAsBlocking() | ||||
|             manga | ||||
|         }) | ||||
|             .subscribeOn(Schedulers.io()) | ||||
|             .observeOn(AndroidSchedulers.mainThread()) | ||||
|             .subscribeFirst( | ||||
|   | ||||
		Reference in New Issue
	
	Block a user