From 620a1ea6f9800ba51d7218fac76049e6e974e833 Mon Sep 17 00:00:00 2001
From: Eugene <35057681+e-shl@users.noreply.github.com>
Date: Tue, 25 May 2021 21:37:04 +0500
Subject: [PATCH] Lewdcheck for SY ([RU]Libmanga & Remanga & Desu) (#7222)

* Lewdcheck for SY ([RU]Libmanga & Remanga)

* Lewdcheck for SY and Type for J2K ([RU]Desu)
---
 src/ru/desu/build.gradle                      |  2 +-
 .../tachiyomi/extension/ru/desu/Desu.kt       | 20 +++++++++++++++++--
 src/ru/libmanga/build.gradle                  |  2 +-
 .../extension/ru/libmanga/LibManga.kt         |  7 +++++--
 src/ru/remanga/build.gradle                   |  2 +-
 .../tachiyomi/extension/ru/remanga/Remanga.kt | 10 ++++++++--
 .../tachiyomi/extension/ru/remanga/dto/Dto.kt |  3 ++-
 7 files changed, 36 insertions(+), 10 deletions(-)

diff --git a/src/ru/desu/build.gradle b/src/ru/desu/build.gradle
index 4d78fd482..26f3d710e 100644
--- a/src/ru/desu/build.gradle
+++ b/src/ru/desu/build.gradle
@@ -5,7 +5,7 @@ ext {
     extName = 'Desu'
     pkgNameSuffix = 'ru.desu'
     extClass = '.Desu'
-    extVersionCode = 9
+    extVersionCode = 10
     libVersion = '1.2'
 }
 
diff --git a/src/ru/desu/src/eu/kanade/tachiyomi/extension/ru/desu/Desu.kt b/src/ru/desu/src/eu/kanade/tachiyomi/extension/ru/desu/Desu.kt
index 408726fac..b24a27b14 100644
--- a/src/ru/desu/src/eu/kanade/tachiyomi/extension/ru/desu/Desu.kt
+++ b/src/ru/desu/src/eu/kanade/tachiyomi/extension/ru/desu/Desu.kt
@@ -64,6 +64,22 @@ class Desu : HttpSource() {
             ratingValue > 0.5 -> "✬☆☆☆☆"
             else -> "☆☆☆☆☆"
         }
+        val rawAgeValue = obj.getString("adult")
+        val rawAgeStop = when (rawAgeValue) {
+            "1" -> "18+"
+            else -> "0+"
+        }
+
+        val rawTypeValue = obj.getString("kind")
+        val rawTypeStr = when (rawTypeValue) {
+            "manga" -> "Манга"
+            "manhwa" -> "Манхва"
+            "manhua" -> "Маньхуа"
+            "comics" -> "Комикс"
+            "one_shot" -> "Ваншот"
+            else -> "Манга"
+        }
+
         var altName = ""
         if (obj.getString("synonyms").isNotEmpty() && obj.getString("synonyms") != "null") {
             altName = "Альтернативные названия:\n" + obj.getString("synonyms").replace("|", " / ") + "\n\n"
@@ -75,9 +91,9 @@ class Desu : HttpSource() {
             for (i in 0 until jsonArray.length()) {
                 genreList.add(jsonArray.getJSONObject(i).getString("russian"))
             }
-            genreList.joinToString()
+            genreList.plusElement(rawTypeStr).plusElement(rawAgeStop).joinToString()
         } else {
-            obj.getString("genres")
+            obj.getString("genres") + ", " + rawTypeStr + ", " + rawAgeStop
         }
         status = when (obj.getString("status")) {
             "ongoing" -> SManga.ONGOING
diff --git a/src/ru/libmanga/build.gradle b/src/ru/libmanga/build.gradle
index d553effee..c5456c20d 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 = 49
+    extVersionCode = 50
     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 f2e5ab899..e54fd51c5 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
@@ -170,12 +170,15 @@ class LibManga : ConfigurableSource, HttpSource() {
 
         val body = document.select("div.media-info-list").first()
         val rawCategory = body.select("div.media-info-list__title:contains(Тип) + div").text()
-
         val category = when {
             rawCategory == "Комикс западный" -> "комикс"
             rawCategory.isNotBlank() -> rawCategory.toLowerCase(Locale.ROOT)
             else -> "манга"
         }
+        var rawAgeStop = body.select("div.media-info-list__title:contains(Возрастной рейтинг) + div").text()
+        if (rawAgeStop.isEmpty()) {
+            rawAgeStop = "0+"
+        }
 
         val ratingValue = document.select(".media-rating.media-rating_lg div.media-rating__value").text().toFloat() * 2
         val ratingVotes = document.select(".media-rating.media-rating_lg div.media-rating__votes").text()
@@ -206,7 +209,7 @@ class LibManga : ConfigurableSource, HttpSource() {
             "завершен" -> SManga.COMPLETED
             else -> SManga.UNKNOWN
         }
-        manga.genre = genres.plusElement(category).joinToString { it.trim() }
+        manga.genre = genres.plusElement(category).plusElement(rawAgeStop).joinToString { it.trim() }
         manga.description = document.select(".media-name__main").text() + "\n" + ratingStar + " " + ratingValue + " (голосов: " + ratingVotes + ")" + "\nАльтернативные названия:\n" + document.select(".media-info-list__item_alt-names .media-info-list__value div").map { it.text() }.joinToString(" / ") + "\n\n" + document.select(".media-description__text").text()
         return manga
     }
diff --git a/src/ru/remanga/build.gradle b/src/ru/remanga/build.gradle
index c0384c456..d225704df 100644
--- a/src/ru/remanga/build.gradle
+++ b/src/ru/remanga/build.gradle
@@ -5,7 +5,7 @@ ext {
     extName = 'Remanga'
     pkgNameSuffix = 'ru.remanga'
     extClass = '.Remanga'
-    extVersionCode = 26
+    extVersionCode = 27
     libVersion = '1.2'
 }
 
diff --git a/src/ru/remanga/src/eu/kanade/tachiyomi/extension/ru/remanga/Remanga.kt b/src/ru/remanga/src/eu/kanade/tachiyomi/extension/ru/remanga/Remanga.kt
index c5381e703..f05685cc2 100644
--- a/src/ru/remanga/src/eu/kanade/tachiyomi/extension/ru/remanga/Remanga.kt
+++ b/src/ru/remanga/src/eu/kanade/tachiyomi/extension/ru/remanga/Remanga.kt
@@ -205,9 +205,15 @@ class Remanga : ConfigurableSource, HttpSource() {
             else -> type
         }
     }
+    private fun parseAge(age_limit: Int): String {
+        return when (age_limit) {
+            2 -> "18+"
+            1 -> "16+"
+            else -> "0+"
+        }
+    }
 
     private fun MangaDetDto.toSManga(): SManga {
-
         val ratingValue = avg_rating.toFloat()
         val ratingStar = when {
             ratingValue > 9.5 -> "★★★★★"
@@ -229,7 +235,7 @@ class Remanga : ConfigurableSource, HttpSource() {
             url = "/api/titles/$dir/"
             thumbnail_url = "$baseUrl/${img.high}"
             this.description = rus_name + "\n" + ratingStar + " " + ratingValue + " (голосов: " + count_rating + ")" + "\nАльтернативные названия:\n" + another_name + "\n\n" + Jsoup.parse(o.description).text()
-            genre = (genres + parseType(type)).joinToString { it.name }
+            genre = (genres + parseType(type)).joinToString { it.name } + ", " + parseAge(age_limit)
             status = parseStatus(o.status.id)
         }
     }
diff --git a/src/ru/remanga/src/eu/kanade/tachiyomi/extension/ru/remanga/dto/Dto.kt b/src/ru/remanga/src/eu/kanade/tachiyomi/extension/ru/remanga/dto/Dto.kt
index db42658e4..08d59147b 100644
--- a/src/ru/remanga/src/eu/kanade/tachiyomi/extension/ru/remanga/dto/Dto.kt
+++ b/src/ru/remanga/src/eu/kanade/tachiyomi/extension/ru/remanga/dto/Dto.kt
@@ -43,7 +43,8 @@ data class MangaDetDto(
     val branches: List<BranchesDto>,
     val status: StatusDto,
     val avg_rating: String,
-    val count_rating: Int
+    val count_rating: Int,
+    val age_limit: Int
 )
 
 data class PropsDto(