From 508647eb5a3d1db5d1f2fbfb60dde539749996a5 Mon Sep 17 00:00:00 2001 From: devi Date: Sat, 28 Oct 2023 22:22:01 +0200 Subject: [PATCH] Minor daily update ( and remove warning for name ) --- .../parsers/site/heancms/en/OmegaScans.kt | 11 +++++++++++ .../parsers/site/heancms/es/YugenMangasEs.kt | 2 +- .../parsers/site/heancms/pt/ReaperScansPt.kt | 2 +- .../parsers/site/madara/all/ManyToonClub.kt | 2 +- .../parsers/site/madara/en/HuntersScanEn.kt | 2 +- .../parsers/site/madara/en/MangaOnline.kt | 2 +- .../parsers/site/madara/fr/PantheonScan.kt | 2 +- .../parsers/site/madara/fr/ReaperScansFr.kt | 2 +- .../parsers/site/madara/id/GourmetScansId.kt | 2 +- .../parsers/site/madara/tr/ReaperScansTr.kt | 2 +- .../parsers/site/mangareader/ar/Manjanoon.kt | 2 +- .../parsers/site/mangareader/ar/Ozulscans.kt | 2 +- .../site/mangareader/en/CosmicScansParser.kt | 2 +- .../parsers/site/mangareader/en/FlameComics.kt | 12 ++++++++++++ .../parsers/site/mangareader/en/ManhwaFreak.kt | 17 +---------------- .../parsers/site/mangareader/en/Manjanoon.kt | 2 +- .../site/mangareader/fr/ManhwaFreakFr.kt | 15 +-------------- .../site/mangareader/fr/PantheonScanFr.kt | 2 +- .../parsers/site/mangareader/id/CosmicScans.kt | 2 +- .../{madara => mangareader}/pt/HikariScan.kt | 8 +++----- .../site/otakusanctuary/en/OtakusanEn.kt | 2 +- .../site/otakusanctuary/vi/OtakusanVi.kt | 5 +---- .../kotatsu/parsers/site/pt/MangaOnline.kt | 2 +- .../kotatsu/parsers/site/pt/YugenMangas.kt | 3 +-- 24 files changed, 47 insertions(+), 58 deletions(-) create mode 100644 src/main/kotlin/org/koitharu/kotatsu/parsers/site/heancms/en/OmegaScans.kt create mode 100644 src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/FlameComics.kt rename src/main/kotlin/org/koitharu/kotatsu/parsers/site/{madara => mangareader}/pt/HikariScan.kt (51%) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/heancms/en/OmegaScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/heancms/en/OmegaScans.kt new file mode 100644 index 00000000..c27444f4 --- /dev/null +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/heancms/en/OmegaScans.kt @@ -0,0 +1,11 @@ +package org.koitharu.kotatsu.parsers.site.heancms.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.heancms.HeanCms + +@MangaSourceParser("OMEGASCANS", "OmegaScans", "en", ContentType.HENTAI) +internal class OmegaScans(context: MangaLoaderContext) : + HeanCms(context, MangaSource.OMEGASCANS, "omegascans.org") diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/heancms/es/YugenMangasEs.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/heancms/es/YugenMangasEs.kt index 0c0dcd2a..9467a317 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/heancms/es/YugenMangasEs.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/heancms/es/YugenMangasEs.kt @@ -16,7 +16,7 @@ import org.koitharu.kotatsu.parsers.util.json.mapJSON import org.koitharu.kotatsu.parsers.util.parseJson import org.koitharu.kotatsu.parsers.util.urlEncoded -@MangaSourceParser("YUGEN_MANGAS_ES", "YugenMangas", "es", ContentType.HENTAI) +@MangaSourceParser("YUGEN_MANGAS_ES", "YugenMangas.lat", "es", ContentType.HENTAI) internal class YugenMangasEs(context: MangaLoaderContext) : HeanCms(context, MangaSource.YUGEN_MANGAS_ES, "yugenmangas.lat") { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/heancms/pt/ReaperScansPt.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/heancms/pt/ReaperScansPt.kt index da353e08..7fa8461d 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/heancms/pt/ReaperScansPt.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/heancms/pt/ReaperScansPt.kt @@ -6,7 +6,7 @@ import org.koitharu.kotatsu.parsers.config.ConfigKey import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.site.heancms.HeanCms -@MangaSourceParser("REAPERSCANSPT", "ReaperScans", "pt") +@MangaSourceParser("REAPERSCANSPT", "ReaperScans.net", "pt") internal class ReaperScansPt(context: MangaLoaderContext) : HeanCms(context, MangaSource.REAPERSCANSPT, "reaperscans.net") { override val configKeyDomain = ConfigKey.Domain("reaperscans.net", "reaperbr.online") diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/all/ManyToonClub.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/all/ManyToonClub.kt index af3a8c8a..43e73628 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/all/ManyToonClub.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/all/ManyToonClub.kt @@ -7,7 +7,7 @@ import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import java.util.Locale -@MangaSourceParser("MANYTOON_CLUB", "ManyToon Club", "", ContentType.HENTAI) +@MangaSourceParser("MANYTOON_CLUB", "ManyToon.club", "", ContentType.HENTAI) internal class ManyToonClub(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANYTOON_CLUB, "manytoon.club") { override val postReq = true diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/HuntersScanEn.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/HuntersScanEn.kt index a9c7b180..9a14d0d3 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/HuntersScanEn.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/HuntersScanEn.kt @@ -5,7 +5,7 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.site.madara.MadaraParser -@MangaSourceParser("HUNTERSSCANEN", "HuntersScan", "en") +@MangaSourceParser("HUNTERSSCANEN", "EnHuntersScan", "en") internal class HuntersScanEn(context: MangaLoaderContext) : MadaraParser(context, MangaSource.HUNTERSSCANEN, "en.huntersscan.xyz") { override val withoutAjax = true diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MangaOnline.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MangaOnline.kt index 1fda6e83..b6f3684b 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MangaOnline.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MangaOnline.kt @@ -5,6 +5,6 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.site.madara.MadaraParser -@MangaSourceParser("MANGA_ONLINE", "MangaOnline", "en") +@MangaSourceParser("MANGA_ONLINE", "MangaOnline.team", "en") internal class MangaOnline(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANGA_ONLINE, "mangaonline.team", 18) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/fr/PantheonScan.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/fr/PantheonScan.kt index de49d41d..0f1a33ea 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/fr/PantheonScan.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/fr/PantheonScan.kt @@ -5,7 +5,7 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.site.madara.MadaraParser -@MangaSourceParser("PANTHEONSCAN", "PantheonScan", "fr") +@MangaSourceParser("PANTHEONSCAN", "PantheonScan.com", "fr") internal class PantheonScan(context: MangaLoaderContext) : MadaraParser(context, MangaSource.PANTHEONSCAN, "pantheon-scan.com") { override val datePattern = "d MMMM yyyy" diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/fr/ReaperScansFr.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/fr/ReaperScansFr.kt index 7616f21f..a28a4c69 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/fr/ReaperScansFr.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/fr/ReaperScansFr.kt @@ -5,7 +5,7 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.site.madara.MadaraParser -@MangaSourceParser("REAPERSCANS_FR", "ReaperScans", "fr") +@MangaSourceParser("REAPERSCANS_FR", "ReaperScans.fr", "fr") internal class ReaperScansFr(context: MangaLoaderContext) : MadaraParser(context, MangaSource.REAPERSCANS_FR, "reaperscans.fr") { override val datePattern = "MM/dd/yyyy" diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/id/GourmetScansId.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/id/GourmetScansId.kt index 7ddbdd02..1c62d02c 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/id/GourmetScansId.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/id/GourmetScansId.kt @@ -5,7 +5,7 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.site.madara.MadaraParser -@MangaSourceParser("GOURMETSCANS_ID", "GourmetScans", "id") +@MangaSourceParser("GOURMETSCANS_ID", "IdGourmetScans", "id") internal class GourmetScansId(context: MangaLoaderContext) : MadaraParser(context, MangaSource.GOURMETSCANS_ID, "id.gourmetscans.net") { override val listUrl = "project/" diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/ReaperScansTr.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/ReaperScansTr.kt index 339d8d0c..a5fa6eb9 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/ReaperScansTr.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/ReaperScansTr.kt @@ -5,7 +5,7 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.site.madara.MadaraParser -@MangaSourceParser("REAPERSCANSTR", "ReaperScans", "tr") +@MangaSourceParser("REAPERSCANSTR", "ReaperScansTr", "tr") internal class ReaperScansTr(context: MangaLoaderContext) : MadaraParser(context, MangaSource.REAPERSCANSTR, "reaperscanstr.com", 5) { override val listUrl = "seri/" diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/Manjanoon.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/Manjanoon.kt index fe2c8c02..91480e1a 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/Manjanoon.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/Manjanoon.kt @@ -13,7 +13,7 @@ import org.koitharu.kotatsu.parsers.util.mapChapters import org.koitharu.kotatsu.parsers.util.parseHtml import org.koitharu.kotatsu.parsers.util.toAbsoluteUrl -@MangaSourceParser("MANJANOON", "Manjanoon", "ar") +@MangaSourceParser("MANJANOON", "Manjanoon.com", "ar") internal class Manjanoon(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.MANJANOON, "manjanoon.com", pageSize = 21, searchPageSize = 10) { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/Ozulscans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/Ozulscans.kt index 94cd9ecc..858b2c1b 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/Ozulscans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/Ozulscans.kt @@ -5,6 +5,6 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser -@MangaSourceParser("OZULSCANS", "OzulScans", "ar") +@MangaSourceParser("OZULSCANS", "Ar-OzulScans", "ar") internal class Ozulscans(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.OZULSCANS, "ar-ozulscans.com", pageSize = 30, searchPageSize = 30) 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 3feb38fd..fba9437a 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 @@ -5,7 +5,7 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser -@MangaSourceParser("COSMICSCANS", "CosmicScans", "en") +@MangaSourceParser("COSMICSCANS", "CosmicScans.com", "en") internal class CosmicScansParser(context: MangaLoaderContext) : 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/en/FlameComics.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/FlameComics.kt new file mode 100644 index 00000000..fcdc78d5 --- /dev/null +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/FlameComics.kt @@ -0,0 +1,12 @@ +package org.koitharu.kotatsu.parsers.site.mangareader.en + +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 + +@MangaSourceParser("FLAMECOMICS", "FlameComics", "en") +internal class FlameComics(context: MangaLoaderContext) : + MangaReaderParser(context, MangaSource.FLAMECOMICS, "flamecomics.com", pageSize = 24, searchPageSize = 10) { + override val listUrl = "/series" +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/ManhwaFreak.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/ManhwaFreak.kt index 3c73405a..946d0cc7 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/ManhwaFreak.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/ManhwaFreak.kt @@ -11,14 +11,13 @@ import java.text.SimpleDateFormat import java.util.Calendar -@MangaSourceParser("MANHWA_FREAK", "ManhwaFreak", "en") +@MangaSourceParser("MANHWA_FREAK", "Manhwa-Freak.com", "en") internal class ManhwaFreak(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.MANHWA_FREAK, "manhwa-freak.com", pageSize = 0, searchPageSize = 10) { override val selectMangaList = ".listupd .lastest-serie" override val selectMangaListImg = "img" - override suspend fun getListPage( page: Int, query: String?, @@ -29,7 +28,6 @@ internal class ManhwaFreak(context: MangaLoaderContext) : if (page > lastSearchPage) { return emptyList() } - val url = buildString { append("https://") append(domain) @@ -38,20 +36,16 @@ internal class ManhwaFreak(context: MangaLoaderContext) : append("/?s=") append(query.urlEncoded()) } - val docs = webClient.httpGet(url).parseHtml() lastSearchPage = docs.selectFirst(".pagination .next") ?.previousElementSibling() ?.text()?.toIntOrNull() ?: 1 return parseMangaList(docs) } - if (!tags.isNullOrEmpty()) { - if (page > 1) { return emptyList() } - val tag = tags.oneOrThrowIfMany() val url = buildString { append("https://") @@ -59,10 +53,8 @@ internal class ManhwaFreak(context: MangaLoaderContext) : append("/genres/?genre=") append(tag?.key.orEmpty()) } - return parseMangaList(webClient.httpGet(url).parseHtml()) } - if (page > 1) { return emptyList() } @@ -73,7 +65,6 @@ internal class ManhwaFreak(context: MangaLoaderContext) : SortOrder.UPDATED -> "" else -> "" } - val url = buildString { append("https://") append(domain) @@ -81,13 +72,11 @@ internal class ManhwaFreak(context: MangaLoaderContext) : append("/?order=") append(sortQuery) } - return parseMangaList(webClient.httpGet(url).parseHtml()) } override suspend fun getTags(): Set { val doc = webClient.httpGet("https://$domain/genres/").parseHtml() - return doc.select("ul.genre-list li a").mapNotNullToSet { a -> val href = a.attr("href").substringAfterLast("=") MangaTag( @@ -129,11 +118,9 @@ internal class ManhwaFreak(context: MangaLoaderContext) : } override suspend fun parseInfo(docs: Document, manga: Manga, chapters: List): Manga { - val tagMap = getOrCreateTagMap() val selectTag = docs.requireElementById("info").select("div:contains(Genre) > p:last-child").text().split(",") val tags = selectTag.mapNotNullToSet { tagMap[it] } - val mangaState = docs.requireElementById("info").select("div:contains(Status) > p:last-child").text().let { when (it) { "Ongoing" -> MangaState.ONGOING @@ -142,7 +129,6 @@ internal class ManhwaFreak(context: MangaLoaderContext) : } } val author = docs.requireElementById("info").select("div:contains(Author(s)) > p:last-child").text() - return manga.copy( altTitle = docs.requireElementById("info").select("div:contains(Alternative) > p:last-child").text(), description = docs.requireElementById("summary").html(), @@ -192,7 +178,6 @@ internal class ManhwaFreak(context: MangaLoaderContext) : private fun parseRelativeDate(date: String): Long { val number = Regex("""(\d+)""").find(date)?.value?.toIntOrNull() ?: return 0 val cal = Calendar.getInstance() - return when { WordSet( "day", diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Manjanoon.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Manjanoon.kt index 99f77ba7..837f8352 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Manjanoon.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Manjanoon.kt @@ -5,6 +5,6 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser -@MangaSourceParser("MANJANOON_EN", "Manjanoon", "en") +@MangaSourceParser("MANJANOON_EN", "Manjanoon.net", "en") internal class Manjanoon(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.MANJANOON_EN, "manjanoon.net", pageSize = 20, searchPageSize = 10) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/fr/ManhwaFreakFr.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/fr/ManhwaFreakFr.kt index d5cc5301..d4fc4794 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/fr/ManhwaFreakFr.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/fr/ManhwaFreakFr.kt @@ -11,7 +11,7 @@ import java.text.SimpleDateFormat import java.util.Calendar import java.util.Locale -@MangaSourceParser("MANHWA_FREAK_FR", "ManhwaFreak", "fr") +@MangaSourceParser("MANHWA_FREAK_FR", "ManhwaFreak.fr", "fr") internal class ManhwaFreakFr(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.MANHWA_FREAK_FR, "manhwafreak.fr", pageSize = 0, searchPageSize = 10) { @@ -29,7 +29,6 @@ internal class ManhwaFreakFr(context: MangaLoaderContext) : if (page > lastSearchPage) { return emptyList() } - val url = buildString { append("https://") append(domain) @@ -38,20 +37,17 @@ internal class ManhwaFreakFr(context: MangaLoaderContext) : append("/?s=") append(query.urlEncoded()) } - val docs = webClient.httpGet(url).parseHtml() lastSearchPage = docs.selectFirst(".pagination .next") ?.previousElementSibling() ?.text()?.toIntOrNull() ?: 1 return parseMangaList(docs) } - if (!tags.isNullOrEmpty()) { if (page > 1) { return emptyList() } - val tag = tags.oneOrThrowIfMany() val url = buildString { append("https://") @@ -59,10 +55,8 @@ internal class ManhwaFreakFr(context: MangaLoaderContext) : append("/genres/?genre=") append(tag?.key.orEmpty()) } - return parseMangaList(webClient.httpGet(url).parseHtml()) } - if (page > 1) { return emptyList() } @@ -73,7 +67,6 @@ internal class ManhwaFreakFr(context: MangaLoaderContext) : SortOrder.UPDATED -> "" else -> "" } - val url = buildString { append("https://") append(domain) @@ -81,13 +74,11 @@ internal class ManhwaFreakFr(context: MangaLoaderContext) : append("/?order=") append(sortQuery) } - return parseMangaList(webClient.httpGet(url).parseHtml()) } override suspend fun getTags(): Set { val doc = webClient.httpGet("https://$domain/genres/").parseHtml() - return doc.select("ul.genre-list li a").mapNotNullToSet { a -> val href = a.attr("href").substringAfterLast("=") MangaTag( @@ -129,11 +120,9 @@ internal class ManhwaFreakFr(context: MangaLoaderContext) : } override suspend fun parseInfo(docs: Document, manga: Manga, chapters: List): Manga { - val tagMap = getOrCreateTagMap() val selectTag = docs.requireElementById("info").select("div:contains(Genre) > p:last-child").text().split(",") val tags = selectTag.mapNotNullToSet { tagMap[it] } - val mangaState = docs.requireElementById("info").select("div:contains(Status) > p:last-child").text().let { when (it) { "Ongoing" -> MangaState.ONGOING @@ -142,7 +131,6 @@ internal class ManhwaFreakFr(context: MangaLoaderContext) : } } val author = docs.requireElementById("info").select("div:contains(Author(s)) > p:last-child").text() - return manga.copy( altTitle = docs.requireElementById("info").select("div:contains(Alternative) > p:last-child").text(), description = docs.requireElementById("summary").html(), @@ -192,7 +180,6 @@ internal class ManhwaFreakFr(context: MangaLoaderContext) : private fun parseRelativeDate(date: String): Long { val number = Regex("""(\d+)""").find(date)?.value?.toIntOrNull() ?: return 0 val cal = Calendar.getInstance() - return when { WordSet( "day", diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/fr/PantheonScanFr.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/fr/PantheonScanFr.kt index 732bb45d..09a46ab8 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/fr/PantheonScanFr.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/fr/PantheonScanFr.kt @@ -5,6 +5,6 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser -@MangaSourceParser("PANTHEONSCAN_FR", "PantheonScan", "fr") +@MangaSourceParser("PANTHEONSCAN_FR", "PantheonScan.fr", "fr") internal class PantheonScanFr(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.PANTHEONSCAN_FR, "www.pantheon-scan.fr", pageSize = 40, searchPageSize = 10) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/CosmicScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/CosmicScans.kt index a8fede11..52526dc1 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/CosmicScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/CosmicScans.kt @@ -12,7 +12,7 @@ import org.koitharu.kotatsu.parsers.util.parseHtml import org.koitharu.kotatsu.parsers.util.urlEncoded import java.util.Locale -@MangaSourceParser("COSMIC_SCANS", "CosmicScans", "id") +@MangaSourceParser("COSMIC_SCANS", "CosmicScans.id", "id") internal class CosmicScans(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.COSMIC_SCANS, "cosmicscans.id", pageSize = 30, searchPageSize = 30) { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/pt/HikariScan.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pt/HikariScan.kt similarity index 51% rename from src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/pt/HikariScan.kt rename to src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pt/HikariScan.kt index b57a0d0f..aa21c9c9 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/pt/HikariScan.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pt/HikariScan.kt @@ -1,12 +1,10 @@ -package org.koitharu.kotatsu.parsers.site.madara.pt +package org.koitharu.kotatsu.parsers.site.mangareader.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 +import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("HIKARISCAN", "HikariScan", "pt") internal class HikariScan(context: MangaLoaderContext) : - MadaraParser(context, MangaSource.HIKARISCAN, "hikariscan.com.br", pageSize = 10) { - override val datePattern: String = "dd 'de' MMMMM 'de' yyyy" -} + MangaReaderParser(context, MangaSource.HIKARISCAN, "hikariscan.org", pageSize = 20, searchPageSize = 10) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/otakusanctuary/en/OtakusanEn.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/otakusanctuary/en/OtakusanEn.kt index 67dd81bb..d9e5bd4d 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/otakusanctuary/en/OtakusanEn.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/otakusanctuary/en/OtakusanEn.kt @@ -5,7 +5,7 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.site.otakusanctuary.OtakuSanctuaryParser -@MangaSourceParser("OTAKUSAN_EN", "OtakuSan", "en") +@MangaSourceParser("OTAKUSAN_EN", "OtakuSan-En", "en") internal class OtakusanEn(context: MangaLoaderContext) : OtakuSanctuaryParser(context, MangaSource.OTAKUSAN_EN, "otakusan.net") { override val lang = "us" diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/otakusanctuary/vi/OtakusanVi.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/otakusanctuary/vi/OtakusanVi.kt index 86faa8cc..1ac2f863 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/otakusanctuary/vi/OtakusanVi.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/otakusanctuary/vi/OtakusanVi.kt @@ -1,16 +1,13 @@ package org.koitharu.kotatsu.parsers.site.otakusanctuary.vi - 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.otakusanctuary.OtakuSanctuaryParser - -@MangaSourceParser("OTAKUSAN_VI", "OtakuSan", "vi") +@MangaSourceParser("OTAKUSAN_VI", "OtakuSan-Vi", "vi") internal class OtakusanVi(context: MangaLoaderContext) : OtakuSanctuaryParser(context, MangaSource.OTAKUSAN_VI, "otakusan.net") { - override val selectState = ".table-info tr:contains(Status) td" override val lang = "vn" } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pt/MangaOnline.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pt/MangaOnline.kt index 491903b8..2d561bda 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pt/MangaOnline.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pt/MangaOnline.kt @@ -9,7 +9,7 @@ import org.koitharu.kotatsu.parsers.util.* import java.text.SimpleDateFormat import java.util.* -@MangaSourceParser("MANGAONLINE", "MangaOnline", "pt") +@MangaSourceParser("MANGAONLINE", "MangaOnline.biz", "pt") class MangaOnline(context: MangaLoaderContext) : PagedMangaParser(context, MangaSource.MANGAONLINE, 20) { override val sortOrders: Set = EnumSet.of(SortOrder.UPDATED) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pt/YugenMangas.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pt/YugenMangas.kt index e4f63036..9d2fdc48 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pt/YugenMangas.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pt/YugenMangas.kt @@ -10,11 +10,10 @@ import org.koitharu.kotatsu.parsers.util.json.mapJSON import java.text.SimpleDateFormat import java.util.* -@MangaSourceParser("YUGENMANGAS", "YugenMangas", "pt") +@MangaSourceParser("YUGENMANGAS", "YugenMangas.org", "pt") class YugenMangas(context: MangaLoaderContext) : PagedMangaParser(context, MangaSource.YUGENMANGAS, 28) { override val sortOrders: Set = EnumSet.of(SortOrder.ALPHABETICAL, SortOrder.UPDATED) - override val configKeyDomain = ConfigKey.Domain("yugenmangas.org") override suspend fun getListPage(