fix search/tags, add missing languages (#685)
[mangadex] Fix search/tags, add missing languages
This commit is contained in:
parent
4d6ffb24c8
commit
7bf5ecaf4c
@ -5,7 +5,7 @@ ext {
|
|||||||
appName = 'Tachiyomi: MangaDex'
|
appName = 'Tachiyomi: MangaDex'
|
||||||
pkgNameSuffix = 'all.mangadex'
|
pkgNameSuffix = 'all.mangadex'
|
||||||
extClass = '.MangadexFactory'
|
extClass = '.MangadexFactory'
|
||||||
extVersionCode = 43
|
extVersionCode = 44
|
||||||
libVersion = '1.2'
|
libVersion = '1.2'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -159,15 +159,26 @@ open class Mangadex(override val lang: String, private val internalLang: String,
|
|||||||
is TextField -> url.addQueryParameter(filter.key, filter.state)
|
is TextField -> url.addQueryParameter(filter.key, filter.state)
|
||||||
is Demographic -> {
|
is Demographic -> {
|
||||||
if (filter.state != 0) {
|
if (filter.state != 0) {
|
||||||
url.addQueryParameter("demo", filter.state.toString())
|
url.addQueryParameter("demo_id", filter.state.toString())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
is PublicationStatus -> {
|
||||||
|
if (filter.state != 0) {
|
||||||
|
url.addQueryParameter("status_id", filter.state.toString())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
is OriginalLanguage -> {
|
is OriginalLanguage -> {
|
||||||
if (filter.state != 0) {
|
if (filter.state != 0) {
|
||||||
val number: String = SOURCE_LANG_LIST.first { it -> it.first == filter.values[filter.state] }.second
|
val number: String = SOURCE_LANG_LIST.first { it -> it.first == filter.values[filter.state] }.second
|
||||||
url.addQueryParameter("source_lang", number)
|
url.addQueryParameter("lang_id", number)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
is TagInclusionMode -> {
|
||||||
|
url.addQueryParameter("tag_mode_inc", arrayOf("all", "any")[filter.state])
|
||||||
|
}
|
||||||
|
is TagExclusionMode -> {
|
||||||
|
url.addQueryParameter("tag_mode_exc", arrayOf("all", "any")[filter.state])
|
||||||
|
}
|
||||||
is ContentList -> {
|
is ContentList -> {
|
||||||
filter.state.forEach { content ->
|
filter.state.forEach { content ->
|
||||||
if (content.isExcluded()) {
|
if (content.isExcluded()) {
|
||||||
@ -284,13 +295,8 @@ open class Mangadex(override val lang: String, private val internalLang: String,
|
|||||||
manga.status = parseStatus(status)
|
manga.status = parseStatus(status)
|
||||||
}
|
}
|
||||||
|
|
||||||
val genres = mutableListOf<String>()
|
val genres = (if (mangaJson.get("hentai").int == 1) listOf("Hentai") else listOf()) +
|
||||||
val genreList = getGenreList()
|
mangaJson.get("genres").asJsonArray.mapNotNull { GENRES.get(it.toString()) }
|
||||||
mangaJson.get("genres").asJsonArray.forEach { id ->
|
|
||||||
genreList.find { it -> it.id == id.string }?.let { genre ->
|
|
||||||
genres.add(genre.name)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
manga.genre = genres.joinToString(", ")
|
manga.genre = genres.joinToString(", ")
|
||||||
|
|
||||||
return manga
|
return manga
|
||||||
@ -467,7 +473,10 @@ open class Mangadex(override val lang: String, private val internalLang: String,
|
|||||||
private class GenreList(genres: List<Tag>) : Filter.Group<Tag>("Genres", genres)
|
private class GenreList(genres: List<Tag>) : Filter.Group<Tag>("Genres", genres)
|
||||||
private class R18 : Filter.Select<String>("R18+", arrayOf("Default", "Show all", "Show only", "Show none"))
|
private class R18 : Filter.Select<String>("R18+", arrayOf("Default", "Show all", "Show only", "Show none"))
|
||||||
private class Demographic : Filter.Select<String>("Demographic", arrayOf("All", "Shounen", "Shoujo", "Seinen", "Josei"))
|
private class Demographic : Filter.Select<String>("Demographic", arrayOf("All", "Shounen", "Shoujo", "Seinen", "Josei"))
|
||||||
|
private class PublicationStatus : Filter.Select<String>("Publication status", arrayOf("All", "Ongoing", "Completed", "Cancelled", "Hiatus"))
|
||||||
private class ThemeList(themes: List<Tag>) : Filter.Group<Tag>("Themes", themes)
|
private class ThemeList(themes: List<Tag>) : Filter.Group<Tag>("Themes", themes)
|
||||||
|
private class TagInclusionMode : Filter.Select<String>("Tag inclusion mode", arrayOf("All (and)", "Any (or)"), 0)
|
||||||
|
private class TagExclusionMode : Filter.Select<String>("Tag exclusion mode", arrayOf("All (and)", "Any (or)"), 1)
|
||||||
|
|
||||||
class SortFilter : Filter.Sort("Sort",
|
class SortFilter : Filter.Sort("Sort",
|
||||||
sortables.map { it.first }.toTypedArray(),
|
sortables.map { it.first }.toTypedArray(),
|
||||||
@ -481,11 +490,14 @@ open class Mangadex(override val lang: String, private val internalLang: String,
|
|||||||
R18(),
|
R18(),
|
||||||
SortFilter(),
|
SortFilter(),
|
||||||
Demographic(),
|
Demographic(),
|
||||||
|
PublicationStatus(),
|
||||||
OriginalLanguage(),
|
OriginalLanguage(),
|
||||||
ContentList(getContentList()),
|
ContentList(getContentList()),
|
||||||
FormatList(getFormatList()),
|
FormatList(getFormatList()),
|
||||||
GenreList(getGenreList()),
|
GenreList(getGenreList()),
|
||||||
ThemeList(getThemeList())
|
ThemeList(getThemeList()),
|
||||||
|
TagInclusionMode(),
|
||||||
|
TagExclusionMode()
|
||||||
)
|
)
|
||||||
|
|
||||||
private fun getContentList() = listOf(
|
private fun getContentList() = listOf(
|
||||||
@ -514,12 +526,10 @@ open class Mangadex(override val lang: String, private val internalLang: String,
|
|||||||
Tag("2", "Action"),
|
Tag("2", "Action"),
|
||||||
Tag("3", "Adventure"),
|
Tag("3", "Adventure"),
|
||||||
Tag("5", "Comedy"),
|
Tag("5", "Comedy"),
|
||||||
Tag("6", "Cooking"),
|
|
||||||
Tag("8", "Drama"),
|
Tag("8", "Drama"),
|
||||||
Tag("10", "Fantasy"),
|
Tag("10", "Fantasy"),
|
||||||
Tag("13", "Historical"),
|
Tag("13", "Historical"),
|
||||||
Tag("14", "Horror"),
|
Tag("14", "Horror"),
|
||||||
Tag("15", "Josei"),
|
|
||||||
Tag("17", "Mecha"),
|
Tag("17", "Mecha"),
|
||||||
Tag("18", "Medical"),
|
Tag("18", "Medical"),
|
||||||
Tag("20", "Mystery"),
|
Tag("20", "Mystery"),
|
||||||
@ -543,6 +553,8 @@ open class Mangadex(override val lang: String, private val internalLang: String,
|
|||||||
).sortedWith(compareBy { it.name })
|
).sortedWith(compareBy { it.name })
|
||||||
|
|
||||||
private fun getThemeList() = listOf(
|
private fun getThemeList() = listOf(
|
||||||
|
Tag("6", "Cooking"),
|
||||||
|
Tag("11", "Gyaru"),
|
||||||
Tag("12", "Harem"),
|
Tag("12", "Harem"),
|
||||||
Tag("16", "Martial Arts"),
|
Tag("16", "Martial Arts"),
|
||||||
Tag("19", "Music"),
|
Tag("19", "Music"),
|
||||||
@ -578,6 +590,7 @@ open class Mangadex(override val lang: String, private val internalLang: String,
|
|||||||
Tag("83", "Incest")
|
Tag("83", "Incest")
|
||||||
).sortedWith(compareBy { it.name })
|
).sortedWith(compareBy { it.name })
|
||||||
|
|
||||||
|
private val GENRES = (getContentList() + getFormatList() + getGenreList() + getThemeList()).map { it.id to it.name }.toMap()
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val WHITESPACE_REGEX = "\\s".toRegex()
|
private val WHITESPACE_REGEX = "\\s".toRegex()
|
||||||
|
@ -11,12 +11,13 @@ class MangaDexGerman : Mangadex("de", "de", 8)
|
|||||||
class MangaDexFrench : Mangadex("fr", "fr", 10)
|
class MangaDexFrench : Mangadex("fr", "fr", 10)
|
||||||
class MangaDexVietnamese : Mangadex("vi", "vn", 12)
|
class MangaDexVietnamese : Mangadex("vi", "vn", 12)
|
||||||
class MangaDexSpanishSpain : Mangadex("es", "es", 15)
|
class MangaDexSpanishSpain : Mangadex("es", "es", 15)
|
||||||
class MangaDexPortuguese : Mangadex("pt", "br", 16)
|
class MangaDexSpanishLTAM : Mangadex("es-419", "mx", 29)
|
||||||
|
class MangaDexCatalan : Mangadex("ca", "ct", 33)
|
||||||
|
class MangaDexPortuguesePortugal : Mangadex("pt", "pt", 17)
|
||||||
|
class MangaDexPortugueseBrazil : Mangadex("pt-BR", "br", 16)
|
||||||
class MangaDexSwedish : Mangadex("sv", "se", 18)
|
class MangaDexSwedish : Mangadex("sv", "se", 18)
|
||||||
class MangaDexTurkish : Mangadex("tr", "tr", 26)
|
class MangaDexTurkish : Mangadex("tr", "tr", 26)
|
||||||
class MangaDexIndonesian : Mangadex("id", "id", 27)
|
class MangaDexIndonesian : Mangadex("id", "id", 27)
|
||||||
class MangaDexSpanishLTAM : Mangadex("es-419", "mx", 29)
|
|
||||||
class MangaDexCatalan : Mangadex("ca", "ct", 33)
|
|
||||||
class MangaDexHungarian : Mangadex("hu", "hu", 9)
|
class MangaDexHungarian : Mangadex("hu", "hu", 9)
|
||||||
class MangaDexBulgarian : Mangadex("bg", "bg", 14)
|
class MangaDexBulgarian : Mangadex("bg", "bg", 14)
|
||||||
class MangaDexFilipino : Mangadex("fil", "ph", 34)
|
class MangaDexFilipino : Mangadex("fil", "ph", 34)
|
||||||
@ -24,7 +25,22 @@ class MangaDexDutch : Mangadex("nl", "nl", 5)
|
|||||||
class MangaDexArabic : Mangadex("ar", "sa", 19)
|
class MangaDexArabic : Mangadex("ar", "sa", 19)
|
||||||
class MangaDexChineseSimp : Mangadex("zh-Hans", "cn", 21)
|
class MangaDexChineseSimp : Mangadex("zh-Hans", "cn", 21)
|
||||||
class MangaDexChineseTrad : Mangadex("zh-Hant", "hk", 35)
|
class MangaDexChineseTrad : Mangadex("zh-Hant", "hk", 35)
|
||||||
class MangaDexThai: Mangadex("th", "th", 32)
|
class MangaDexThai : Mangadex("th", "th", 32)
|
||||||
|
class MangaDexBengali : Mangadex("bn", "bd", 22)
|
||||||
|
class MangaDexBurmese : Mangadex("my", "mm", 37)
|
||||||
|
class MangaDexCzech : Mangadex("cs", "cz", 24)
|
||||||
|
class MangaDexDanish : Mangadex("da", "dk", 20)
|
||||||
|
class MangaDexFinnish : Mangadex("fi", "fi", 11)
|
||||||
|
class MangaDexGreek : Mangadex("el", "gr", 13)
|
||||||
|
class MangaDexJapanese : Mangadex("ja", "jp", 2)
|
||||||
|
class MangaDexKorean : Mangadex("ko", "kr", 28)
|
||||||
|
class MangaDexLithuanian : Mangadex("lt", "lt", 38)
|
||||||
|
class MangaDexMalay : Mangadex("ms", "my", 31)
|
||||||
|
class MangaDexMongolian : Mangadex("mn", "mn", 25)
|
||||||
|
class MangaDexPersian : Mangadex("fa", "ir", 30)
|
||||||
|
class MangaDexRomanian : Mangadex("ro", "ro", 23)
|
||||||
|
class MangaDexSerboCroatian : Mangadex("sh", "rs", 4)
|
||||||
|
class MangaDexUkrainian : Mangadex("uk", "ua", 36)
|
||||||
|
|
||||||
fun getAllMangaDexLanguages() = listOf(
|
fun getAllMangaDexLanguages() = listOf(
|
||||||
MangaDexEnglish(),
|
MangaDexEnglish(),
|
||||||
@ -35,12 +51,13 @@ fun getAllMangaDexLanguages() = listOf(
|
|||||||
MangaDexFrench(),
|
MangaDexFrench(),
|
||||||
MangaDexVietnamese(),
|
MangaDexVietnamese(),
|
||||||
MangaDexSpanishSpain(),
|
MangaDexSpanishSpain(),
|
||||||
MangaDexPortuguese(),
|
MangaDexSpanishLTAM(),
|
||||||
|
MangaDexCatalan(),
|
||||||
|
MangaDexPortuguesePortugal(),
|
||||||
|
MangaDexPortugueseBrazil(),
|
||||||
MangaDexSwedish(),
|
MangaDexSwedish(),
|
||||||
MangaDexTurkish(),
|
MangaDexTurkish(),
|
||||||
MangaDexIndonesian(),
|
MangaDexIndonesian(),
|
||||||
MangaDexSpanishLTAM(),
|
|
||||||
MangaDexCatalan(),
|
|
||||||
MangaDexHungarian(),
|
MangaDexHungarian(),
|
||||||
MangaDexBulgarian(),
|
MangaDexBulgarian(),
|
||||||
MangaDexFilipino(),
|
MangaDexFilipino(),
|
||||||
@ -48,5 +65,20 @@ fun getAllMangaDexLanguages() = listOf(
|
|||||||
MangaDexArabic(),
|
MangaDexArabic(),
|
||||||
MangaDexChineseSimp(),
|
MangaDexChineseSimp(),
|
||||||
MangaDexChineseTrad(),
|
MangaDexChineseTrad(),
|
||||||
MangaDexThai()
|
MangaDexThai(),
|
||||||
|
MangaDexBengali(),
|
||||||
|
MangaDexBurmese(),
|
||||||
|
MangaDexCzech(),
|
||||||
|
MangaDexDanish(),
|
||||||
|
MangaDexFinnish(),
|
||||||
|
MangaDexGreek(),
|
||||||
|
MangaDexJapanese(),
|
||||||
|
MangaDexKorean(),
|
||||||
|
MangaDexLithuanian(),
|
||||||
|
MangaDexMalay(),
|
||||||
|
MangaDexMongolian(),
|
||||||
|
MangaDexPersian(),
|
||||||
|
MangaDexRomanian(),
|
||||||
|
MangaDexSerboCroatian(),
|
||||||
|
MangaDexUkrainian()
|
||||||
)
|
)
|
Loading…
x
Reference in New Issue
Block a user