From 23d2e65aa27b9624d6fcf6c7af9b4010ea1d0f8b Mon Sep 17 00:00:00 2001
From: Blue cat <42893969+BlueCat300@users.noreply.github.com>
Date: Sat, 23 Jan 2021 18:07:49 +0300
Subject: [PATCH] [RU] Mangalib. Fixed getting chapters(1+ translators) (#5517)

* [RU] Mangalib. Minor changes in SharedPreferences

* [RU] Mangalib. Fix getting chapters(1+ translators)

* [RU] Mangalib. Replacing Russian names with original ones

* [RU] Mangalib. Revert version update
---
 src/ru/libmanga/build.gradle                  |  2 +-
 .../extension/ru/libmanga/LibManga.kt         | 99 +++++++++----------
 2 files changed, 47 insertions(+), 54 deletions(-)

diff --git a/src/ru/libmanga/build.gradle b/src/ru/libmanga/build.gradle
index 88681987c..a31cb3e89 100644
--- a/src/ru/libmanga/build.gradle
+++ b/src/ru/libmanga/build.gradle
@@ -5,7 +5,7 @@ ext {
     extName = 'MangaLib'
     pkgNameSuffix = 'ru.libmanga'
     extClass = '.LibManga'
-    extVersionCode = 28
+    extVersionCode = 29
     libVersion = '1.2'
 }
 
diff --git a/src/ru/libmanga/src/eu/kanade/tachiyomi/extension/ru/libmanga/LibManga.kt b/src/ru/libmanga/src/eu/kanade/tachiyomi/extension/ru/libmanga/LibManga.kt
index 8bd3bd6c4..f4dd6b429 100644
--- a/src/ru/libmanga/src/eu/kanade/tachiyomi/extension/ru/libmanga/LibManga.kt
+++ b/src/ru/libmanga/src/eu/kanade/tachiyomi/extension/ru/libmanga/LibManga.kt
@@ -2,8 +2,8 @@ package eu.kanade.tachiyomi.extension.ru.libmanga
 
 import android.app.Application
 import android.content.SharedPreferences
-import android.support.v7.preference.ListPreference
-import android.support.v7.preference.PreferenceScreen
+import androidx.preference.ListPreference
+import androidx.preference.PreferenceScreen
 import com.github.salomonbrys.kotson.array
 import com.github.salomonbrys.kotson.get
 import com.github.salomonbrys.kotson.int
@@ -36,6 +36,8 @@ import uy.kohesive.injekt.Injekt
 import uy.kohesive.injekt.api.get
 import java.text.SimpleDateFormat
 import java.util.Locale
+import android.support.v7.preference.ListPreference as LegacyListPreference
+import android.support.v7.preference.PreferenceScreen as LegacyPreferenceScreen
 
 class LibManga : ConfigurableSource, HttpSource() {
 
@@ -61,42 +63,6 @@ class LibManga : ConfigurableSource, HttpSource() {
 
     private val jsonParser = JsonParser()
 
-    private var server: String? = preferences.getString(SERVER_PREF, null)
-
-    override fun setupPreferenceScreen(screen: androidx.preference.PreferenceScreen) {
-        val serverPref = androidx.preference.ListPreference(screen.context).apply {
-            key = SERVER_PREF
-            title = SERVER_PREF_Title
-            entries = arrayOf("Основной", "Второй (тестовый)", "Третий (эконом трафика)")
-            entryValues = arrayOf("secondary", "fourth", "compress")
-            summary = "%s"
-
-            setOnPreferenceChangeListener { _, newValue ->
-                server = newValue.toString()
-                true
-            }
-        }
-
-        screen.addPreference(serverPref)
-    }
-
-    override fun setupPreferenceScreen(screen: PreferenceScreen) {
-        val serverPref = ListPreference(screen.context).apply {
-            key = SERVER_PREF
-            title = SERVER_PREF_Title
-            entries = arrayOf("Основной", "Второй (тестовый)", "Третий (эконом трафика)")
-            entryValues = arrayOf("secondary", "fourth", "compress")
-            summary = "%s"
-
-            setOnPreferenceChangeListener { _, newValue ->
-                server = newValue.toString()
-                true
-            }
-        }
-
-        screen.addPreference(serverPref)
-    }
-
     override fun latestUpdatesRequest(page: Int) = GET(baseUrl, headers)
 
     private val latestUpdatesSelector = "div.updates__item"
@@ -198,7 +164,7 @@ class LibManga : ConfigurableSource, HttpSource() {
 
         val genres = document.select(".media-tags > a").map { it.text() }
 
-        manga.title = document.select(".media-name__main").text()
+        manga.title = document.select(".media-name__alt").text()
         manga.thumbnail_url = document.select(".media-sidebar__cover > img").attr("src")
         manga.author = body.select("div.media-info-list__title:contains(Автор) + div").text()
         manga.artist = body.select("div.media-info-list__title:contains(Художник) + div").text()
@@ -227,26 +193,17 @@ class LibManga : ConfigurableSource, HttpSource() {
         val data = jsonParser.parse(dataStr).obj
         val chaptersList = data["chapters"]["list"].nullArray
         val slug = data["manga"]["slug"].string
-        val teams = data["chapters"]["branches"].array
-        val teamId = if (teams.size() > 0) teams[0]["id"].int else null
 
-        val chapters = if (teamId == null) {
-            chaptersList?.map { chapterFromElement(it, slug) }
-        } else {
-            chaptersList?.filter { it["branch_id"].int == teamId }?.map { chapterFromElement(it, slug, teamId) }
-        }
-
-        return chapters ?: emptyList()
+        return chaptersList?.map { chapterFromElement(it, slug) } ?: emptyList()
     }
 
-    private fun chapterFromElement(chapterItem: JsonElement, slug: String, teamIdParam: Int? = null): SChapter {
+    private fun chapterFromElement(chapterItem: JsonElement, slug: String): SChapter {
         val chapter = SChapter.create()
 
         val volume = chapterItem["chapter_volume"].int
         val number = chapterItem["chapter_number"].string
-        val teamId = if (teamIdParam != null) "?bid=$teamIdParam" else ""
 
-        val url = "$baseUrl/$slug/v$volume/c$number$teamId"
+        val url = "$baseUrl/$slug/v$volume/c$number"
 
         chapter.setUrlWithoutDomain(url)
 
@@ -501,8 +458,44 @@ class LibManga : ConfigurableSource, HttpSource() {
     )
 
     companion object {
-        private const val SERVER_PREF_Title = "Сервер изображений"
-        private const val SERVER_PREF = "MangaLibImageServer"
         const val PREFIX_SLUG_SEARCH = "slug:"
+        private const val SERVER_PREF = "MangaLibImageServer"
+        private const val SERVER_PREF_Title = "Сервер изображений"
+    }
+
+    private var server: String? = preferences.getString(SERVER_PREF, null)
+
+    override fun setupPreferenceScreen(screen: PreferenceScreen) {
+        val serverPref = ListPreference(screen.context).apply {
+            key = SERVER_PREF
+            title = SERVER_PREF_Title
+            entries = arrayOf("Основной", "Второй (тестовый)", "Третий (эконом трафика)")
+            entryValues = arrayOf("secondary", "fourth", "compress")
+            summary = "%s"
+
+            setOnPreferenceChangeListener { _, newValue ->
+                server = newValue.toString()
+                true
+            }
+        }
+
+        screen.addPreference(serverPref)
+    }
+
+    override fun setupPreferenceScreen(screen: LegacyPreferenceScreen) {
+        val serverPref = LegacyListPreference(screen.context).apply {
+            key = SERVER_PREF
+            title = SERVER_PREF_Title
+            entries = arrayOf("Основной", "Второй (тестовый)", "Третий (эконом трафика)")
+            entryValues = arrayOf("secondary", "fourth", "compress")
+            summary = "%s"
+
+            setOnPreferenceChangeListener { _, newValue ->
+                server = newValue.toString()
+                true
+            }
+        }
+
+        screen.addPreference(serverPref)
     }
 }