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'
 | 
			
		||||
    pkgNameSuffix = 'all.mangadex'
 | 
			
		||||
    extClass = '.MangadexFactory'
 | 
			
		||||
    extVersionCode = 43
 | 
			
		||||
    extVersionCode = 44
 | 
			
		||||
    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 Demographic -> {
 | 
			
		||||
                    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 -> {
 | 
			
		||||
                    if (filter.state != 0) {
 | 
			
		||||
                        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 -> {
 | 
			
		||||
                    filter.state.forEach { content ->
 | 
			
		||||
                        if (content.isExcluded()) {
 | 
			
		||||
@ -284,13 +295,8 @@ open class Mangadex(override val lang: String, private val internalLang: String,
 | 
			
		||||
            manga.status = parseStatus(status)
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        val genres = mutableListOf<String>()
 | 
			
		||||
        val genreList = getGenreList()
 | 
			
		||||
        mangaJson.get("genres").asJsonArray.forEach { id ->
 | 
			
		||||
            genreList.find { it -> it.id == id.string }?.let { genre ->
 | 
			
		||||
                genres.add(genre.name)
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        val genres = (if (mangaJson.get("hentai").int == 1) listOf("Hentai") else listOf()) +
 | 
			
		||||
                mangaJson.get("genres").asJsonArray.mapNotNull { GENRES.get(it.toString()) }
 | 
			
		||||
        manga.genre = genres.joinToString(", ")
 | 
			
		||||
 | 
			
		||||
        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 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 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 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",
 | 
			
		||||
            sortables.map { it.first }.toTypedArray(),
 | 
			
		||||
@ -481,11 +490,14 @@ open class Mangadex(override val lang: String, private val internalLang: String,
 | 
			
		||||
            R18(),
 | 
			
		||||
            SortFilter(),
 | 
			
		||||
            Demographic(),
 | 
			
		||||
            PublicationStatus(),
 | 
			
		||||
            OriginalLanguage(),
 | 
			
		||||
            ContentList(getContentList()),
 | 
			
		||||
            FormatList(getFormatList()),
 | 
			
		||||
            GenreList(getGenreList()),
 | 
			
		||||
            ThemeList(getThemeList())
 | 
			
		||||
            ThemeList(getThemeList()),
 | 
			
		||||
            TagInclusionMode(),
 | 
			
		||||
            TagExclusionMode()
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    private fun getContentList() = listOf(
 | 
			
		||||
@ -514,12 +526,10 @@ open class Mangadex(override val lang: String, private val internalLang: String,
 | 
			
		||||
            Tag("2", "Action"),
 | 
			
		||||
            Tag("3", "Adventure"),
 | 
			
		||||
            Tag("5", "Comedy"),
 | 
			
		||||
            Tag("6", "Cooking"),
 | 
			
		||||
            Tag("8", "Drama"),
 | 
			
		||||
            Tag("10", "Fantasy"),
 | 
			
		||||
            Tag("13", "Historical"),
 | 
			
		||||
            Tag("14", "Horror"),
 | 
			
		||||
            Tag("15", "Josei"),
 | 
			
		||||
            Tag("17", "Mecha"),
 | 
			
		||||
            Tag("18", "Medical"),
 | 
			
		||||
            Tag("20", "Mystery"),
 | 
			
		||||
@ -543,6 +553,8 @@ open class Mangadex(override val lang: String, private val internalLang: String,
 | 
			
		||||
    ).sortedWith(compareBy { it.name })
 | 
			
		||||
 | 
			
		||||
    private fun getThemeList() = listOf(
 | 
			
		||||
            Tag("6", "Cooking"),
 | 
			
		||||
            Tag("11", "Gyaru"),
 | 
			
		||||
            Tag("12", "Harem"),
 | 
			
		||||
            Tag("16", "Martial Arts"),
 | 
			
		||||
            Tag("19", "Music"),
 | 
			
		||||
@ -578,6 +590,7 @@ open class Mangadex(override val lang: String, private val internalLang: String,
 | 
			
		||||
            Tag("83", "Incest")
 | 
			
		||||
    ).sortedWith(compareBy { it.name })
 | 
			
		||||
 | 
			
		||||
    private val GENRES = (getContentList() + getFormatList() + getGenreList() + getThemeList()).map { it.id to it.name }.toMap()
 | 
			
		||||
 | 
			
		||||
    companion object {
 | 
			
		||||
        private val WHITESPACE_REGEX = "\\s".toRegex()
 | 
			
		||||
 | 
			
		||||
@ -11,12 +11,13 @@ class MangaDexGerman : Mangadex("de", "de", 8)
 | 
			
		||||
class MangaDexFrench : Mangadex("fr", "fr", 10)
 | 
			
		||||
class MangaDexVietnamese : Mangadex("vi", "vn", 12)
 | 
			
		||||
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 MangaDexTurkish : Mangadex("tr", "tr", 26)
 | 
			
		||||
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 MangaDexBulgarian : Mangadex("bg", "bg", 14)
 | 
			
		||||
class MangaDexFilipino : Mangadex("fil", "ph", 34)
 | 
			
		||||
@ -24,7 +25,22 @@ class MangaDexDutch : Mangadex("nl", "nl", 5)
 | 
			
		||||
class MangaDexArabic : Mangadex("ar", "sa", 19)
 | 
			
		||||
class MangaDexChineseSimp : Mangadex("zh-Hans", "cn", 21)
 | 
			
		||||
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(
 | 
			
		||||
        MangaDexEnglish(),
 | 
			
		||||
@ -35,12 +51,13 @@ fun getAllMangaDexLanguages() = listOf(
 | 
			
		||||
        MangaDexFrench(),
 | 
			
		||||
        MangaDexVietnamese(),
 | 
			
		||||
        MangaDexSpanishSpain(),
 | 
			
		||||
        MangaDexPortuguese(),
 | 
			
		||||
        MangaDexSpanishLTAM(),
 | 
			
		||||
        MangaDexCatalan(),
 | 
			
		||||
        MangaDexPortuguesePortugal(),
 | 
			
		||||
        MangaDexPortugueseBrazil(),
 | 
			
		||||
        MangaDexSwedish(),
 | 
			
		||||
        MangaDexTurkish(),
 | 
			
		||||
        MangaDexIndonesian(),
 | 
			
		||||
        MangaDexSpanishLTAM(),
 | 
			
		||||
        MangaDexCatalan(),
 | 
			
		||||
        MangaDexHungarian(),
 | 
			
		||||
        MangaDexBulgarian(),
 | 
			
		||||
        MangaDexFilipino(),
 | 
			
		||||
@ -48,5 +65,20 @@ fun getAllMangaDexLanguages() = listOf(
 | 
			
		||||
        MangaDexArabic(),
 | 
			
		||||
        MangaDexChineseSimp(),
 | 
			
		||||
        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