From eeccda24b0d0ebb0b8f004f5e31aa26733269c66 Mon Sep 17 00:00:00 2001 From: devi Date: Fri, 28 Jul 2023 16:53:17 +0200 Subject: [PATCH] Add 2 source more typo and add val on gettags on madara for site not let list /manga/ --- .../parsers/site/fmreader/FmreaderParser.kt | 3 +- .../parsers/site/madara/MadaraParser.kt | 66 ++++++++++--------- .../site/madara/en/IsekaiScanEuParser.kt | 4 +- .../parsers/site/madara/en/Manga247.kt | 2 +- .../parsers/site/madara/en/MangaDass.kt | 2 +- .../parsers/site/madara/en/MangaDna.kt | 2 +- .../kotatsu/parsers/site/madara/en/Manhwaz.kt | 4 +- .../parsers/site/madara/es/LkScanlation.kt | 15 +++++ .../parsers/site/madara/es/MonarcaManga.kt | 2 +- .../parsers/site/madara/id/ManhwaPlus.kt | 4 +- .../parsers/site/madara/pt/AstrumScans.kt | 2 +- .../parsers/site/madara/vi/Saytruyenhay.kt | 4 +- .../parsers/site/mangareader/it/WitComics.kt | 10 +++ 13 files changed, 74 insertions(+), 46 deletions(-) create mode 100644 src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/LkScanlation.kt create mode 100644 src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/it/WitComics.kt 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 5676ce3f..a73be901 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 @@ -93,7 +93,8 @@ internal abstract class FmreaderParser( 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, 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 5135fb1f..1862a545 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 @@ -124,7 +124,9 @@ internal abstract class MadaraParser( // Change these values only if the site does not support manga listings via ajax protected open val withoutAjax = false - protected open val listeurl = "manga/" + + // can be changed to retrieve tags see getTags + protected open val listUrl = "manga/" override suspend fun getListPage( page: Int, @@ -160,7 +162,7 @@ internal abstract class MadaraParser( else -> { - append("/$listeurl") + append("/$listUrl") append("/page/") append(pages.toString()) append("?") @@ -233,7 +235,7 @@ internal abstract class MadaraParser( } override suspend fun getTags(): Set { - val doc = webClient.httpGet("https://$domain/manga/").parseHtml() + val doc = webClient.httpGet("https://$domain/$listUrl").parseHtml() val body = doc.body() val root1 = body.selectFirst("header")?.selectFirst("ul.second-menu") val root2 = body.selectFirst("div.genres_wrap")?.selectFirst("ul.list-unstyled") @@ -431,31 +433,31 @@ internal abstract class MadaraParser( val d = date?.lowercase() ?: return 0 return when { d.endsWith(" ago") || d.endsWith(" atrás") || // Handle translated 'ago' in Portuguese. - d.startsWith("há ") || // other translated 'ago' in Portuguese. - d.endsWith(" hace") || // other translated 'ago' in Spanish - d.endsWith(" назад") || // other translated 'ago' in Russian - d.endsWith(" önce") || // Handle translated 'ago' in Turkish. - d.endsWith(" trước") || // Handle translated 'ago' in Viêt Nam. - d.startsWith("il y a") || // Handle translated 'ago' in French. - //If there is no ago but just a motion of time - // short Hours - d.endsWith(" h") || - // short Day - d.endsWith(" d") || - // Day in Portuguese - d.endsWith(" días") || d.endsWith(" día") || - // Day in French - d.endsWith(" jour") || d.endsWith(" jours") || - // Hours in Portuguese - d.endsWith(" horas") || d.endsWith(" hora") || - // Hours in french - d.endsWith(" heure") || d.endsWith(" heures") || - // Minutes in English - d.endsWith(" mins") || - // Minutes in Portuguese - d.endsWith(" minutos") || d.endsWith(" minuto") || - //Minutes in French - d.endsWith(" minute") || d.endsWith(" minutes") -> parseRelativeDate(date) + d.startsWith("há ") || // other translated 'ago' in Portuguese. + d.endsWith(" hace") || // other translated 'ago' in Spanish + d.endsWith(" назад") || // other translated 'ago' in Russian + d.endsWith(" önce") || // Handle translated 'ago' in Turkish. + d.endsWith(" trước") || // Handle translated 'ago' in Viêt Nam. + d.startsWith("il y a") || // Handle translated 'ago' in French. + //If there is no ago but just a motion of time + // short Hours + d.endsWith(" h") || + // short Day + d.endsWith(" d") || + // Day in Portuguese + d.endsWith(" días") || d.endsWith(" día") || + // Day in French + d.endsWith(" jour") || d.endsWith(" jours") || + // Hours in Portuguese + d.endsWith(" horas") || d.endsWith(" hora") || + // Hours in french + d.endsWith(" heure") || d.endsWith(" heures") || + // Minutes in English + d.endsWith(" mins") || + // Minutes in Portuguese + d.endsWith(" minutos") || d.endsWith(" minuto") || + //Minutes in French + d.endsWith(" minute") || d.endsWith(" minutes") -> parseRelativeDate(date) // Handle 'yesterday' and 'today', using midnight d.startsWith("year") -> Calendar.getInstance().apply { @@ -552,10 +554,10 @@ internal abstract class MadaraParser( private fun createRequestTemplate() = ("action=madara_load_more&page=1&template=madara-core%2Fcontent%2Fcontent-search&vars%5Bs%5D=&vars%5B" + - "orderby%5D=meta_value_num&vars%5Bpaged%5D=1&vars%5Btemplate%5D=search&vars%5Bmeta_query" + - "%5D%5B0%5D%5Brelation%5D=AND&vars%5Bmeta_query%5D%5Brelation%5D=OR&vars%5Bpost_type" + - "%5D=wp-manga&vars%5Bpost_status%5D=publish&vars%5Bmeta_key%5D=_latest_update&vars%5Border" + - "%5D=desc&vars%5Bmanga_archives_item_layout%5D=default").split( + "orderby%5D=meta_value_num&vars%5Bpaged%5D=1&vars%5Btemplate%5D=search&vars%5Bmeta_query" + + "%5D%5B0%5D%5Brelation%5D=AND&vars%5Bmeta_query%5D%5Brelation%5D=OR&vars%5Bpost_type" + + "%5D=wp-manga&vars%5Bpost_status%5D=publish&vars%5Bmeta_key%5D=_latest_update&vars%5Border" + + "%5D=desc&vars%5Bmanga_archives_item_layout%5D=default").split( '&', ).map { val pos = it.indexOf('=') diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/IsekaiScanEuParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/IsekaiScanEuParser.kt index 51bae13a..ef41c984 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/IsekaiScanEuParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/IsekaiScanEuParser.kt @@ -12,7 +12,7 @@ internal class IsekaiScanEuParser(context: MangaLoaderContext) : override val datePattern = "MM/dd/yyyy" override val withoutAjax = true - override val listeurl = "mangax/" + override val listUrl = "mangax/" override suspend fun getListPage( page: Int, @@ -46,7 +46,7 @@ internal class IsekaiScanEuParser(context: MangaLoaderContext) : else -> { - append("/$listeurl") + append("/$listUrl") append("/page/") append(pages.toString()) append("?") diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/Manga247.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/Manga247.kt index cf6aac61..d0256826 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/Manga247.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/Manga247.kt @@ -11,5 +11,5 @@ internal class Manga247(context: MangaLoaderContext) : MadaraParser(context, Man override val tagPrefix = "manhwa-genre/" override val datePattern = "MMMM dd, yyyy" override val withoutAjax = true - override val listeurl = "manhwa/" + override val listUrl = "manhwa/" } 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 13ceec1f..31eb65e3 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 @@ -52,7 +52,7 @@ internal class MangaDass(context: MangaLoaderContext) : else -> { - append("/$listeurl") + append("/$listUrl") append("/") append(pages.toString()) append("?") 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 cf26faaa..5ec8928d 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 @@ -52,7 +52,7 @@ internal class MangaDna(context: MangaLoaderContext) : else -> { - append("/$listeurl") + append("/$listUrl") append("/page/") append(pages.toString()) append("?") diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/Manhwaz.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/Manhwaz.kt index c332aebc..d9825636 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/Manhwaz.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/Manhwaz.kt @@ -10,7 +10,7 @@ import org.koitharu.kotatsu.parsers.util.* internal class Manhwaz(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANHWAZ, "manhwaz.com", 40) { - override val listeurl = "genre/manhwa" + override val listUrl = "genre/manhwa" override val tagPrefix = "genre/" override val withoutAjax = true override val selectTestAsync = "div.list-chapter" @@ -48,7 +48,7 @@ internal class Manhwaz(context: MangaLoaderContext) : else -> { - append("/$listeurl") + append("/$listUrl") append("?page=") append(pages.toString()) append("&") diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/LkScanlation.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/LkScanlation.kt new file mode 100644 index 00000000..bab07fe6 --- /dev/null +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/LkScanlation.kt @@ -0,0 +1,15 @@ +package org.koitharu.kotatsu.parsers.site.madara.es + +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("LKSCANLATION", "LkScanlation", "es") +internal class LkScanlation(context: MangaLoaderContext) : + MadaraParser(context, MangaSource.LKSCANLATION, "lkscanlation.com") { + + override val tagPrefix = "manhwa-genre/" + override val listUrl = "manhwa/" +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/MonarcaManga.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/MonarcaManga.kt index f27c8dfc..16334963 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/MonarcaManga.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/MonarcaManga.kt @@ -46,7 +46,7 @@ internal class MonarcaManga(context: MangaLoaderContext) : else -> { - append("/$listeurl") + append("/$listUrl") append("/page/") append(pages.toString()) append("?") diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/id/ManhwaPlus.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/id/ManhwaPlus.kt index a54f15d7..f582e3fa 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/id/ManhwaPlus.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/id/ManhwaPlus.kt @@ -16,7 +16,7 @@ internal class ManhwaPlus(context: MangaLoaderContext) : override val datePattern = "MMMM d, yyyy" override val sourceLocale: Locale = Locale.ENGLISH override val withoutAjax = true - override val listeurl = "series/" + override val listUrl = "series/" override suspend fun getListPage( page: Int, @@ -51,7 +51,7 @@ internal class ManhwaPlus(context: MangaLoaderContext) : else -> { - append("/$listeurl") + append("/$listUrl") append("/page/") append(pages.toString()) append("?") diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/pt/AstrumScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/pt/AstrumScans.kt index 60cc4eb9..55ac2f66 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/pt/AstrumScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/pt/AstrumScans.kt @@ -10,6 +10,6 @@ internal class AstrumScans(context: MangaLoaderContext) : MadaraParser(context, MangaSource.ASTRUMSCANS, "astrumscans.xyz", 20) { override val withoutAjax = true - override val listeurl = "series/" + override val listUrl = "series/" override val datePattern = "dd/MM/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 0b8b782f..67eb9cd5 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 @@ -31,7 +31,7 @@ internal class Saytruyenhay(context: MangaLoaderContext) : override val tagPrefix = "genre/" override val withoutAjax = true - override val listeurl = "public/genre/manga/" + override val listUrl = "public/genre/manga/" override suspend fun getListPage( page: Int, @@ -66,7 +66,7 @@ internal class Saytruyenhay(context: MangaLoaderContext) : else -> { - append("/$listeurl") + append("/$listUrl") append("?page=") append(pages.toString()) } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/it/WitComics.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/it/WitComics.kt new file mode 100644 index 00000000..3392e838 --- /dev/null +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/it/WitComics.kt @@ -0,0 +1,10 @@ +package org.koitharu.kotatsu.parsers.site.mangareader.it + +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("WITCOMICS", "Wit Comics", "it") +internal class WitComics(context: MangaLoaderContext) : + MangaReaderParser(context, MangaSource.WITCOMICS, "www.witcomics.net", pageSize = 5, searchPageSize = 10)