From 2bf29da2ea1742e489005a9c93291bf76978d5a9 Mon Sep 17 00:00:00 2001 From: devi Date: Fri, 28 Jul 2023 16:16:13 +0200 Subject: [PATCH] small fix and rename bad typo --- .../parsers/site/fmreader/FmreaderParser.kt | 20 +++++++-------- .../parsers/site/fmreader/en/Manhwa18Com.kt | 6 ++--- .../kotatsu/parsers/site/fmreader/ja/Klz9.kt | 10 ++++---- .../parsers/site/fmreader/ja/WeLoveManga.kt | 4 +-- .../parsers/site/madara/MadaraParser.kt | 25 +++++++++---------- .../parsers/site/madara/en/Hentaixdickgirl.kt | 4 +-- .../parsers/site/madara/en/IsekaiScan.kt | 4 +-- .../parsers/site/madara/en/MangaDass.kt | 12 ++++----- .../parsers/site/madara/en/MangaDna.kt | 12 ++++----- .../parsers/site/madara/en/MangaDods.kt | 2 +- .../parsers/site/madara/en/ManhwaTop.kt | 4 +-- .../parsers/site/madara/en/Manhwasco.kt | 2 +- .../kotatsu/parsers/site/madara/en/MmScans.kt | 4 +-- .../parsers/site/madara/es/ManhwaLatino.kt | 4 +-- .../parsers/site/madara/ja/HachiManga.kt | 14 +++++------ .../parsers/site/madara/pt/LimaScans.kt | 4 +-- .../parsers/site/madara/tr/Mangabilgini.kt | 2 +- .../parsers/site/madara/vi/Saytruyenhay.kt | 4 +-- .../parsers/site/manga18/Manga18Parser.kt | 13 +++++----- .../parsers/site/mmrcms/MmrcmsParser.kt | 18 ++++++------- .../parsers/site/mmrcms/fr/ScanFrOrg.kt | 2 +- .../parsers/site/mmrcms/pt/Animaregia.kt | 4 +-- 22 files changed, 87 insertions(+), 87 deletions(-) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/FmreaderParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/FmreaderParser.kt index aa646806..5676ce3f 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/FmreaderParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/FmreaderParser.kt @@ -88,13 +88,12 @@ internal abstract class FmreaderParser( return doc.select("div.thumb-item-flow").map { div -> - val href = div.selectFirstOrThrow("div.series-title").selectFirstOrThrow("a").attrAsRelativeUrl("href") + val href = div.selectFirstOrThrow("div.series-title a").attrAsRelativeUrl("href") Manga( id = generateUid(href), url = href, publicUrl = href.toAbsoluteUrl(div.host ?: domain), - coverUrl = div.selectFirstOrThrow("div.img-in-ratio").attr("style").substringAfter("('") - .substringBeforeLast("')"), + coverUrl = div.selectFirstOrThrow("div.img-in-ratio").attr("style").substringAfter("('").substringBeforeLast("')"), title = div.selectFirstOrThrow("div.series-title").text().orEmpty(), altTitle = null, rating = RATING_UNKNOWN, @@ -108,7 +107,7 @@ internal abstract class FmreaderParser( } override suspend fun getTags(): Set { - val doc = webClient.httpGet("https://$domain/$listeurl/").parseHtml() + val doc = webClient.httpGet("https://$domain/$listeurl").parseHtml() return doc.select("ul.filter-type li").mapNotNullToSet { li -> val a = li.selectFirst("a") ?: return@mapNotNullToSet null val href = a.attr("href").substringAfter("manga-list-genre-").substringBeforeLast(".html") @@ -120,7 +119,7 @@ internal abstract class FmreaderParser( } } - protected open val selectdesc = "div.summary-content" + protected open val selectDesc = "div.summary-content" protected open val selectState = "ul.manga-info li:contains(Status) a" protected open val selectAlt = "ul.manga-info li:contains(Other names)" protected open val selectAut = "ul.manga-info li:contains(Author(s)) a" @@ -132,7 +131,7 @@ internal abstract class FmreaderParser( val chaptersDeferred = async { getChapters(manga, doc) } - val desc = doc.selectFirstOrThrow(selectdesc).html() + val desc = doc.selectFirstOrThrow(selectDesc).html() val stateDiv = doc.selectFirst(selectState) @@ -163,14 +162,14 @@ internal abstract class FmreaderParser( } - protected open val selectdate = "div.chapter-time" - protected open val selectchapter = "ul.list-chapters a" + protected open val selectDate = "div.chapter-time" + protected open val selectChapter = "ul.list-chapters a" protected open suspend fun getChapters(manga: Manga, doc: Document): List { val dateFormat = SimpleDateFormat(datePattern, sourceLocale) - return doc.body().select(selectchapter).mapChapters(reversed = true) { i, a -> + return doc.body().select(selectChapter).mapChapters(reversed = true) { i, a -> val href = a.attrAsRelativeUrl("href") - val dateText = a.selectFirst(selectdate)?.text() + val dateText = a.selectFirst(selectDate)?.text() MangaChapter( id = generateUid(href), name = a.selectFirstOrThrow("div.chapter-name").text(), @@ -188,6 +187,7 @@ internal abstract class FmreaderParser( } protected open val selectPage = "div.chapter-content img" + override suspend fun getPages(chapter: MangaChapter): List { val fullUrl = chapter.url.toAbsoluteUrl(domain) val doc = webClient.httpGet(fullUrl).parseHtml() diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/en/Manhwa18Com.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/en/Manhwa18Com.kt index d2b8dde1..0e4147ac 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/en/Manhwa18Com.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/en/Manhwa18Com.kt @@ -42,7 +42,7 @@ internal class Manhwa18Com(context: MangaLoaderContext) : val chaptersDeferred = async { getChapters(manga, doc) } - val desc = doc.selectFirstOrThrow(selectdesc).html() + val desc = doc.selectFirstOrThrow(selectDesc).html() val stateDiv = doc.selectFirst(selectState) @@ -74,9 +74,9 @@ internal class Manhwa18Com(context: MangaLoaderContext) : override suspend fun getChapters(manga: Manga, doc: Document): List { val dateFormat = SimpleDateFormat(datePattern, sourceLocale) - return doc.body().select(selectchapter).mapChapters(reversed = true) { i, a -> + return doc.body().select(selectChapter).mapChapters(reversed = true) { i, a -> val href = a.attrAsRelativeUrl("href") - val dateText = a.selectFirst(selectdate)?.text()?.substringAfter("- ") + val dateText = a.selectFirst(selectDate)?.text()?.substringAfter("- ") MangaChapter( id = generateUid(href), name = a.selectFirstOrThrow("div.chapter-name").text(), diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/ja/Klz9.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/ja/Klz9.kt index 44f17041..9d652a03 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/ja/Klz9.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/ja/Klz9.kt @@ -30,12 +30,12 @@ import java.text.SimpleDateFormat internal class Klz9(context: MangaLoaderContext) : FmreaderParser(context, MangaSource.KLZ9, "klz9.com") { - override val selectdesc = "div.row:contains(Description)" + override val selectDesc = "div.row:contains(Description)" override val selectState = "ul.manga-info li:contains(Status) a" override val selectAlt = "ul.manga-info li:contains(Other name (s))" override val selectTag = "ul.manga-info li:contains(Genre(s)) a" - override val selectchapter = "tr" - override val selectdate = "td i" + override val selectChapter = "tr" + override val selectDate = "td i" override val selectPage = "img" override suspend fun getListPage( @@ -100,9 +100,9 @@ internal class Klz9(context: MangaLoaderContext) : val docload = webClient.httpGet("https://$domain/app/manga/controllers/cont.listChapter.php?slug=$slug").parseHtml() val dateFormat = SimpleDateFormat(datePattern, sourceLocale) - return docload.body().select(selectchapter).mapChapters(reversed = true) { i, a -> + return docload.body().select(selectChapter).mapChapters(reversed = true) { i, a -> val href = "/" + a.selectFirstOrThrow("a.chapter").attrAsRelativeUrl("href") - val dateText = a.selectFirst(selectdate)?.text() + val dateText = a.selectFirst(selectDate)?.text() MangaChapter( id = generateUid(href), name = a.selectFirstOrThrow("a").text(), diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/ja/WeLoveManga.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/ja/WeLoveManga.kt index 2ad5ab65..95c747c5 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/ja/WeLoveManga.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/ja/WeLoveManga.kt @@ -30,9 +30,9 @@ internal class WeLoveManga(context: MangaLoaderContext) : val docload = webClient.httpGet("https://$domain/app/manga/controllers/cont.Listchapter.php?mid=$mid").parseHtml() val dateFormat = SimpleDateFormat(datePattern, sourceLocale) - return docload.body().select(selectchapter).mapChapters(reversed = true) { i, a -> + return docload.body().select(selectChapter).mapChapters(reversed = true) { i, a -> val href = a.selectFirstOrThrow("a").attrAsRelativeUrl("href") - val dateText = a.selectFirst(selectdate)?.text() + val dateText = a.selectFirst(selectDate)?.text() MangaChapter( id = generateUid(href), name = a.selectFirstOrThrow("a").text(), 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 3e82266a..5135fb1f 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 @@ -258,11 +258,9 @@ internal abstract class MadaraParser( } } - protected open val selectdesc = + protected open val selectDesc = "div.description-summary div.summary__content, div.summary_content div.post-content_item > h5 + div, div.summary_content div.manga-excerpt, div.post-content div.manga-summary, div.post-content div.desc, div.c-page__content div.summary__content" - protected open val selectgenre = "div.genres-content a" - protected open val selectdate = "span.chapter-release-date i" - protected open val selectchapter = "li.wp-manga-chapter" + protected open val selectGenre = "div.genres-content a" protected open val selectTestAsync = "div.listing-chapters_wrap" override suspend fun getDetails(manga: Manga): Manga = coroutineScope { @@ -278,7 +276,7 @@ internal abstract class MadaraParser( async { getChapters(manga, doc) } } - val desc = body.select(selectdesc).html() + val desc = body.select(selectDesc).html() val stateDiv = (body.selectFirst("div.post-content_item:contains(Status)") ?: body.selectFirst("div.post-content_item:contains(Statut)") @@ -307,7 +305,7 @@ internal abstract class MadaraParser( .firstOrNull()?.tableValue()?.text()?.trim() manga.copy( - tags = doc.body().select(selectgenre).mapNotNullToSet { a -> + tags = doc.body().select(selectGenre).mapNotNullToSet { a -> MangaTag( key = a.attr("href").removeSuffix("/").substringAfterLast('/'), title = a.text().toTitleCase(), @@ -322,13 +320,16 @@ internal abstract class MadaraParser( } + protected open val selectDate = "span.chapter-release-date i" + protected open val selectChapter = "li.wp-manga-chapter" + protected open suspend fun getChapters(manga: Manga, doc: Document): List { val dateFormat = SimpleDateFormat(datePattern, sourceLocale) - return doc.body().select(selectchapter).mapChapters(reversed = true) { i, li -> + return doc.body().select(selectChapter).mapChapters(reversed = true) { i, li -> val a = li.selectFirst("a") val href = a?.attrAsRelativeUrlOrNull("href") ?: li.parseFailed("Link is missing") val link = href + stylepage - val dateText = li.selectFirst("a.c-new-tag")?.attr("title") ?: li.selectFirst(selectdate)?.text() + val dateText = li.selectFirst("a.c-new-tag")?.attr("title") ?: li.selectFirst(selectDate)?.text() val name = a.selectFirst("p")?.text() ?: a.ownText() MangaChapter( id = generateUid(href), @@ -359,11 +360,11 @@ internal abstract class MadaraParser( } val dateFormat = SimpleDateFormat(datePattern, sourceLocale) - return doc.select(selectchapter).mapChapters(reversed = true) { i, li -> + return doc.select(selectChapter).mapChapters(reversed = true) { i, li -> val a = li.selectFirst("a") val href = a?.attrAsRelativeUrlOrNull("href") ?: li.parseFailed("Link is missing") val link = href + stylepage - val dateText = li.selectFirst("a.c-new-tag")?.attr("title") ?: li.selectFirst(selectdate)?.text() + val dateText = li.selectFirst("a.c-new-tag")?.attr("title") ?: li.selectFirst(selectDate)?.text() val name = a.selectFirst("p")?.text() ?: a.ownText() MangaChapter( id = generateUid(href), @@ -408,7 +409,7 @@ internal abstract class MadaraParser( ) val unsaltedCiphertext = context.decodeBase64(chapterData.getString("ct")) val salt = chapterData.getString("s").toString().decodeHex() - val ciphertext = SALTED + salt + unsaltedCiphertext + val ciphertext = "Salted__".toByteArray(Charsets.UTF_8) + salt + unsaltedCiphertext val rawImgArray = CryptoAES(context).decrypt(context.encodeBase64(ciphertext), password) val imgArrayString = rawImgArray.filterNot { c -> c == '[' || c == ']' || c == '\\' || c == '"' } @@ -567,7 +568,5 @@ internal abstract class MadaraParser( return chunked(2).map { it.toInt(16).toByte() }.toByteArray() } - const val URL_SEARCH_PREFIX = "slug:" - val SALTED = "Salted__".toByteArray(Charsets.UTF_8) } } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/Hentaixdickgirl.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/Hentaixdickgirl.kt index 8016a29b..ba94ae73 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/Hentaixdickgirl.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/Hentaixdickgirl.kt @@ -20,11 +20,11 @@ internal class Hentaixdickgirl(context: MangaLoaderContext) : override suspend fun getChapters(manga: Manga, doc: Document): List { val root2 = doc.body().selectFirstOrThrow("div.listing-chapters_wrap") val dateFormat = SimpleDateFormat(datePattern, sourceLocale) - return root2.select(selectchapter).mapChapters(reversed = true) { i, li -> + return root2.select(selectChapter).mapChapters(reversed = true) { i, li -> val a = li.selectFirst("a") val href = a?.attrAsRelativeUrlOrNull("href") ?: li.parseFailed("Link is missing") val link = href + stylepage - val dateText = li.selectFirst("a.c-new-tag")?.attr("title") ?: li.selectFirst(selectdate)?.text() + val dateText = li.selectFirst("a.c-new-tag")?.attr("title") ?: li.selectFirst(selectDate)?.text() val name = a.selectFirst("p")?.text() ?: a.ownText() MangaChapter( id = generateUid(href), diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/IsekaiScan.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/IsekaiScan.kt index 6cb95ab1..1d01457b 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/IsekaiScan.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/IsekaiScan.kt @@ -109,7 +109,7 @@ internal class IsekaiScan(context: MangaLoaderContext) : val dateFormat = SimpleDateFormat(datePattern, sourceLocale) - return doc.select(selectchapter).mapChapters(reversed = true) { i, li -> + return doc.select(selectChapter).mapChapters(reversed = true) { i, li -> val a = li.selectFirst("a") val href = a?.attrAsRelativeUrlOrNull("href") ?: li.parseFailed("Link is missing") val link = href + stylepage @@ -121,7 +121,7 @@ internal class IsekaiScan(context: MangaLoaderContext) : branch = null, uploadDate = parseChapterDate( dateFormat, - li.selectFirst(selectdate)?.text(), + li.selectFirst(selectDate)?.text(), ), scanlator = null, source = source, diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MangaDass.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MangaDass.kt index 0d6b7bb4..13ceec1f 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MangaDass.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MangaDass.kt @@ -16,8 +16,8 @@ internal class MangaDass(context: MangaLoaderContext) : override val datePattern = "dd MMM yyyy" override val withoutAjax = true - override val selectchapter = "li.a-h" - override val selectdesc = "div.ss-manga" + override val selectChapter = "li.a-h" + override val selectDesc = "div.ss-manga" override suspend fun getListPage( page: Int, @@ -110,7 +110,7 @@ internal class MangaDass(context: MangaLoaderContext) : val chaptersDeferred = async { getChapters(manga, doc) } - val desc = body.select(selectdesc).html() + val desc = body.select(selectDesc).html() val stateDiv = (body.selectFirst("div.post-content_item:contains(Status)"))?.selectLast("div.summary-content") @@ -128,7 +128,7 @@ internal class MangaDass(context: MangaLoaderContext) : .firstOrNull()?.tableValue()?.text()?.trim() manga.copy( - tags = doc.body().select(selectgenre).mapNotNullToSet { a -> + tags = doc.body().select(selectGenre).mapNotNullToSet { a -> MangaTag( key = a.attr("href").removeSuffix("/").substringAfterLast('/'), title = a.text().toTitleCase(), @@ -145,11 +145,11 @@ internal class MangaDass(context: MangaLoaderContext) : override suspend fun getChapters(manga: Manga, doc: Document): List { val root2 = doc.body().selectFirstOrThrow("div.panel-manga-chapter") val dateFormat = SimpleDateFormat(datePattern, sourceLocale) - return root2.select(selectchapter).mapChapters(reversed = true) { i, li -> + return root2.select(selectChapter).mapChapters(reversed = true) { i, li -> val a = li.selectFirst("a") val href = a?.attrAsRelativeUrlOrNull("href") ?: li.parseFailed("Link is missing") val link = href + stylepage - val dateText = li.selectFirst("a.c-new-tag")?.attr("title") ?: li.selectFirst(selectdate)?.text() + val dateText = li.selectFirst("a.c-new-tag")?.attr("title") ?: li.selectFirst(selectDate)?.text() val name = a.selectFirst("p")?.text() ?: a.ownText() MangaChapter( id = generateUid(href), diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MangaDna.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MangaDna.kt index cc4cac05..cf26faaa 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MangaDna.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MangaDna.kt @@ -16,8 +16,8 @@ internal class MangaDna(context: MangaLoaderContext) : override val datePattern = "dd MMM yyyy" override val withoutAjax = true - override val selectdesc = "div.dsct" - override val selectchapter = "li.a-h" + override val selectDesc = "div.dsct" + override val selectChapter = "li.a-h" override suspend fun getListPage( page: Int, @@ -108,7 +108,7 @@ internal class MangaDna(context: MangaLoaderContext) : val chaptersDeferred = async { getChapters(manga, doc) } - val desc = body.select(selectdesc).html() + val desc = body.select(selectDesc).html() val stateDiv = (body.selectFirst("div.post-content_item:contains(Status)"))?.selectLast("div.summary-content") @@ -126,7 +126,7 @@ internal class MangaDna(context: MangaLoaderContext) : .firstOrNull()?.tableValue()?.text()?.trim() manga.copy( - tags = doc.body().select(selectgenre).mapNotNullToSet { a -> + tags = doc.body().select(selectGenre).mapNotNullToSet { a -> MangaTag( key = a.attr("href").removeSuffix("/").substringAfterLast('/'), title = a.text().toTitleCase(), @@ -143,11 +143,11 @@ internal class MangaDna(context: MangaLoaderContext) : override suspend fun getChapters(manga: Manga, doc: Document): List { val root2 = doc.body().selectFirstOrThrow("div.panel-manga-chapter") val dateFormat = SimpleDateFormat(datePattern, sourceLocale) - return root2.select(selectchapter).mapChapters(reversed = true) { i, li -> + return root2.select(selectChapter).mapChapters(reversed = true) { i, li -> val a = li.selectFirst("a") val href = a?.attrAsRelativeUrlOrNull("href") ?: li.parseFailed("Link is missing") val link = href + stylepage - val dateText = li.selectFirst("a.c-new-tag")?.attr("title") ?: li.selectFirst(selectdate)?.text() + val dateText = li.selectFirst("a.c-new-tag")?.attr("title") ?: li.selectFirst(selectDate)?.text() val name = a.selectFirst("p")?.text() ?: a.ownText() MangaChapter( id = generateUid(href), diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MangaDods.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MangaDods.kt index 2a7cfc65..ae5ca31c 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MangaDods.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MangaDods.kt @@ -9,6 +9,6 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser internal class MangaDods(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANGADODS, "www.mangadods.com") { - override val selectdesc = "div.description-summary" + override val selectDesc = "div.description-summary" override val datePattern = "dd-MMM" } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/ManhwaTop.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/ManhwaTop.kt index 4ed26b46..7bf0df6b 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/ManhwaTop.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/ManhwaTop.kt @@ -24,11 +24,11 @@ internal class ManhwaTop(context: MangaLoaderContext) : val dateFormat = SimpleDateFormat(datePattern, sourceLocale) - return doc.select(selectchapter).mapChapters(reversed = true) { i, li -> + return doc.select(selectChapter).mapChapters(reversed = true) { i, li -> val a = li.selectFirst("a") val href = a?.attrAsRelativeUrlOrNull("href") ?: li.parseFailed("Link is missing") val link = href + stylepage - val dateText = li.selectFirst("a.c-new-tag")?.attr("title") ?: li.selectFirst(selectdate)?.text() + val dateText = li.selectFirst("a.c-new-tag")?.attr("title") ?: li.selectFirst(selectDate)?.text() val name = a.selectFirst("p")?.text() ?: a.ownText() val dateText2 = if (dateText != "Complete") { dateText diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/Manhwasco.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/Manhwasco.kt index 9410165e..fc31bbc7 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/Manhwasco.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/Manhwasco.kt @@ -9,6 +9,6 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser internal class Manhwasco(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANHWASCO, "manhwasco.net") { - override val selectgenre = "div.mg_genres a" + override val selectGenre = "div.mg_genres a" } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MmScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MmScans.kt index 6952cf0e..f103a030 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MmScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MmScans.kt @@ -10,7 +10,7 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser internal class MmScans(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MMSCANS, "mm-scans.org") { - override val selectchapter = "li.chapter-li" - override val selectdesc = "div.summary-text" + override val selectChapter = "li.chapter-li" + override val selectDesc = "div.summary-text" override val withoutAjax = true } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/ManhwaLatino.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/ManhwaLatino.kt index d4ae4e93..0d4a9b04 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/ManhwaLatino.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/ManhwaLatino.kt @@ -22,11 +22,11 @@ internal class ManhwaLatino(context: MangaLoaderContext) : override suspend fun getChapters(manga: Manga, doc: Document): List { val root2 = doc.body().selectFirstOrThrow("div.content-area") val dateFormat = SimpleDateFormat(datePattern, sourceLocale) - return root2.select(selectchapter).mapChapters(reversed = true) { i, li -> + return root2.select(selectChapter).mapChapters(reversed = true) { i, li -> val a = li.selectFirst("a") val href = a?.attrAsRelativeUrlOrNull("href") ?: li.parseFailed("Link is missing") val link = href + stylepage - val dateText = li.selectFirst("a.c-new-tag")?.attr("title") ?: li.selectFirst(selectdate)?.text() + val dateText = li.selectFirst("a.c-new-tag")?.attr("title") ?: li.selectFirst(selectDate)?.text() val dateText2 = if (dateText == "¡Recién publicado!") { "1 mins ago" } else { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/ja/HachiManga.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/ja/HachiManga.kt index 80082117..67353844 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/ja/HachiManga.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/ja/HachiManga.kt @@ -17,9 +17,9 @@ import java.util.* internal class HachiManga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.HACHIMANGA, "hachiraw.com") { override val datePattern = "MMMM dd, yyyy" - override val selectchapter = "li.a-h" - override val selectdate = "span.chapter-tim" - override val selectdesc = "div.dsct" + override val selectChapter = "li.a-h" + override val selectDate = "span.chapter-tim" + override val selectDesc = "div.dsct" override val tagPrefix = "genre/" override val sortOrders: Set = EnumSet.of( @@ -119,7 +119,7 @@ internal class HachiManga(context: MangaLoaderContext) : MadaraParser(context, M val chaptersDeferred = async { getChapters(manga, doc) } - val desc = body.select(selectdesc).html() + val desc = body.select(selectDesc).html() val stateDiv = (body.selectFirst("div.post-content_item:contains(状態)"))?.selectLast("div.summary-content") @@ -135,7 +135,7 @@ internal class HachiManga(context: MangaLoaderContext) : MadaraParser(context, M ?.text()?.trim() manga.copy( - tags = doc.body().select(selectgenre).mapNotNullToSet { a -> + tags = doc.body().select(selectGenre).mapNotNullToSet { a -> MangaTag( key = a.attr("href").removeSuffix("/").substringAfterLast('/'), title = a.text().toTitleCase(), @@ -152,11 +152,11 @@ internal class HachiManga(context: MangaLoaderContext) : MadaraParser(context, M override suspend fun getChapters(manga: Manga, doc: Document): List { val root2 = doc.body().selectFirstOrThrow("div.manga-content") val dateFormat = SimpleDateFormat(datePattern, sourceLocale) - return root2.select(selectchapter).mapChapters(reversed = true) { i, li -> + return root2.select(selectChapter).mapChapters(reversed = true) { i, li -> val a = li.selectFirst("a") val href = a?.attrAsRelativeUrlOrNull("href") ?: li.parseFailed("Link is missing") val link = href + stylepage - val dateText = li.selectFirst("a.c-new-tag")?.attr("title") ?: li.selectFirst(selectdate)?.text() + val dateText = li.selectFirst("a.c-new-tag")?.attr("title") ?: li.selectFirst(selectDate)?.text() val name = a.selectFirst("p")?.text() ?: a.ownText() MangaChapter( id = generateUid(href), diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/pt/LimaScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/pt/LimaScans.kt index 38b7d01f..5b9576c3 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/pt/LimaScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/pt/LimaScans.kt @@ -27,11 +27,11 @@ internal class LimaScans(context: MangaLoaderContext) : val dateFormat = SimpleDateFormat(datePattern, sourceLocale) - return doc.select(selectchapter).mapChapters(reversed = true) { i, li -> + return doc.select(selectChapter).mapChapters(reversed = true) { i, li -> val a = li.selectFirstOrThrow("a") val href = a.attrAsRelativeUrl("href") val link = href + stylepage - val dateText = li.selectFirst("a.c-new-tag")?.attr("title") ?: li.selectFirst(selectdate)?.text() + val dateText = li.selectFirst("a.c-new-tag")?.attr("title") ?: li.selectFirst(selectDate)?.text() val name = a.selectFirst("p")?.text() ?: a.ownText() MangaChapter( id = generateUid(href), diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/Mangabilgini.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/Mangabilgini.kt index c9979369..556861f9 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/Mangabilgini.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/Mangabilgini.kt @@ -11,7 +11,7 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser internal class Mangabilgini(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANGABILGINI, "mangabilgini.com", 44) { - override val selectdesc = "div.ozet__icerik" + override val selectDesc = "div.ozet__icerik" override val postreq = true override val datePattern = "d MMMM yyyy" } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/vi/Saytruyenhay.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/vi/Saytruyenhay.kt index 8b0fcc69..0b8b782f 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/vi/Saytruyenhay.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/vi/Saytruyenhay.kt @@ -123,7 +123,7 @@ internal class Saytruyenhay(context: MangaLoaderContext) : val chaptersDeferred = async { getChapters(manga, doc) } - val desc = body.select(selectdesc).let { + val desc = body.select(selectDesc).let { if (it.select("p").text().isNotEmpty()) { it.select("p").joinToString(separator = "\n\n") { p -> p.text().replace("
", "\n") @@ -160,7 +160,7 @@ internal class Saytruyenhay(context: MangaLoaderContext) : .firstOrNull()?.tableValue()?.text()?.trim() manga.copy( - tags = doc.body().select(selectgenre).mapNotNullToSet { a -> + tags = doc.body().select(selectGenre).mapNotNullToSet { a -> MangaTag( key = a.attr("href").removeSuffix("/").substringAfterLast('/'), title = a.text().toTitleCase(), diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/manga18/Manga18Parser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/manga18/Manga18Parser.kt index cc17baa0..a804baa2 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/manga18/Manga18Parser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/manga18/Manga18Parser.kt @@ -124,9 +124,7 @@ internal abstract class Manga18Parser( } } - protected open val selectdesc = "div.detail_reviewContent" - protected open val selectdate = "div.item p" - protected open val selectchapter = "div.chapter_box li" + protected open val selectDesc = "div.detail_reviewContent" protected open val selectState = "div.item:contains(Status) div.info_value" protected open val selectAlt = "div.item:contains(Other name) div.info_value" protected open val selectTag = "div.item:contains(Categories) div.info_value a" @@ -138,7 +136,7 @@ internal abstract class Manga18Parser( val chaptersDeferred = async { getChapters(manga, doc) } - val desc = doc.selectFirstOrThrow(selectdesc).html() + val desc = doc.selectFirstOrThrow(selectDesc).html() val stateDiv = body.selectFirst(selectState) @@ -168,12 +166,15 @@ internal abstract class Manga18Parser( } + protected open val selectDate = "div.item p" + protected open val selectChapter = "div.chapter_box li" + protected open suspend fun getChapters(manga: Manga, doc: Document): List { val dateFormat = SimpleDateFormat(datePattern, sourceLocale) - return doc.body().select(selectchapter).mapChapters(reversed = true) { i, li -> + return doc.body().select(selectChapter).mapChapters(reversed = true) { i, li -> val a = li.selectFirstOrThrow("a") val href = a.attrAsRelativeUrl("href") - val dateText = li.selectFirst(selectdate)?.text() + val dateText = li.selectFirst(selectDate)?.text() MangaChapter( id = generateUid(href), name = a.text(), diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mmrcms/MmrcmsParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mmrcms/MmrcmsParser.kt index 37948641..0bfe0170 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mmrcms/MmrcmsParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mmrcms/MmrcmsParser.kt @@ -27,7 +27,7 @@ internal abstract class MmrcmsParser( SortOrder.UPDATED, ) - protected open val listeurl = "filterList" + protected open val listUrl = "filterList" protected open val tagUrl = "manga-list" protected open val datePattern = "dd MMM. yyyy" @@ -68,7 +68,7 @@ internal abstract class MmrcmsParser( buildString { append("https://") append(domain) - if (page == 2) { + if (page > 1) { append("/STOP") } } @@ -77,7 +77,7 @@ internal abstract class MmrcmsParser( append("https://") append(domain) - append("/$listeurl/") + append("/$listUrl/") append("?page=") append(page.toString()) append("&asc=true&author=&tag=") @@ -161,7 +161,7 @@ internal abstract class MmrcmsParser( } } - protected open val selectdesc = "div.well" + protected open val selectDesc = "div.well" protected open val selectState = "dt:contains(Statut)" protected open val selectAlt = "dt:contains(Autres noms)" protected open val selectAut = "dt:contains(Auteur(s))" @@ -174,7 +174,7 @@ internal abstract class MmrcmsParser( val chaptersDeferred = async { getChapters(manga, doc) } - val desc = doc.selectFirstOrThrow(selectdesc).text() + val desc = doc.selectFirstOrThrow(selectDesc).text() val stateDiv = body.selectFirst(selectState)?.nextElementSibling() @@ -208,16 +208,16 @@ internal abstract class MmrcmsParser( } - protected open val selectdate = "div.date-chapter-title-rtl" - protected open val selectchapter = "ul.chapters > li:not(.btn)" + protected open val selectDate = "div.date-chapter-title-rtl" + protected open val selectChapter = "ul.chapters > li:not(.btn)" protected open suspend fun getChapters(manga: Manga, doc: Document): List { val dateFormat = SimpleDateFormat(datePattern, sourceLocale) - return doc.body().select(selectchapter).mapChapters(reversed = true) { i, li -> + return doc.body().select(selectChapter).mapChapters(reversed = true) { i, li -> val a = li.selectFirstOrThrow("a") val href = a.attrAsRelativeUrl("href") - val dateText = li.selectFirst(selectdate)?.text() + val dateText = li.selectFirst(selectDate)?.text() MangaChapter( id = generateUid(href), name = li.selectFirstOrThrow("h5").text(), diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mmrcms/fr/ScanFrOrg.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mmrcms/fr/ScanFrOrg.kt index 069412cd..37870f66 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mmrcms/fr/ScanFrOrg.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mmrcms/fr/ScanFrOrg.kt @@ -14,5 +14,5 @@ internal class ScanFrOrg(context: MangaLoaderContext) : override val sourceLocale: Locale = Locale.ENGLISH - override val selectchapter = "ul.chapterszozo li" + override val selectChapter = "ul.chapterszozo li" } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mmrcms/pt/Animaregia.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mmrcms/pt/Animaregia.kt index 2ab9221a..72aae09b 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mmrcms/pt/Animaregia.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mmrcms/pt/Animaregia.kt @@ -20,7 +20,7 @@ import java.util.Locale internal class Animaregia(context: MangaLoaderContext) : MmrcmsParser(context, MangaSource.ANIMAREGIA, "animaregia.net") { - override val selectdate = "div.col-md-4" + override val selectDate = "div.col-md-4" override val sourceLocale: Locale = Locale.ENGLISH //temporary @@ -36,7 +36,7 @@ internal class Animaregia(context: MangaLoaderContext) : val chaptersDeferred = async { getChapters(manga, doc) } - val desc = doc.select(selectdesc).text() + val desc = doc.select(selectDesc).text() val stateDiv = body.selectFirst("li.list-group-item:contains(Status)")?.lastElementChild()