diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/NHentai.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/NHentai.kt index 6aa753b25..ae82a562c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/NHentai.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/NHentai.kt @@ -163,7 +163,8 @@ class NHentai(context: Context) : HttpSource() { listOf(SChapter.create().apply { url = manga.url name = "Chapter" - date_upload = it.uploadDate ?: 0 + //TODO Get this working later +// date_upload = it.uploadDate ?: 0 chapter_number = 1f }) }!! diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryView.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryView.kt index 092c675ef..dd7d2eaf2 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryView.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryView.kt @@ -118,7 +118,7 @@ class LibraryCategoryView @JvmOverloads constructor(context: Context, attrs: Att searchSubscription = presenter .searchSubject - .debounce(100L, TimeUnit.MILLISECONDS) + .debounce(10L, TimeUnit.MILLISECONDS) .subscribe { text -> //Debounce search (EH) adapter.asyncSearchText = text?.trim()?.toLowerCase() adapter.updateDataSet() diff --git a/app/src/main/java/exh/metadata/MetadataHelper.kt b/app/src/main/java/exh/metadata/MetadataHelper.kt index 06d44f557..197d20766 100644 --- a/app/src/main/java/exh/metadata/MetadataHelper.kt +++ b/app/src/main/java/exh/metadata/MetadataHelper.kt @@ -54,13 +54,6 @@ class MetadataHelper { exGalleryBook().read(it) } - fun hasMetadata(url: String, exh: Boolean): Boolean - = ExGalleryMetadata().let { - it.url = url - it.exh = exh - return exGalleryBook().exist(it.galleryUniqueIdentifier()) - } - //TODO Problem, our new metadata structures are incompatible. //TODO We will probably just delete the old metadata structures fun exGalleryBook() = Paper.book("gallery-ex")!! diff --git a/app/src/main/java/exh/metadata/MetdataCopier.kt b/app/src/main/java/exh/metadata/MetdataCopier.kt index e268a179e..ed5744983 100644 --- a/app/src/main/java/exh/metadata/MetdataCopier.kt +++ b/app/src/main/java/exh/metadata/MetdataCopier.kt @@ -3,6 +3,8 @@ package exh.metadata import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.preference.getOrDefault import eu.kanade.tachiyomi.source.model.SManga +import eu.kanade.tachiyomi.source.online.all.EHentai +import eu.kanade.tachiyomi.source.online.all.EHentaiMetadata import eu.kanade.tachiyomi.source.online.all.PervEden import exh.metadata.models.* import exh.plusAssign @@ -194,6 +196,16 @@ fun NHentaiMetadata.copyTo(manga: SManga) { .joinToString(separator = "\n") } +fun SearchableGalleryMetadata.genericCopyTo(manga: SManga): Boolean { + when(this) { + is ExGalleryMetadata -> this.copyTo(manga) + is PervEdenGalleryMetadata -> this.copyTo(manga) + is NHentaiMetadata -> this.copyTo(manga) + else -> return false + } + return true +} + private fun buildTagsDescription(metadata: SearchableGalleryMetadata) = StringBuilder("Tags:\n").apply { //BiConsumer only available in Java 8, don't bother calling forEach directly on 'tags' diff --git a/app/src/main/java/exh/search/Text.kt b/app/src/main/java/exh/search/Text.kt index 5db17ae01..5bccb2671 100644 --- a/app/src/main/java/exh/search/Text.kt +++ b/app/src/main/java/exh/search/Text.kt @@ -8,6 +8,7 @@ class Text: QueryComponent() { private var regex: VerbalExpression? = null private var lenientRegex: VerbalExpression? = null + private var rawText: String? = null fun asRegex(): VerbalExpression { if(regex == null) { @@ -35,9 +36,14 @@ class Text: QueryComponent() { return builder } - fun rawTextOnly() = components - .filter { it is StringTextComponent } - .joinToString(separator = "", transform = { - (it as StringTextComponent).value - }) + fun rawTextOnly() = if(rawText != null) + rawText!! + else { + rawText = components + .filter { it is StringTextComponent } + .joinToString(separator = "", transform = { + (it as StringTextComponent).value + }) + rawText!! + } } diff --git a/app/src/main/java/exh/ui/migration/MetadataFetchDialog.kt b/app/src/main/java/exh/ui/migration/MetadataFetchDialog.kt index 4785f51f5..f02b55501 100644 --- a/app/src/main/java/exh/ui/migration/MetadataFetchDialog.kt +++ b/app/src/main/java/exh/ui/migration/MetadataFetchDialog.kt @@ -10,8 +10,10 @@ import eu.kanade.tachiyomi.data.preference.getOrDefault import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.source.online.all.EHentai import exh.isExSource +import exh.isLewdSource import exh.metadata.MetadataHelper import exh.metadata.copyTo +import exh.metadata.genericCopyTo import timber.log.Timber import uy.kohesive.injekt.injectLazy import kotlin.concurrent.thread @@ -44,8 +46,8 @@ class MetadataFetchDialog { val libraryMangas = db.getLibraryMangas() .executeAsBlocking() .filter { - it.source <= 2 - && !metadataHelper.hasMetadata(it.url, isExSource(it.source)) + isLewdSource(it.source) + && metadataHelper.fetchMetadata(it.url, it.source) == null } context.runOnUiThread { @@ -61,9 +63,8 @@ class MetadataFetchDialog { try { val source = sourceManager.get(manga.source) source?.let { - it as EHentai manga.copyFrom(it.fetchMangaDetails(manga).toBlocking().first()) - metadataHelper.fetchEhMetadata(manga.url, it.exh)?.copyTo(manga) + metadataHelper.fetchMetadata(manga.url, manga.source)?.genericCopyTo(manga) } } catch(t: Throwable) { Timber.e(t, "Could not migrate manga!")