komikku/app/src/main/java/exh/EHSourceHelpers.kt

62 lines
2.1 KiB
Kotlin
Raw Normal View History

package exh
import eu.kanade.tachiyomi.source.Source
import eu.kanade.tachiyomi.source.SourceManager
2019-04-06 14:16:48 +02:00
import eu.kanade.tachiyomi.source.online.english.HentaiCafe
2019-08-08 19:31:47 +02:00
import eu.kanade.tachiyomi.source.online.english.Pururin
2020-02-22 11:12:30 +01:00
import eu.kanade.tachiyomi.source.online.english.Tsumino
/**
* Source helpers
*/
2019-04-12 09:12:16 +02:00
// Lewd source IDs
const val LEWD_SOURCE_SERIES = 6900L
const val EH_SOURCE_ID = LEWD_SOURCE_SERIES + 1
const val EXH_SOURCE_ID = LEWD_SOURCE_SERIES + 2
const val PERV_EDEN_EN_SOURCE_ID = LEWD_SOURCE_SERIES + 5
const val PERV_EDEN_IT_SOURCE_ID = LEWD_SOURCE_SERIES + 6
const val NHENTAI_SOURCE_ID = LEWD_SOURCE_SERIES + 7
2019-04-12 09:12:16 +02:00
val HENTAI_CAFE_SOURCE_ID = delegatedSourceId<HentaiCafe>()
val PURURIN_SOURCE_ID = delegatedSourceId<Pururin>()
2020-02-22 11:12:30 +01:00
val TSUMINO_SOURCE_ID = delegatedSourceId<Tsumino>()
const val HITOMI_SOURCE_ID = LEWD_SOURCE_SERIES + 10
2019-08-09 10:40:30 +02:00
const val EIGHTMUSES_SOURCE_ID = LEWD_SOURCE_SERIES + 11
2019-08-11 02:23:43 +02:00
const val HBROWSE_SOURCE_ID = LEWD_SOURCE_SERIES + 12
2019-07-30 07:41:30 +02:00
const val MERGED_SOURCE_ID = LEWD_SOURCE_SERIES + 69
2017-12-08 04:25:27 +01:00
2019-04-12 09:12:16 +02:00
private val DELEGATED_LEWD_SOURCES = listOf(
2020-05-02 06:46:24 +02:00
HentaiCafe::class,
Pururin::class,
Tsumino::class
2019-04-12 09:12:16 +02:00
)
val LIBRARY_UPDATE_EXCLUDED_SOURCES = listOf(
2020-05-02 06:46:24 +02:00
EH_SOURCE_ID,
EXH_SOURCE_ID,
NHENTAI_SOURCE_ID,
HENTAI_CAFE_SOURCE_ID,
TSUMINO_SOURCE_ID,
HITOMI_SOURCE_ID,
PURURIN_SOURCE_ID
)
private inline fun <reified T> delegatedSourceId(): Long? {
2019-04-12 09:12:16 +02:00
return SourceManager.DELEGATED_SOURCES.entries.find {
it.value.newSourceClass == T::class
}?.value?.sourceId
2019-04-12 09:12:16 +02:00
}
// Used to speed up isLewdSource
val lewdDelegatedSourceIds = SourceManager.currentDelegatedSources.filter {
!it.value.factory && it.value.newSourceClass in DELEGATED_LEWD_SOURCES
}.map { it.value.sourceId }.sorted()
// This method MUST be fast!
fun isLewdSource(source: Long) = source in 6900..6999 ||
2020-05-02 06:46:24 +02:00
lewdDelegatedSourceIds.binarySearch(source) >= 0
fun Source.isEhBasedSource() = id == EH_SOURCE_ID || id == EXH_SOURCE_ID
fun Source.isNamespaceSource() = id == EH_SOURCE_ID || id == EXH_SOURCE_ID || id == NHENTAI_SOURCE_ID || id == HITOMI_SOURCE_ID || id == PURURIN_SOURCE_ID || id == TSUMINO_SOURCE_ID