From 23cc86e429d37c217af0eb53345f76f8376e6774 Mon Sep 17 00:00:00 2001 From: devi Date: Sat, 21 Oct 2023 21:20:48 +0200 Subject: [PATCH] Minor daily update --- .../parsers/site/madara/ar/MangaLekOrg.kt | 13 --- .../kotatsu/parsers/site/madara/en/HManhwa.kt | 16 ---- .../parsers/site/madara/pt/PeachScan.kt | 12 --- .../parsers/site/madara/tr/Mangakeyfi.kt | 13 --- .../parsers/site/madara/tr/MonoManga.kt | 12 --- .../parsers/site/madara/tr/ViyaFansub.kt | 6 +- .../kotatsu/parsers/site/madara/tr/YaoiTr.kt | 2 +- .../site/mangabox/en/MangakakalotTv.kt | 86 +++++++++++++++++++ .../site/mangareader/en/CosmicScansParser.kt | 2 +- .../parsers/site/mangareader/id/Komikcast.kt | 2 +- .../parsers/site/mangareader/id/Mangaindo.kt | 14 --- 11 files changed, 91 insertions(+), 87 deletions(-) delete mode 100644 src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/ar/MangaLekOrg.kt delete mode 100644 src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/HManhwa.kt delete mode 100644 src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/pt/PeachScan.kt delete mode 100644 src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/Mangakeyfi.kt delete mode 100644 src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/MonoManga.kt create mode 100644 src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangabox/en/MangakakalotTv.kt delete mode 100644 src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Mangaindo.kt diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/ar/MangaLekOrg.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/ar/MangaLekOrg.kt deleted file mode 100644 index f279720d..00000000 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/ar/MangaLekOrg.kt +++ /dev/null @@ -1,13 +0,0 @@ -package org.koitharu.kotatsu.parsers.site.madara.ar - -import org.koitharu.kotatsu.parsers.MangaLoaderContext -import org.koitharu.kotatsu.parsers.MangaSourceParser -import org.koitharu.kotatsu.parsers.model.MangaSource -import org.koitharu.kotatsu.parsers.site.madara.MadaraParser - -@MangaSourceParser("MANGALEK_ORG", "MangaLek.org", "ar") -internal class MangaLekOrg(context: MangaLoaderContext) : - MadaraParser(context, MangaSource.MANGALEK_ORG, "ww.mangalek.org", pageSize = 10) { - override val listUrl = "comics/" - override val datePattern = "dd-MM-yyyy" -} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/HManhwa.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/HManhwa.kt deleted file mode 100644 index 04ef7cfa..00000000 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/HManhwa.kt +++ /dev/null @@ -1,16 +0,0 @@ -package org.koitharu.kotatsu.parsers.site.madara.en - -import org.koitharu.kotatsu.parsers.MangaLoaderContext -import org.koitharu.kotatsu.parsers.MangaSourceParser -import org.koitharu.kotatsu.parsers.model.ContentType -import org.koitharu.kotatsu.parsers.model.MangaSource -import org.koitharu.kotatsu.parsers.site.madara.MadaraParser - -@MangaSourceParser("HMANHWA", "H Manhwa", "en", ContentType.HENTAI) -internal class HManhwa(context: MangaLoaderContext) : - MadaraParser(context, MangaSource.HMANHWA, "hmanhwa.com") { - override val tagPrefix = "manhwa-genre/" - override val listUrl = "manhwa/" - override val datePattern = "dd MMM" - override val postReq = true -} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/pt/PeachScan.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/pt/PeachScan.kt deleted file mode 100644 index 5129e67a..00000000 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/pt/PeachScan.kt +++ /dev/null @@ -1,12 +0,0 @@ -package org.koitharu.kotatsu.parsers.site.madara.pt - -import org.koitharu.kotatsu.parsers.MangaLoaderContext -import org.koitharu.kotatsu.parsers.MangaSourceParser -import org.koitharu.kotatsu.parsers.model.MangaSource -import org.koitharu.kotatsu.parsers.site.madara.MadaraParser - -@MangaSourceParser("PEACHSCAN", "PeachScan", "pt") -internal class PeachScan(context: MangaLoaderContext) : - MadaraParser(context, MangaSource.PEACHSCAN, "www.peachscan.com", 10) { - override val datePattern: String = "dd 'de' MMMMM 'de' yyyy" -} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/Mangakeyfi.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/Mangakeyfi.kt deleted file mode 100644 index b4645167..00000000 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/Mangakeyfi.kt +++ /dev/null @@ -1,13 +0,0 @@ -package org.koitharu.kotatsu.parsers.site.madara.tr - -import org.koitharu.kotatsu.parsers.MangaLoaderContext -import org.koitharu.kotatsu.parsers.MangaSourceParser -import org.koitharu.kotatsu.parsers.model.MangaSource -import org.koitharu.kotatsu.parsers.site.madara.MadaraParser - -@MangaSourceParser("MANGAKEYFI", "MangaKeyfi", "tr") -internal class Mangakeyfi(context: MangaLoaderContext) : - MadaraParser(context, MangaSource.MANGAKEYFI, "mangakeyfi.net", 20) { - override val tagPrefix = "mangalar-genre/" - override val datePattern = "d MMMM yyyy" -} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/MonoManga.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/MonoManga.kt deleted file mode 100644 index d0545434..00000000 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/MonoManga.kt +++ /dev/null @@ -1,12 +0,0 @@ -package org.koitharu.kotatsu.parsers.site.madara.tr - -import org.koitharu.kotatsu.parsers.MangaLoaderContext -import org.koitharu.kotatsu.parsers.MangaSourceParser -import org.koitharu.kotatsu.parsers.model.MangaSource -import org.koitharu.kotatsu.parsers.site.madara.MadaraParser - -@MangaSourceParser("MONOMANGA", "MonoManga", "tr") -internal class MonoManga(context: MangaLoaderContext) : - MadaraParser(context, MangaSource.MONOMANGA, "monomanga.com") { - override val datePattern = "d MMM yyyy" -} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/ViyaFansub.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/ViyaFansub.kt index ecfddd20..cf03402b 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/ViyaFansub.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/ViyaFansub.kt @@ -6,9 +6,7 @@ import org.koitharu.kotatsu.parsers.model.ContentType import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.site.madara.MadaraParser +//Manga +18 require login. @MangaSourceParser("VIYAFANSUB", "ViyaFansub", "tr", ContentType.HENTAI) internal class ViyaFansub(context: MangaLoaderContext) : - MadaraParser(context, MangaSource.VIYAFANSUB, "viyafansub.com") { - - override val datePattern = "d MMMM yyyy" -} + MadaraParser(context, MangaSource.VIYAFANSUB, "viyafansub.com") diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/YaoiTr.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/YaoiTr.kt index 1f7a624e..18ded601 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/YaoiTr.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/YaoiTr.kt @@ -7,6 +7,6 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser @MangaSourceParser("YAOITR", "YaoiTr", "tr") internal class YaoiTr(context: MangaLoaderContext) : - MadaraParser(context, MangaSource.YAOITR, "yaoitr.com", 16) { + MadaraParser(context, MangaSource.YAOITR, "yaoitr.online", 16) { override val datePattern = "d MMMM yyyy" } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangabox/en/MangakakalotTv.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangabox/en/MangakakalotTv.kt new file mode 100644 index 00000000..fa77b478 --- /dev/null +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangabox/en/MangakakalotTv.kt @@ -0,0 +1,86 @@ +package org.koitharu.kotatsu.parsers.site.mangabox.en + +import org.koitharu.kotatsu.parsers.MangaLoaderContext +import org.koitharu.kotatsu.parsers.MangaSourceParser +import org.koitharu.kotatsu.parsers.config.ConfigKey +import org.koitharu.kotatsu.parsers.model.* +import org.koitharu.kotatsu.parsers.site.mangabox.MangaboxParser +import org.koitharu.kotatsu.parsers.util.* + +@MangaSourceParser("MANGAKAKALOTTV", "Mangakakalot.tv", "en") +internal class MangakakalotTv(context: MangaLoaderContext) : + MangaboxParser(context, MangaSource.MANGAKAKALOTTV) { + + override val configKeyDomain = ConfigKey.Domain("ww6.mangakakalot.tv") + override val searchUrl = "/search/" + override val listUrl = "/manga_list" + + override suspend fun getListPage( + page: Int, + query: String?, + tags: Set?, + sortOrder: SortOrder, + ): List { + val tag = tags.oneOrThrowIfMany() + val url = buildString { + append("https://") + append(domain) + if (!query.isNullOrEmpty()) { + append(searchUrl) + append(query.urlEncoded()) + append("?page=") + append(page.toString()) + } else { + append("$listUrl/") + append("?type=") + when (sortOrder) { + SortOrder.POPULARITY -> append("topview") + SortOrder.UPDATED -> append("latest") + SortOrder.NEWEST -> append("newest") + else -> append("latest") + } + if (!tags.isNullOrEmpty()) { + append("&category=") + append(tag?.key.orEmpty()) + } + if (page > 1) { + append("&page=") + append(page.toString()) + } + } + } + val doc = webClient.httpGet(url).parseHtml() + return doc.select("div.list-truyen-item-wrap").ifEmpty { + doc.select("div.story_item") + }.map { div -> + val href = div.selectFirstOrThrow("a").attrAsRelativeUrl("href") + Manga( + id = generateUid(href), + url = href, + publicUrl = href.toAbsoluteUrl(div.host ?: domain), + coverUrl = div.selectFirst("img")?.src().orEmpty(), + title = div.selectFirstOrThrow("h3").text().orEmpty(), + altTitle = null, + rating = RATING_UNKNOWN, + tags = emptySet(), + author = null, + state = null, + source = source, + isNsfw = isNsfwSource, + ) + } + } + + override val selectTagMap = "ul.tag li a" + + override suspend fun getTags(): Set { + val doc = webClient.httpGet("https://$domain/$listUrl").parseHtml() + return doc.select(selectTagMap).mapNotNullToSet { a -> + MangaTag( + key = a.attr("href").substringAfterLast("category=").substringBefore("&"), + title = a.attr("title"), + source = source, + ) + } + } +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/CosmicScansParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/CosmicScansParser.kt index f58e52f9..3feb38fd 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/CosmicScansParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/CosmicScansParser.kt @@ -7,6 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("COSMICSCANS", "CosmicScans", "en") internal class CosmicScansParser(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.COSMICSCANS, "cosmicscans.com", pageSize = 20, searchPageSize = 10) { + MangaReaderParser(context, MangaSource.COSMICSCANS, "cosmic-scans.com", pageSize = 20, searchPageSize = 10) { override val datePattern = "MMM d, yyyy" } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Komikcast.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Komikcast.kt index f6fbb655..c57ec637 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Komikcast.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Komikcast.kt @@ -13,7 +13,7 @@ import java.util.* @MangaSourceParser("KOMIKCAST", "KomikCast", "id") internal class Komikcast(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.KOMIKCAST, "komikcast.vip", pageSize = 60, searchPageSize = 28) { + MangaReaderParser(context, MangaSource.KOMIKCAST, "komikcast.ch", pageSize = 60, searchPageSize = 28) { override val listUrl = "/daftar-komik" override val datePattern = "MMM d, yyyy" diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Mangaindo.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Mangaindo.kt deleted file mode 100644 index 913dc0e7..00000000 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Mangaindo.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.koitharu.kotatsu.parsers.site.mangareader.id - -import org.koitharu.kotatsu.parsers.MangaLoaderContext -import org.koitharu.kotatsu.parsers.MangaSourceParser -import org.koitharu.kotatsu.parsers.model.MangaSource -import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser -import java.util.* - -@MangaSourceParser("MANGAINDO", "MangaIndo", "id") -internal class Mangaindo(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.MANGAINDO, "mangaindo.me", pageSize = 26, searchPageSize = 26) { - override val datePattern = "MMM d, yyyy" - override val sourceLocale: Locale = Locale.ENGLISH -}