fix tag detection

This commit is contained in:
Jobobby04 2020-05-19 00:19:43 -04:00
parent 07a70d8c92
commit 7e65e0de0e

View File

@ -1,6 +1,7 @@
package exh.util package exh.util
import android.content.Context import android.content.Context
import android.util.Log
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.Manga
import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.source.SourceManager
@ -28,17 +29,24 @@ fun Manga.mangaType(): MangaType {
val sourceName = Injekt.get<SourceManager>().getOrStub(source).name val sourceName = Injekt.get<SourceManager>().getOrStub(source).name
val currentTags = val currentTags =
genre?.split(",")?.map { it.trim().toLowerCase(Locale.US) } ?: emptyList() genre?.split(",")?.map { it.trim().toLowerCase(Locale.US) } ?: emptyList()
Log.d("MangaType", currentTags.joinToString(separator = "\n"))
return if (currentTags.any { tag -> tag.contains("japanese", ignoreCase = true) || isMangaTag(tag) }) { return if (currentTags.any { tag -> tag.contains("japanese", ignoreCase = true) || isMangaTag(tag) }) {
Log.d("MangaType", "isManga")
MangaType.TYPE_MANGA MangaType.TYPE_MANGA
} else if (currentTags.any { tag -> tag.contains("english", ignoreCase = true) || isComicTag(tag) } || isComicSource(sourceName)) { } else if (currentTags.any { tag -> tag.contains("english", ignoreCase = true) || isComicTag(tag) } || isComicSource(sourceName)) {
Log.d("MangaType", "isComic")
MangaType.TYPE_COMIC MangaType.TYPE_COMIC
} else if (currentTags.any { tag -> tag.contains("chinese", ignoreCase = true) || isManhuaTag(tag) } || isManhuaSource(sourceName)) { } else if (currentTags.any { tag -> tag.contains("chinese", ignoreCase = true) || isManhuaTag(tag) } || isManhuaSource(sourceName)) {
Log.d("MangaType", "isManhua")
MangaType.TYPE_MANHUA MangaType.TYPE_MANHUA
} else if (currentTags.any { tag -> tag.contains("korean", ignoreCase = true) || isManhwaTag(tag) } || isManhwaSource(sourceName)) { } else if (currentTags.any { tag -> tag.contains("korean", ignoreCase = true) || isManhwaTag(tag) } || isManhwaSource(sourceName)) {
Log.d("MangaType", "isManhwa")
MangaType.TYPE_MANHWA MangaType.TYPE_MANHWA
} else if (currentTags.any { tag -> isWebtoonTag(tag) } || isWebtoonSource(sourceName)) { } else if (currentTags.any { tag -> isWebtoonTag(tag) } || isWebtoonSource(sourceName)) {
Log.d("MangaType", "isWebtoon")
MangaType.TYPE_WEBTOON MangaType.TYPE_WEBTOON
} else { } else {
Log.d("MangaType", "ended up as isManga")
MangaType.TYPE_MANGA MangaType.TYPE_MANGA
} }
} }
@ -58,23 +66,28 @@ fun Manga.defaultReaderType(): Int {
} }
private fun isMangaTag(tag: String): Boolean { private fun isMangaTag(tag: String): Boolean {
return tag.toLowerCase() in listOf("manga", "манга") return tag.contains("manga") ||
tag.contains("манга")
} }
private fun isManhuaTag(tag: String): Boolean { private fun isManhuaTag(tag: String): Boolean {
return tag.toLowerCase() in listOf("manhua", "маньхуа") return tag.contains("manhua") ||
tag.contains("маньхуа")
} }
private fun isManhwaTag(tag: String): Boolean { private fun isManhwaTag(tag: String): Boolean {
return tag.toLowerCase() in listOf("manhwa", "манхва") return tag.contains("manhwa") ||
tag.contains("манхва")
} }
private fun isComicTag(tag: String): Boolean { private fun isComicTag(tag: String): Boolean {
return tag.toLowerCase() in listOf("comic", "комикс") return tag.contains("comic") ||
tag.contains("комикс")
} }
private fun isWebtoonTag(tag: String): Boolean { private fun isWebtoonTag(tag: String): Boolean {
return tag.toLowerCase() in listOf("long strip", "webtoon") return tag.contains("long strip") ||
tag.contains("webtoon")
} }
/*private fun isMangaSource(sourceName: String): Boolean { /*private fun isMangaSource(sourceName: String): Boolean {