Lewd Filter upgrade, almost finished
This commit is contained in:
parent
6da22ea8b0
commit
e4d8fea138
@ -30,7 +30,7 @@ import eu.kanade.tachiyomi.util.lang.launchIO
|
|||||||
import eu.kanade.tachiyomi.util.removeCovers
|
import eu.kanade.tachiyomi.util.removeCovers
|
||||||
import eu.kanade.tachiyomi.util.updateCoverLastModified
|
import eu.kanade.tachiyomi.util.updateCoverLastModified
|
||||||
import exh.favorites.FavoritesSyncHelper
|
import exh.favorites.FavoritesSyncHelper
|
||||||
import exh.isLewdSource
|
import exh.util.isLewd
|
||||||
import java.util.ArrayList
|
import java.util.ArrayList
|
||||||
import java.util.Collections
|
import java.util.Collections
|
||||||
import java.util.Comparator
|
import java.util.Comparator
|
||||||
@ -154,7 +154,7 @@ class LibraryPresenter(
|
|||||||
else if (filterTracked == STATE_EXCLUDE && tracks.isNotEmpty()) return@f false
|
else if (filterTracked == STATE_EXCLUDE && tracks.isNotEmpty()) return@f false
|
||||||
}
|
}
|
||||||
if (filterLewd != STATE_IGNORE) {
|
if (filterLewd != STATE_IGNORE) {
|
||||||
val isLewd = isLewdSource(item.manga.source)
|
val isLewd = item.manga.isLewd()
|
||||||
if (filterLewd == STATE_INCLUDE && !isLewd) return@f false
|
if (filterLewd == STATE_INCLUDE && !isLewd) return@f false
|
||||||
else if (filterLewd == STATE_EXCLUDE && isLewd) return@f false
|
else if (filterLewd == STATE_EXCLUDE && isLewd) return@f false
|
||||||
}
|
}
|
||||||
|
@ -48,7 +48,7 @@ private inline fun <reified T> delegatedSourceId(): Long {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Used to speed up isLewdSource
|
// Used to speed up isLewdSource
|
||||||
private val lewdDelegatedSourceIds = SourceManager.DELEGATED_SOURCES.filter {
|
val lewdDelegatedSourceIds = SourceManager.DELEGATED_SOURCES.filter {
|
||||||
it.value.newSourceClass in DELEGATED_LEWD_SOURCES
|
it.value.newSourceClass in DELEGATED_LEWD_SOURCES
|
||||||
}.map { it.value.sourceId }.sorted()
|
}.map { it.value.sourceId }.sorted()
|
||||||
|
|
||||||
|
46
app/src/main/java/exh/util/LewdMangaChecker.kt
Normal file
46
app/src/main/java/exh/util/LewdMangaChecker.kt
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
package exh.util
|
||||||
|
|
||||||
|
import android.util.Log
|
||||||
|
import eu.kanade.tachiyomi.data.database.models.Manga
|
||||||
|
import eu.kanade.tachiyomi.source.SourceManager
|
||||||
|
import exh.EH_SOURCE_ID
|
||||||
|
import exh.EXH_SOURCE_ID
|
||||||
|
import exh.NHENTAI_SOURCE_ID
|
||||||
|
import exh.lewdDelegatedSourceIds
|
||||||
|
import java.util.Locale
|
||||||
|
import uy.kohesive.injekt.Injekt
|
||||||
|
import uy.kohesive.injekt.api.get
|
||||||
|
|
||||||
|
fun Manga.isLewd(): Boolean {
|
||||||
|
val sourceName = Injekt.get<SourceManager>().getOrStub(source).name
|
||||||
|
val currentTags =
|
||||||
|
genre?.split(",")?.map { it.trim().toLowerCase(Locale.US) } ?: emptyList()
|
||||||
|
val meta =
|
||||||
|
|
||||||
|
Log.d("Lewd", currentTags.joinToString(separator = "\n"))
|
||||||
|
|
||||||
|
if (source == EH_SOURCE_ID || source == EXH_SOURCE_ID || source == NHENTAI_SOURCE_ID) {
|
||||||
|
return !currentTags.any { tag -> isNonHentaiTag(tag) }
|
||||||
|
}
|
||||||
|
|
||||||
|
return source in 6905L..6913L ||
|
||||||
|
source in lewdDelegatedSourceIds ||
|
||||||
|
isHentaiSource(sourceName) ||
|
||||||
|
currentTags.any { tag -> isHentaiTag(tag) }
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun isNonHentaiTag(tag: String): Boolean {
|
||||||
|
return tag.contains("non-h", true)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun isHentaiTag(tag: String): Boolean {
|
||||||
|
return tag.contains("hentai", true) ||
|
||||||
|
tag.contains("adult", true)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun isHentaiSource(source: String): Boolean {
|
||||||
|
return source.contains("hentai cafe", true) ||
|
||||||
|
source.contains("allporncomic", true) ||
|
||||||
|
source.contains("hentai2read", true) ||
|
||||||
|
source.contains("hentainexus", true)
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user