mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-03 23:58:55 +01:00 
			
		
		
		
	Release version v6.1.4
Offload metadata check to background thread Add search cache
This commit is contained in:
		@@ -2,6 +2,7 @@ package exh.metadata
 | 
			
		||||
 | 
			
		||||
import eu.kanade.tachiyomi.data.database.models.Manga
 | 
			
		||||
import eu.kanade.tachiyomi.source.model.SManga
 | 
			
		||||
import eu.kanade.tachiyomi.ui.library.LibraryItem
 | 
			
		||||
import exh.*
 | 
			
		||||
import exh.metadata.models.ExGalleryMetadata
 | 
			
		||||
import exh.metadata.models.NHentaiMetadata
 | 
			
		||||
@@ -116,20 +117,32 @@ fun Realm.queryMetadataFromManga(manga: Manga,
 | 
			
		||||
        else -> throw IllegalArgumentException("Unknown source type!")
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
fun Realm.syncMangaIds(mangas: List<Manga>) {
 | 
			
		||||
fun Realm.syncMangaIds(mangas: List<LibraryItem>) {
 | 
			
		||||
    Timber.d("--> EH: Begin syncing ${mangas.size} manga IDs...")
 | 
			
		||||
    executeTransaction {
 | 
			
		||||
        mangas.filter {
 | 
			
		||||
            isLewdSource(it.source)
 | 
			
		||||
            isLewdSource(it.manga.source)
 | 
			
		||||
        }.forEach { manga ->
 | 
			
		||||
            try {
 | 
			
		||||
                queryMetadataFromManga(manga).findFirst()?.let { meta ->
 | 
			
		||||
                    meta.mangaId = manga.id
 | 
			
		||||
                }
 | 
			
		||||
                manga.hasMetadata =
 | 
			
		||||
                        queryMetadataFromManga(manga.manga).findFirst()?.let { meta ->
 | 
			
		||||
                            meta.mangaId = manga.manga.id
 | 
			
		||||
                            true
 | 
			
		||||
                        } ?: false
 | 
			
		||||
            } catch(e: Exception) {
 | 
			
		||||
                Timber.w(e, "Error syncing manga IDs! Ignoring...")
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    Timber.d("--> EH: Finish syncing ${mangas.size} manga IDs!")
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
val Manga.metadataClass
 | 
			
		||||
    get() = when (source) {
 | 
			
		||||
        EH_SOURCE_ID,
 | 
			
		||||
        EXH_SOURCE_ID -> ExGalleryMetadata::class
 | 
			
		||||
        PERV_EDEN_IT_SOURCE_ID,
 | 
			
		||||
        PERV_EDEN_EN_SOURCE_ID -> PervEdenGalleryMetadata::class
 | 
			
		||||
        NHENTAI_SOURCE_ID -> NHentaiMetadata::class
 | 
			
		||||
        else -> null
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user