Rename LewdSource to MetadataSource to account for that Metadata will not always be for lewd sources
This commit is contained in:
parent
64bb34b50d
commit
294ade035e
@ -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
|
||||
}
|
||||
}
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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).
|
||||
|
@ -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).
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
@ -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()
|
||||
|
@ -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") })
|
||||
}
|
||||
}
|
||||
|
@ -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(
|
||||
|
@ -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)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user