From 2e68fc15f68db87115540e33766a1dce3a0d9f5b Mon Sep 17 00:00:00 2001
From: seew3l <90949336+seew3l@users.noreply.github.com>
Date: Sun, 30 Apr 2023 16:29:22 -0500
Subject: [PATCH] Fix LeerCapitulo (#16245)

* Fix

* Apply requested changes

Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>

* Remove unused import

Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>

* Change delimiter

---------

Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
---
 src/es/leercapitulo/build.gradle                   |  2 +-
 .../extension/es/leercapitulo/LeerCapitulo.kt      | 14 ++++++++++----
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/es/leercapitulo/build.gradle b/src/es/leercapitulo/build.gradle
index 5c9dcfd43..359673c48 100644
--- a/src/es/leercapitulo/build.gradle
+++ b/src/es/leercapitulo/build.gradle
@@ -6,7 +6,7 @@ ext {
     extName = 'LeerCapitulo / OlympusScan.top'
     pkgNameSuffix = 'es.leercapitulo'
     extClass = '.LeerCapitulo'
-    extVersionCode = 4
+    extVersionCode = 5
 }
 
 apply from: "$rootDir/common.gradle"
\ No newline at end of file
diff --git a/src/es/leercapitulo/src/eu/kanade/tachiyomi/extension/es/leercapitulo/LeerCapitulo.kt b/src/es/leercapitulo/src/eu/kanade/tachiyomi/extension/es/leercapitulo/LeerCapitulo.kt
index 6d68896b3..4cf0b4934 100644
--- a/src/es/leercapitulo/src/eu/kanade/tachiyomi/extension/es/leercapitulo/LeerCapitulo.kt
+++ b/src/es/leercapitulo/src/eu/kanade/tachiyomi/extension/es/leercapitulo/LeerCapitulo.kt
@@ -146,23 +146,29 @@ class LeerCapitulo : ParsedHttpSource(), ConfigurableSource {
             .toFloatOrNull()
             ?: -1f
     }
+    private val keyRepoUrl = "https://raw.githubusercontent.com/seew3l/tachiyomi-scripts/main/leercapitulo_keys.txt"
 
-    // Pages
     override fun pageListParse(document: Document): List<Page> {
         val orderList = document.selectFirst("meta[property=ad:check]")?.attr("content")
             ?.replace("[^\\d]+".toRegex(), "-")
             ?.split("-")
 
+        val useReversedString = orderList?.any { it == "01" }
+
         val arrayData = document.selectFirst("#arraydata")!!.text()
 
+        val (key1, key2) = client.newCall(GET(keyRepoUrl)).execute().body.string().split("\n")
+
         val encodedUrls = arrayData.replace(Regex("[A-Z0-9]", RegexOption.IGNORE_CASE)) {
-            val index = "BoevQJylkhcAxZVb4sXTgfaHu3zr7tP61L9qGNUmCpYKREdijD28OSwWInF5M0".indexOf(it.value)
-            "GQiMUkPrKIgpzVcu87AY4LnvO2a0oBy9JFbRhSx6qdfme5wZsEWlT1CN3XjDHt"[index].toString()
+            val index = key2.indexOf(it.value)
+            key1[index].toString()
         }
 
         val urlList = String(Base64.decode(encodedUrls, Base64.DEFAULT), Charset.forName("UTF-8")).split(",")
 
-        val sortedUrls = orderList?.map { urlList[it.reversed().toInt()] }?.reversed() ?: urlList
+        val sortedUrls = orderList?.map {
+            if (useReversedString == true) urlList[it.reversed().toInt()] else urlList[it.toInt()]
+        }?.reversed() ?: urlList
 
         return sortedUrls.mapIndexed { i, image_url ->
             Page(i, imageUrl = image_url)