From 8fd10eabd1ceadf72bb59b34c6d49662f410935a Mon Sep 17 00:00:00 2001 From: devi Date: Thu, 29 Jun 2023 20:16:07 +0200 Subject: [PATCH] fix japscan and fix wrong date on 2 source --- .../kotatsu/parsers/site/JapScanParser.kt | 28 ++++++++++++------- .../parsers/site/madara/MadaraParser.kt | 6 ++++ 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/JapScanParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/JapScanParser.kt index d94f04ea..f6065833 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/JapScanParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/JapScanParser.kt @@ -19,7 +19,10 @@ import java.util.* @MangaSourceParser("JAPSCAN", "JapScan", "fr") internal class JapScanParser(context: MangaLoaderContext) : PagedMangaParser(context, MangaSource.JAPSCAN, 30) { - override val sortOrders: Set = EnumSet.of(SortOrder.ALPHABETICAL) + override val sortOrders: Set = EnumSet.of( + SortOrder.UPDATED, + SortOrder.ALPHABETICAL, + ) override val configKeyDomain = ConfigKey.Domain("www.japscan.lol", "japscan.ws") @@ -112,16 +115,21 @@ internal class JapScanParser(context: MangaLoaderContext) : PagedMangaParser(con val embeddedData = doc.requireElementById("data").attr("data-data") val script = webClient.httpGet(scriptUrl).parseRaw() - val sample = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".toList() - val keyRegex = Regex("""'([\dA-Z]{62})'""", RegexOption.IGNORE_CASE) + val shortkeyRegex = Regex("""'([\dA-Z]{2})'""", RegexOption.IGNORE_CASE) + val longkeyRegex = Regex("""'([\dA-Z]{20})'""", RegexOption.IGNORE_CASE) - val keyTables = keyRegex.findAll(script) - .mapNotNullTo(ArrayList(2)) { match -> - match.groupValues[1].takeIf { - it.toList().sorted() == sample - } - } - check(keyTables.size == 2) + val LongTables = longkeyRegex.findAll(script).map { + it.groupValues[1] + }.toList() + + val ShortTables = shortkeyRegex.findAll(script).map { + it.groupValues[1] + }.toList() + + val keyTables = listOf( + ShortTables[1].reversed() + LongTables[5].reversed() + LongTables[2].reversed() + LongTables[0].reversed(), + ShortTables[2].reversed() + LongTables[3].reversed() + LongTables[4].reversed() + LongTables[1].reversed(), + ) var error: Exception? = null repeat(2) { i -> diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/MadaraParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/MadaraParser.kt index 077a4c99..bf32b9c8 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/MadaraParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/MadaraParser.kt @@ -456,6 +456,9 @@ internal abstract class MadaraParser( @MangaSourceParser("MANGA_MANHUA", "Manga Manhua", "en") class MangaManhua(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANGA_MANHUA, "mangamanhua.online", pageSize = 10) + { + override val datePattern = "d MMMM، yyyy" + } @MangaSourceParser("MANGA_247", "247MANGA", "en") class Manga247(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANGA_247, "247manga.com") { @@ -475,6 +478,9 @@ internal abstract class MadaraParser( @MangaSourceParser("ZINMANGA", "ZINMANGA", "en") class Zinmanga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.ZINMANGA, "zinmanga.com") + { + override val datePattern = "MM/dd/yyyy" + } @MangaSourceParser("STKISSMANGA", "Stkissmanga", "en") class Stkissmanga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.STKISSMANGA, "1stkissmanga.me")