Rename LewdSource to MetadataSource to account for that Metadata will not always be for lewd sources

This commit is contained in:
Jobobby04 2020-08-19 18:45:56 -04:00
parent 64bb34b50d
commit 294ade035e
15 changed files with 40 additions and 40 deletions

View File

@ -22,7 +22,7 @@ import uy.kohesive.injekt.api.get
/**
* LEWD!
*/
interface LewdSource<M : RaisedSearchMetadata, I> : CatalogueSource {
interface MetadataSource<M : RaisedSearchMetadata, I> : CatalogueSource {
val db: DatabaseHelper get() = Injekt.get()
/**
@ -111,13 +111,13 @@ interface LewdSource<M : RaisedSearchMetadata, I> : CatalogueSource {
val SChapter.mangaId get() = (this as? Chapter)?.manga_id
companion object {
fun Source.isLewdSource() = (this is LewdSource<*, *> || (this is EnhancedHttpSource && this.enhancedSource is LewdSource<*, *>))
fun Source.isMetadataSource() = (this is MetadataSource<*, *> || (this is EnhancedHttpSource && this.enhancedSource is MetadataSource<*, *>))
fun Source.getLewdSource(): LewdSource<*, *>? {
fun Source.getMetadataSource(): MetadataSource<*, *>? {
return when {
!this.isLewdSource() -> null
this is LewdSource<*, *> -> this
this is EnhancedHttpSource && this.enhancedSource is LewdSource<*, *> -> this.enhancedSource
!this.isMetadataSource() -> null
this is MetadataSource<*, *> -> this
this is EnhancedHttpSource && this.enhancedSource is MetadataSource<*, *> -> this.enhancedSource
else -> null
}
}

View File

@ -25,7 +25,7 @@ import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.HttpSource
import eu.kanade.tachiyomi.source.online.LewdSource
import eu.kanade.tachiyomi.source.online.MetadataSource
import eu.kanade.tachiyomi.source.online.UrlImportableSource
import eu.kanade.tachiyomi.ui.manga.MangaController
import eu.kanade.tachiyomi.util.asJsoup
@ -77,7 +77,7 @@ class EHentai(
override val id: Long,
val exh: Boolean,
val context: Context
) : HttpSource(), LewdSource<EHentaiSearchMetadata, Document>, UrlImportableSource {
) : HttpSource(), MetadataSource<EHentaiSearchMetadata, Document>, UrlImportableSource {
override val metaClass = EHentaiSearchMetadata::class
private val domain: String

View File

@ -8,7 +8,7 @@ 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.online.HttpSource
import eu.kanade.tachiyomi.source.online.LewdSource
import eu.kanade.tachiyomi.source.online.MetadataSource
import eu.kanade.tachiyomi.source.online.UrlImportableSource
import eu.kanade.tachiyomi.ui.manga.MangaController
import eu.kanade.tachiyomi.util.asJsoup
@ -25,7 +25,7 @@ import rx.Observable
class Hitomi(delegate: HttpSource, val context: Context) :
DelegatedHttpSource(delegate),
LewdSource<HitomiSearchMetadata, Document>,
MetadataSource<HitomiSearchMetadata, Document>,
UrlImportableSource {
override val metaClass = HitomiSearchMetadata::class
override val lang = if (id == otherId) "all" else delegate.lang

View File

@ -13,7 +13,7 @@ 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.online.HttpSource
import eu.kanade.tachiyomi.source.online.LewdSource
import eu.kanade.tachiyomi.source.online.MetadataSource
import eu.kanade.tachiyomi.source.online.UrlImportableSource
import eu.kanade.tachiyomi.ui.manga.MangaController
import exh.metadata.metadata.NHentaiSearchMetadata
@ -27,7 +27,7 @@ import rx.Observable
class NHentai(delegate: HttpSource, val context: Context) :
DelegatedHttpSource(delegate),
LewdSource<NHentaiSearchMetadata, Response>,
MetadataSource<NHentaiSearchMetadata, Response>,
UrlImportableSource {
override val metaClass = NHentaiSearchMetadata::class
override val lang = if (id == otherId) "all" else delegate.lang

View File

@ -7,7 +7,7 @@ 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.online.HttpSource
import eu.kanade.tachiyomi.source.online.LewdSource
import eu.kanade.tachiyomi.source.online.MetadataSource
import eu.kanade.tachiyomi.source.online.UrlImportableSource
import eu.kanade.tachiyomi.ui.manga.MangaController
import eu.kanade.tachiyomi.util.asJsoup
@ -24,7 +24,7 @@ import rx.Observable
class PervEden(delegate: HttpSource, val context: Context) :
DelegatedHttpSource(delegate),
LewdSource<PervEdenSearchMetadata, Document>,
MetadataSource<PervEdenSearchMetadata, Document>,
UrlImportableSource {
override val metaClass = PervEdenSearchMetadata::class
override val lang = delegate.lang

View File

@ -7,7 +7,7 @@ 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.online.HttpSource
import eu.kanade.tachiyomi.source.online.LewdSource
import eu.kanade.tachiyomi.source.online.MetadataSource
import eu.kanade.tachiyomi.source.online.UrlImportableSource
import eu.kanade.tachiyomi.ui.manga.MangaController
import eu.kanade.tachiyomi.util.asJsoup
@ -22,7 +22,7 @@ import rx.Observable
class EightMuses(delegate: HttpSource, val context: Context) :
DelegatedHttpSource(delegate),
LewdSource<EightMusesSearchMetadata, Document>,
MetadataSource<EightMusesSearchMetadata, Document>,
UrlImportableSource {
override val metaClass = EightMusesSearchMetadata::class
override val lang = "en"

View File

@ -7,7 +7,7 @@ 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.online.HttpSource
import eu.kanade.tachiyomi.source.online.LewdSource
import eu.kanade.tachiyomi.source.online.MetadataSource
import eu.kanade.tachiyomi.source.online.UrlImportableSource
import eu.kanade.tachiyomi.ui.manga.MangaController
import eu.kanade.tachiyomi.util.asJsoup
@ -22,7 +22,7 @@ import rx.Observable
class HBrowse(delegate: HttpSource, val context: Context) :
DelegatedHttpSource(delegate),
LewdSource<HBrowseSearchMetadata, Document>,
MetadataSource<HBrowseSearchMetadata, Document>,
UrlImportableSource {
override val metaClass = HBrowseSearchMetadata::class
override val lang = "en"

View File

@ -7,7 +7,7 @@ import eu.kanade.tachiyomi.source.model.FilterList
import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.HttpSource
import eu.kanade.tachiyomi.source.online.LewdSource
import eu.kanade.tachiyomi.source.online.MetadataSource
import eu.kanade.tachiyomi.source.online.UrlImportableSource
import eu.kanade.tachiyomi.ui.manga.MangaController
import eu.kanade.tachiyomi.util.asJsoup
@ -24,7 +24,7 @@ import rx.Observable
class HentaiCafe(delegate: HttpSource, val context: Context) :
DelegatedHttpSource(delegate),
LewdSource<HentaiCafeSearchMetadata, Document>,
MetadataSource<HentaiCafeSearchMetadata, Document>,
UrlImportableSource {
/**
* An ISO 639-1 compliant language code (two letters in lower case).

View File

@ -7,7 +7,7 @@ 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.online.HttpSource
import eu.kanade.tachiyomi.source.online.LewdSource
import eu.kanade.tachiyomi.source.online.MetadataSource
import eu.kanade.tachiyomi.source.online.UrlImportableSource
import eu.kanade.tachiyomi.ui.manga.MangaController
import eu.kanade.tachiyomi.util.asJsoup
@ -24,7 +24,7 @@ import rx.Observable
class Pururin(delegate: HttpSource, val context: Context) :
DelegatedHttpSource(delegate),
LewdSource<PururinSearchMetadata, Document>,
MetadataSource<PururinSearchMetadata, Document>,
UrlImportableSource {
/**
* An ISO 639-1 compliant language code (two letters in lower case).

View File

@ -7,7 +7,7 @@ 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.online.HttpSource
import eu.kanade.tachiyomi.source.online.LewdSource
import eu.kanade.tachiyomi.source.online.MetadataSource
import eu.kanade.tachiyomi.source.online.UrlImportableSource
import eu.kanade.tachiyomi.ui.manga.MangaController
import eu.kanade.tachiyomi.util.asJsoup
@ -27,7 +27,7 @@ import rx.Observable
class Tsumino(delegate: HttpSource, val context: Context) :
DelegatedHttpSource(delegate),
LewdSource<TsuminoSearchMetadata, Document>,
MetadataSource<TsuminoSearchMetadata, Document>,
UrlImportableSource {
override val metaClass = TsuminoSearchMetadata::class
override val lang = "en"

View File

@ -11,7 +11,7 @@ import eu.kanade.tachiyomi.data.track.TrackManager
import eu.kanade.tachiyomi.source.SourceManager
import eu.kanade.tachiyomi.source.model.Filter
import eu.kanade.tachiyomi.ui.category.CategoryAdapter
import exh.isLewdSource
import exh.isMetadataSource
import exh.metadata.sql.models.SearchTag
import exh.metadata.sql.models.SearchTitle
import exh.search.Namespace
@ -131,7 +131,7 @@ class LibraryCategoryAdapter(view: LibraryCategoryView, val controller: LibraryC
// Flow the mangas to allow cancellation of this filter operation
mangas.asFlow().cancellable().filter { item ->
if (isLewdSource(item.manga.source)) {
if (isMetadataSource(item.manga.source)) {
val mangaId = item.manga.id ?: -1
if (mangaWithMetaIds.binarySearch(mangaId) < 0) {
// No meta? Filter using title

View File

@ -50,7 +50,7 @@ import eu.kanade.tachiyomi.source.LocalSource
import eu.kanade.tachiyomi.source.Source
import eu.kanade.tachiyomi.source.SourceManager
import eu.kanade.tachiyomi.source.online.HttpSource
import eu.kanade.tachiyomi.source.online.LewdSource.Companion.getLewdSource
import eu.kanade.tachiyomi.source.online.MetadataSource.Companion.getMetadataSource
import eu.kanade.tachiyomi.ui.base.controller.FabController
import eu.kanade.tachiyomi.ui.base.controller.NucleusController
import eu.kanade.tachiyomi.ui.base.controller.ToolbarLiftOnScrollController
@ -247,7 +247,7 @@ class MangaController :
adapters += mangaInfoAdapter
val thisSourceAsLewdSource = presenter.source.getLewdSource()
val thisSourceAsLewdSource = presenter.source.getMetadataSource()
if (thisSourceAsLewdSource != null) {
mangaMetaInfoAdapter = thisSourceAsLewdSource.getDescriptionAdapter(this)
mangaMetaInfoAdapter?.let { adapters += it }
@ -460,7 +460,7 @@ class MangaController :
// SY -->
fun onNextMetaInfo(flatMetadata: FlatMetadata) {
val thisSourceAsLewdSource = presenter.source.getLewdSource()
val thisSourceAsLewdSource = presenter.source.getMetadataSource()
if (thisSourceAsLewdSource != null) {
presenter.meta = flatMetadata.raise(thisSourceAsLewdSource.metaClass)
mangaMetaInfoAdapter?.notifyDataSetChanged()

View File

@ -19,8 +19,8 @@ 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.online.LewdSource
import eu.kanade.tachiyomi.source.online.LewdSource.Companion.isLewdSource
import eu.kanade.tachiyomi.source.online.MetadataSource
import eu.kanade.tachiyomi.source.online.MetadataSource.Companion.isMetadataSource
import eu.kanade.tachiyomi.source.online.all.MergedSource
import eu.kanade.tachiyomi.ui.base.presenter.BasePresenter
import eu.kanade.tachiyomi.ui.manga.chapter.ChapterItem
@ -117,7 +117,7 @@ class MangaPresenter(
super.onCreate(savedState)
// SY -->
if (manga.initialized && source.isLewdSource()) {
if (manga.initialized && source.isMetadataSource()) {
getMangaMetaObservable().subscribeLatestCache({ view, flatMetadata -> if (flatMetadata != null) view.onNextMetaInfo(flatMetadata) else Timber.d("Invalid metadata") })
}
// SY <--
@ -235,7 +235,7 @@ class MangaPresenter(
}
// SY -->
.doOnNext {
if (source is LewdSource<*, *> || (source is EnhancedHttpSource && source.enhancedSource is LewdSource<*, *>)) {
if (source is MetadataSource<*, *> || (source is EnhancedHttpSource && source.enhancedSource is MetadataSource<*, *>)) {
getMangaMetaObservable().subscribeLatestCache({ view, flatMetadata -> if (flatMetadata != null) view.onNextMetaInfo(flatMetadata) else Timber.d("Invalid metadata") })
}
}

View File

@ -29,7 +29,7 @@ const val EIGHTMUSES_SOURCE_ID = 1802675169972965535
const val HBROWSE_SOURCE_ID = 1401584337232758222
const val MERGED_SOURCE_ID = LEWD_SOURCE_SERIES + 69
private val DELEGATED_LEWD_SOURCES = listOf(
private val DELEGATED_METADATA_SOURCES = listOf(
HentaiCafe::class,
Pururin::class,
Tsumino::class,
@ -45,9 +45,9 @@ private val nHentaiClass = listOf(NHentai::class)
private val mangaDexClass = listOf(MangaDex::class)
// Used to speed up isLewdSource
val lewdDelegatedSourceIds by lazy {
val metadataDelegatedSourceIds by lazy {
SourceManager.currentDelegatedSources.filter {
it.value.newSourceClass in DELEGATED_LEWD_SOURCES
it.value.newSourceClass in DELEGATED_METADATA_SOURCES
}.map { it.value.sourceId }.sorted()
}
@ -70,8 +70,8 @@ val mangaDexSourceIds by lazy {
}
// This method MUST be fast!
fun isLewdSource(source: Long) = source in 6900..6999 ||
lewdDelegatedSourceIds.binarySearch(source) >= 0
fun isMetadataSource(source: Long) = source in 6900..6999 ||
metadataDelegatedSourceIds.binarySearch(source) >= 0
val LIBRARY_UPDATE_EXCLUDED_SOURCES by lazy {
listOf(

View File

@ -10,7 +10,7 @@ import eu.kanade.tachiyomi.data.database.models.Manga
import eu.kanade.tachiyomi.databinding.MetadataViewControllerBinding
import eu.kanade.tachiyomi.source.Source
import eu.kanade.tachiyomi.source.SourceManager
import eu.kanade.tachiyomi.source.online.LewdSource.Companion.getLewdSource
import eu.kanade.tachiyomi.source.online.MetadataSource.Companion.getMetadataSource
import eu.kanade.tachiyomi.ui.base.controller.NucleusController
import eu.kanade.tachiyomi.ui.manga.MangaController
import exh.metadata.metadata.base.FlatMetadata
@ -73,7 +73,7 @@ class MetadataViewController : NucleusController<MetadataViewControllerBinding,
}
fun onNextMetaInfo(flatMetadata: FlatMetadata) {
val thisSourceAsLewdSource = presenter.source.getLewdSource()
val thisSourceAsLewdSource = presenter.source.getMetadataSource()
if (thisSourceAsLewdSource != null) {
presenter.meta = flatMetadata.raise(thisSourceAsLewdSource.metaClass)
}