From b17f84f9a682d6d5bd7d2eb0170b0ebd902fc0f1 Mon Sep 17 00:00:00 2001
From: Carlos <cargo8005@gmail.com>
Date: Sun, 11 Mar 2018 16:04:10 -0400
Subject: [PATCH] mangadex: fixed genre search bug (#252)

---
 .../extension/all/mangadex/Mangadex.kt        | 94 +++++++++----------
 1 file changed, 47 insertions(+), 47 deletions(-)

diff --git a/src/all/mangadex/src/eu/kanade/tachiyomi/extension/all/mangadex/Mangadex.kt b/src/all/mangadex/src/eu/kanade/tachiyomi/extension/all/mangadex/Mangadex.kt
index 006b68d6c..6d9deeb97 100644
--- a/src/all/mangadex/src/eu/kanade/tachiyomi/extension/all/mangadex/Mangadex.kt
+++ b/src/all/mangadex/src/eu/kanade/tachiyomi/extension/all/mangadex/Mangadex.kt
@@ -194,9 +194,10 @@ open class Mangadex(override val lang: String, private val internalLang: String,
         manga.artist = mangaJson.get("artist").string
         manga.status = parseStatus(mangaJson.get("status").int)
         var genres = mutableListOf<String>()
-        mangaJson.get("genres").asJsonArray.forEach { it ->
-            getGenre(it.int)?.let { name ->
-                genres.add(name)
+
+        mangaJson.get("genres").asJsonArray.forEach { id ->
+            getGenreList().find { it -> it.id == id.string }?.let { genre ->
+                genres.add(genre.name)
             }
         }
         manga.genre = genres.joinToString(", ")
@@ -209,8 +210,6 @@ open class Mangadex(override val lang: String, private val internalLang: String,
     }
 
 
-    private fun getGenre(int: Int): String? = GENRE_MAP.getValue(int)?.name
-
     override fun mangaDetailsParse(document: Document) = throw Exception("Not Used")
 
     override fun chapterListSelector() = ""
@@ -327,7 +326,48 @@ open class Mangadex(override val lang: String, private val internalLang: String,
     )
 
 
-    private fun getGenreList() = GENRE_MAP.values.toList()
+    private fun getGenreList() = listOf(
+            Genre("1", "4-koma"),
+            Genre("2", "Action"),
+            Genre("3", "Adventure"),
+            Genre("4", "Award Winning"),
+            Genre("5", "Comedy"),
+            Genre("6", "Cooking"),
+            Genre("7", "Doujinshi"),
+            Genre("8", "Drama"),
+            Genre("9", "Ecchi"),
+            Genre("10", "Fantasy"),
+            Genre("11", "Gender Bender"),
+            Genre("12", "Harem"),
+            Genre("13", "Historical"),
+            Genre("14", "Horror"),
+            Genre("15", "Josei"),
+            Genre("16", "Martial Arts"),
+            Genre("17", "Mecha"),
+            Genre("18", "Medical"),
+            Genre("19", "Music"),
+            Genre("20", "Mystery"),
+            Genre("21", "Oneshot"),
+            Genre("22", "Psychological"),
+            Genre("23", "Romance"),
+            Genre("24", "School Life"),
+            Genre("25", "Sci-Fi"),
+            Genre("26", "Seinen"),
+            Genre("27", "Shoujo"),
+            Genre("28", "Shoujo Ai"),
+            Genre("29", "Shounen"),
+            Genre("30", "Shounen Ai"),
+            Genre("31", "Slice of Life"),
+            Genre("32", "Smut"),
+            Genre("33", "Sports"),
+            Genre("34", "Supernatural"),
+            Genre("35", "Tragedy"),
+            Genre("36", "Webtoon"),
+            Genre("37", "Yaoi"),
+            Genre("38", "Yuri"),
+            Genre("39", "[no chapters]"),
+            Genre("40", "Game")
+    )
 
     companion object {
         //this number matches to the cookie
@@ -336,46 +376,6 @@ open class Mangadex(override val lang: String, private val internalLang: String,
         private const val ONLY_R18 = 2
         private const val URL = "/api/3640f3fb/"
         private const val BASE_CHAPTER = "/chapter/"
-        private val GENRE_MAP = mapOf(
-                1 to Genre("1", "4-koma"),
-                2 to Genre("2", "Action"),
-                3 to Genre("3", "Adventure"),
-                4 to Genre("4", "Award Winning"),
-                5 to Genre("5", "Comedy"),
-                6 to Genre("6", "Cooking"),
-                7 to Genre("7", "Doujinshi"),
-                8 to Genre("8", "Drama"),
-                9 to Genre("9", "Ecchi"),
-                10 to Genre("10", "Fantasy"),
-                11 to Genre("11", "Gender Bender"),
-                12 to Genre("12", "Harem"),
-                13 to Genre("13", "Historical"),
-                14 to Genre("14", "Horror"),
-                15 to Genre("15", "Josei"),
-                16 to Genre("16", "Martial Arts"),
-                17 to Genre("17", "Mecha"),
-                18 to Genre("18", "Medical"),
-                19 to Genre("19", "Music"),
-                20 to Genre("20", "Mystery"),
-                21 to Genre("21", "Oneshot"),
-                22 to Genre("22", "Psychological"),
-                23 to Genre("23", "Romance"),
-                24 to Genre("24", "School Life"),
-                25 to Genre("25", "Sci-Fi"),
-                26 to Genre("26", "Seinen"),
-                27 to Genre("27", "Shoujo"),
-                28 to Genre("28", "Shoujo Ai"),
-                29 to Genre("29", "Shounen"),
-                30 to Genre("30", "Shounen Ai"),
-                31 to Genre("31", "Slice of Life"),
-                32 to Genre("32", "Smut"),
-                33 to Genre("33", "Sports"),
-                34 to Genre("34", "Supernatural"),
-                35 to Genre("35", "Tragedy"),
-                36 to Genre("36", "Webtoon"),
-                37 to Genre("37", "Yaoi"),
-                38 to Genre("38", "Yuri"),
-                39 to Genre("39", "[no chapters]"),
-                40 to Genre("40", "Game"))
+
     }
 }
\ No newline at end of file