From b11e50ab222b7426beb619e3a9d2639603d94d83 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Tue, 30 Jan 2024 13:09:27 +0200 Subject: [PATCH] Fixes batch --- .../koitharu/kotatsu/parsers/site/all/BatoToParser.kt | 2 +- .../kotatsu/parsers/site/all/ComickFunParser.kt | 10 ++++------ .../org/koitharu/kotatsu/parsers/site/all/ImHentai.kt | 2 +- .../kotatsu/parsers/site/all/MangaDexParser.kt | 4 +++- .../koitharu/kotatsu/parsers/site/all/MangaPark.kt | 2 +- .../kotatsu/parsers/site/all/NineMangaParser.kt | 2 +- .../site/animebootstrap/AnimeBootstrapParser.kt | 2 +- .../koitharu/kotatsu/parsers/site/ar/TeamXNovel.kt | 2 +- .../kotatsu/parsers/site/fmreader/FmreaderParser.kt | 2 +- .../koitharu/kotatsu/parsers/site/heancms/HeanCms.kt | 4 ++-- .../kotatsu/parsers/site/likemanga/LikeMangaParser.kt | 11 ++++++++--- .../kotatsu/parsers/site/madara/MadaraParser.kt | 6 +++--- .../kotatsu/parsers/site/madara/ar/MangaLek.kt | 2 +- .../kotatsu/parsers/site/madara/en/Hentai3z.kt | 2 +- .../kotatsu/parsers/site/madara/es/EmperorScan.kt | 2 +- .../kotatsu/parsers/site/madara/es/MangaCrab.kt | 2 +- .../kotatsu/parsers/site/madara/id/PojokManga.kt | 4 ++-- .../kotatsu/parsers/site/madara/pt/Nocsummer.kt | 4 ++-- .../kotatsu/parsers/site/madara/vi/Saytruyenhay.kt | 4 ++-- .../parsers/site/madara/vi/TruyenTranhDamMyy.kt | 9 ++------- .../kotatsu/parsers/site/mangabox/en/Manganato.kt | 4 ++-- .../kotatsu/parsers/site/mangareader/en/KaiScans.kt | 2 +- .../kotatsu/parsers/site/mangareader/id/AinzScans.kt | 2 +- .../parsers/site/mangareader/id/KomikLokalParser.kt | 2 +- .../parsers/site/mangareader/id/KomiklokalCfd.kt | 2 +- .../parsers/site/mangareader/id/SekaikomikParser.kt | 2 +- .../org/koitharu/kotatsu/parsers/site/tr/MangaAy.kt | 2 +- .../kotatsu/parsers/site/wpcomics/vi/Nettruyenmax.kt | 2 +- .../parsers/site/zeistmanga/ZeistMangaParser.kt | 4 ++-- 29 files changed, 50 insertions(+), 50 deletions(-) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/BatoToParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/BatoToParser.kt index ba9af2e9..7a4e6673 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/BatoToParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/BatoToParser.kt @@ -226,7 +226,7 @@ internal class BatoToParser(context: MangaLoaderContext) : PagedMangaParser( jo.keys().forEach { key -> val item = jo.getJSONObject(key) result += MangaTag( - title = item.getString("text").toTitleCase(), + title = item.getString("text").toTitleCase(Locale.ENGLISH), key = item.getString("file"), source = source, ) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/ComickFunParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/ComickFunParser.kt index 2451cb4c..259a2e63 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/ComickFunParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/ComickFunParser.kt @@ -34,8 +34,7 @@ internal class ComickFunParser(context: MangaLoaderContext) : PagedMangaParser(c override val availableStates: Set = EnumSet.of(MangaState.ONGOING, MangaState.FINISHED, MangaState.PAUSED, MangaState.ABANDONED) - @Volatile - private var cachedTags: SparseArrayCompat? = null + private val tagsArray = SuspendLazy(::loadTags) override suspend fun getListPage(page: Int, filter: MangaListFilter?): List { val domain = domain @@ -83,7 +82,7 @@ internal class ComickFunParser(context: MangaLoaderContext) : PagedMangaParser(c } } val ja = webClient.httpGet(url.build()).parseJsonArray() - val tagsMap = cachedTags ?: loadTags() + val tagsMap = tagsArray.get() return ja.mapJSON { jo -> val slug = jo.getString("slug") Manga( @@ -151,7 +150,7 @@ internal class ComickFunParser(context: MangaLoaderContext) : PagedMangaParser(c } override suspend fun getAvailableTags(): Set { - val sparseArray = cachedTags ?: loadTags() + val sparseArray = tagsArray.get() val set = ArraySet(sparseArray.size()) for (i in 0 until sparseArray.size()) { set.add(sparseArray.valueAt(i)) @@ -166,13 +165,12 @@ internal class ComickFunParser(context: MangaLoaderContext) : PagedMangaParser(c tags.append( jo.getInt("id"), MangaTag( - title = jo.getString("name"), + title = jo.getString("name").toTitleCase(Locale.ENGLISH), key = jo.getString("slug"), source = source, ), ) } - cachedTags = tags return tags } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/ImHentai.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/ImHentai.kt index effb15df..c19a8312 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/ImHentai.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/ImHentai.kt @@ -103,7 +103,7 @@ internal class ImHentai(context: MangaLoaderContext) : val href = it.attr("href").substringAfterLast("tag/").substringBeforeLast('/') MangaTag( key = href, - title = it.selectFirstOrThrow("h3.list_tag").text(), + title = it.selectFirstOrThrow("h3.list_tag").text().toTitleCase(sourceLocale), source = source, ) } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/MangaDexParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/MangaDexParser.kt index d7c592d5..e6367f44 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/MangaDexParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/MangaDexParser.kt @@ -200,7 +200,9 @@ internal class MangaDexParser(context: MangaLoaderContext) : MangaParser(context .getJSONArray("data") return tags.mapJSONToSet { jo -> MangaTag( - title = jo.getJSONObject("attributes").getJSONObject("name").firstStringValue().toTitleCase(), + title = jo.getJSONObject("attributes").getJSONObject("name") + .firstStringValue() + .toTitleCase(Locale.ENGLISH), key = jo.getString("id"), source = source, ) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/MangaPark.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/MangaPark.kt index 7905855f..2a6a70e5 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/MangaPark.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/MangaPark.kt @@ -132,7 +132,7 @@ internal class MangaPark(context: MangaLoaderContext) : .select("div.flex-col:contains(Genres) div.whitespace-nowrap") val tagMap = ArrayMap(tagElements.size) for (el in tagElements) { - val name = el.selectFirstOrThrow("span.whitespace-nowrap").text() + val name = el.selectFirstOrThrow("span.whitespace-nowrap").text().toTitleCase(sourceLocale) if (name.isEmpty()) continue tagMap[name] = MangaTag( title = name, diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/NineMangaParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/NineMangaParser.kt index 4301a9a5..f67177f9 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/NineMangaParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/NineMangaParser.kt @@ -191,7 +191,7 @@ internal abstract class NineMangaParser( val cateId = el.attr("cate_id") val a = el.selectFirstOrThrow("a") tagMap[el.text()] = MangaTag( - title = a.text().toTitleCase(), + title = a.text().toTitleCase(sourceLocale), key = cateId, source = source, ) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/animebootstrap/AnimeBootstrapParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/animebootstrap/AnimeBootstrapParser.kt index 28a02ff6..22c570b2 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/animebootstrap/AnimeBootstrapParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/animebootstrap/AnimeBootstrapParser.kt @@ -99,7 +99,7 @@ internal abstract class AnimeBootstrapParser( val doc = webClient.httpGet("https://$domain$listUrl").parseHtml() return doc.select("div.product__page__filter div:contains(Genre:) option ").mapNotNullToSet { option -> val key = option.attr("value") ?: return@mapNotNullToSet null - val name = option.text() + val name = option.text().toTitleCase(sourceLocale) MangaTag( key = key, title = name, diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ar/TeamXNovel.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ar/TeamXNovel.kt index 65360f7d..9db6249f 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ar/TeamXNovel.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ar/TeamXNovel.kt @@ -114,7 +114,7 @@ internal class TeamXNovel(context: MangaLoaderContext) : PagedMangaParser(contex return doc.requireElementById("select_genre").select("option").mapNotNullToSet { MangaTag( key = it.attr("value"), - title = it.text(), + title = it.text().toTitleCase(sourceLocale), source = source, ) } 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 d7b77372..2f025e25 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 @@ -147,7 +147,7 @@ internal abstract class FmreaderParser( val href = a.attr("href").substringAfter(tagPrefix).substringBeforeLast(".html") MangaTag( key = href, - title = a.text(), + title = a.text().toTitleCase(sourceLocale), source = source, ) } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/heancms/HeanCms.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/heancms/HeanCms.kt index d7e3c676..e60683fe 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/heancms/HeanCms.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/heancms/HeanCms.kt @@ -98,7 +98,7 @@ internal abstract class HeanCms( id = generateUid(urlManga), title = j.getString("title"), altTitle = null, - url = urlManga, + url = urlManga.toRelativeUrl(domain), publicUrl = urlManga, rating = RATING_UNKNOWN, isNsfw = false, @@ -182,7 +182,7 @@ internal abstract class HeanCms( return tags.mapNotNullToSet { MangaTag( key = it.substringAfter("id\":").substringBefore(",\""), - title = it.substringAfter("name\":\"").substringBefore("\"}]"), + title = it.substringAfter("name\":\"").substringBefore("\"}]").toTitleCase(sourceLocale), source = source, ) } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/likemanga/LikeMangaParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/likemanga/LikeMangaParser.kt index 8c359f1a..1a8047b5 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/likemanga/LikeMangaParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/likemanga/LikeMangaParser.kt @@ -3,6 +3,7 @@ package org.koitharu.kotatsu.parsers.site.likemanga import kotlinx.coroutines.async import kotlinx.coroutines.awaitAll import kotlinx.coroutines.coroutineScope +import okhttp3.HttpUrl.Companion.toHttpUrl import org.json.JSONObject import org.jsoup.nodes.Element import org.koitharu.kotatsu.parsers.MangaLoaderContext @@ -189,7 +190,8 @@ internal abstract class LikeMangaParser( MangaChapter( id = generateUid(url), name = name, - number = chapNum.toInt(), + number = chapNum.toFloatOrNull() ?: 0f, + volume = 0, url = url, scanlator = null, uploadDate = parseChapterDate( @@ -239,9 +241,12 @@ internal abstract class LikeMangaParser( val jsonData = JSONObject(context.decodeBase64(jsonRaw).toString(Charsets.UTF_8)) val jsonImg = context.decodeBase64(jsonData.getString("data")).toString(Charsets.UTF_8) val images = jsonImg.replace("\\", "").replace("[", "").replace("]", "").replace("\"", "").split(",") - val cdn = doc.selectFirstOrThrow(".reading-detail img").src()?.substringBefore("manga/") + val baseUrl = doc.selectFirstOrThrow(".reading-detail img").src() + val cdn = baseUrl?.substringBefore("manga/", "")?.ifEmpty { + baseUrl.toHttpUrl().resolve("/").toString() + } return images.map { img -> - val url = cdn + img + val url = concatUrl(cdn.orEmpty(), img) MangaPage( id = generateUid(url), url = url, 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 ac77de0c..a95c2943 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 @@ -374,9 +374,9 @@ internal abstract class MadaraParser( } MangaTag( key = href, - title = a.ownText().trim().ifEmpty { - a.selectFirst(".menu-image-title")?.text()?.trim() ?: return@mapNotNullToSet null - }.toTitleCase(), + title = a.ownText().ifEmpty { + a.selectFirst(".menu-image-title")?.textOrNull() + }?.toTitleCase(sourceLocale) ?: return@mapNotNullToSet null, source = source, ) } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/ar/MangaLek.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/ar/MangaLek.kt index 46104e88..573963b9 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/ar/MangaLek.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/ar/MangaLek.kt @@ -7,4 +7,4 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser @MangaSourceParser("MANGALEK", "MangaLeku", "ar") internal class MangaLek(context: MangaLoaderContext) : - MadaraParser(context, MangaSource.MANGALEK, "mangaleku.com", pageSize = 10) + MadaraParser(context, MangaSource.MANGALEK, "manga-leko.com", pageSize = 10) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/Hentai3z.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/Hentai3z.kt index 0f4a091a..280a74ec 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/Hentai3z.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/Hentai3z.kt @@ -8,6 +8,6 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser @MangaSourceParser("HENTAI3Z", "Hentai3z", "en", ContentType.HENTAI) internal class Hentai3z(context: MangaLoaderContext) : - MadaraParser(context, MangaSource.HENTAI3Z, "hentai3z.xyz", pageSize = 20) { + MadaraParser(context, MangaSource.HENTAI3Z, "manga18h.xyz", pageSize = 20) { override val withoutAjax = true } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/EmperorScan.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/EmperorScan.kt index f8f589d2..23e3f27b 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/EmperorScan.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/EmperorScan.kt @@ -7,4 +7,4 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser @MangaSourceParser("EMPERORSCAN", "EmperorScan", "es") internal class EmperorScan(context: MangaLoaderContext) : - MadaraParser(context, MangaSource.EMPERORSCAN, "emperorscan.com") + MadaraParser(context, MangaSource.EMPERORSCAN, "emperorscan.net") diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/MangaCrab.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/MangaCrab.kt index 9e410a46..2bbbcab4 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/MangaCrab.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/MangaCrab.kt @@ -7,7 +7,7 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser @MangaSourceParser("MANGA_CRAB", "MangaCrab", "es") internal class MangaCrab(context: MangaLoaderContext) : - MadaraParser(context, MangaSource.MANGA_CRAB, "mangacrab3.com") { + MadaraParser(context, MangaSource.MANGA_CRAB, "httpmangacrab2.com") { override val datePattern = "dd/MM/yyyy" override val tagPrefix = "manga-genero/" override val listUrl = "series/" diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/id/PojokManga.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/id/PojokManga.kt index 761da18d..72390f6f 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/id/PojokManga.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/id/PojokManga.kt @@ -4,11 +4,11 @@ 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 java.util.Locale +import java.util.* @MangaSourceParser("POJOKMANGA", "PojokManga", "id") internal class PojokManga(context: MangaLoaderContext) : - MadaraParser(context, MangaSource.POJOKMANGA, "pojokmanga.net") { + MadaraParser(context, MangaSource.POJOKMANGA, "pojokmanga.id") { override val tagPrefix = "komik-genre/" override val listUrl = "komik/" override val datePattern = "MMM d, yyyy" diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/pt/Nocsummer.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/pt/Nocsummer.kt index eb67a75f..eae48305 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/pt/Nocsummer.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/pt/Nocsummer.kt @@ -2,12 +2,12 @@ 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.ContentType import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.site.madara.MadaraParser -import org.koitharu.kotatsu.parsers.model.ContentType @MangaSourceParser("NOCSUMMER", "NocturneSummer", "pt", ContentType.HENTAI) internal class Nocsummer(context: MangaLoaderContext) : - MadaraParser(context, MangaSource.NOCSUMMER, "nocsummer.com.br", 18) { + MadaraParser(context, MangaSource.NOCSUMMER, "nocfsb.com", 18) { override val datePattern = "dd 'de' MMMMM 'de' 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 6441cfa2..ccbc57c7 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 @@ -7,11 +7,11 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.model.* import org.koitharu.kotatsu.parsers.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.util.* -import java.util.EnumSet +import java.util.* @MangaSourceParser("SAYTRUYENHAY", "PheTruyen", "vi") internal class Saytruyenhay(context: MangaLoaderContext) : - MadaraParser(context, MangaSource.SAYTRUYENHAY, "phetruyen.pro", 40) { + MadaraParser(context, MangaSource.SAYTRUYENHAY, "phetruyen.vip", 40) { override val tagPrefix = "genre/" override val withoutAjax = true diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/vi/TruyenTranhDamMyy.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/vi/TruyenTranhDamMyy.kt index d7a366f1..3516b23c 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/vi/TruyenTranhDamMyy.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/vi/TruyenTranhDamMyy.kt @@ -6,16 +6,11 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.model.MangaChapter import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.site.madara.MadaraParser -import org.koitharu.kotatsu.parsers.util.attrAsRelativeUrlOrNull -import org.koitharu.kotatsu.parsers.util.domain -import org.koitharu.kotatsu.parsers.util.generateUid -import org.koitharu.kotatsu.parsers.util.mapChapters -import org.koitharu.kotatsu.parsers.util.parseFailed -import org.koitharu.kotatsu.parsers.util.parseHtml +import org.koitharu.kotatsu.parsers.util.* @MangaSourceParser("TRUYENTRANHDAMMYY", "TruyenTranhDamMyy", "vi") internal class TruyenTranhDamMyy(context: MangaLoaderContext) : - MadaraParser(context, MangaSource.TRUYENTRANHDAMMYY, "truyentranhdammyy.com") { + MadaraParser(context, MangaSource.TRUYENTRANHDAMMYY, "truyentranhdammyy.net") { override val postReq = true override suspend fun loadChapters(mangaUrl: String, document: Document): List { val mangaId = document.select("div#manga-chapters-holder").attr("data-id") diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangabox/en/Manganato.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangabox/en/Manganato.kt index 3022f7d4..145fd23e 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangabox/en/Manganato.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangabox/en/Manganato.kt @@ -9,6 +9,6 @@ import org.koitharu.kotatsu.parsers.site.mangabox.MangaboxParser @MangaSourceParser("MANGANATO", "Manganato", "en") internal class Manganato(context: MangaLoaderContext) : MangaboxParser(context, MangaSource.MANGANATO) { - override val configKeyDomain = ConfigKey.Domain("chapmanganato.com", "manganato.com") - override val otherDomain = "chapmanganato.com" + override val configKeyDomain = ConfigKey.Domain("chapmanganato.to", "chapmanganato.com", "manganato.com") + override val otherDomain = configKeyDomain.defaultValue } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/KaiScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/KaiScans.kt index bcf6d321..608eb9dd 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/KaiScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/KaiScans.kt @@ -7,7 +7,7 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("KAISCANS", "KaiScans", "en") internal class KaiScans(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.KAISCANS, "kaiscans.com", pageSize = 20, searchPageSize = 10) { + MangaReaderParser(context, MangaSource.KAISCANS, "kaiscans.org", pageSize = 20, searchPageSize = 10) { override val listUrl = "/series" override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/AinzScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/AinzScans.kt index 8e2dc6ad..b316b025 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/AinzScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/AinzScans.kt @@ -8,7 +8,7 @@ import java.util.* @MangaSourceParser("AINZSCANS", "AinzScans", "id") internal class AinzScans(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.AINZSCANS, "ainzscans.site", pageSize = 20, searchPageSize = 10) { + MangaReaderParser(context, MangaSource.AINZSCANS, "ainzscans.net", pageSize = 20, searchPageSize = 10) { override val listUrl = "/series" override val datePattern = "MMM d, yyyy" override val sourceLocale: Locale = Locale.ENGLISH diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikLokalParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikLokalParser.kt index 0d450330..10b5efbc 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikLokalParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikLokalParser.kt @@ -8,7 +8,7 @@ import java.util.* @MangaSourceParser("KOMIKLOKAL", "KomikMirror", "id") internal class KomikLokalParser(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.KOMIKLOKAL, "komikmirror.sbs", pageSize = 20, searchPageSize = 10) { + MangaReaderParser(context, MangaSource.KOMIKLOKAL, "komikmirror.lol", pageSize = 20, searchPageSize = 10) { override val datePattern = "MMM d, yyyy" override val sourceLocale: Locale = Locale.ENGLISH } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomiklokalCfd.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomiklokalCfd.kt index cd89c272..c8544514 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomiklokalCfd.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomiklokalCfd.kt @@ -9,6 +9,6 @@ import java.util.* @MangaSourceParser("KOMIKLOKALCFD", "KomikLokal.sbs", "id", ContentType.HENTAI) internal class KomiklokalCfd(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.KOMIKLOKALCFD, "komiklokal.sbs", pageSize = 30, searchPageSize = 10) { + MangaReaderParser(context, MangaSource.KOMIKLOKALCFD, "komiklokal.mom", pageSize = 30, searchPageSize = 10) { override val sourceLocale: Locale = Locale.ENGLISH } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/SekaikomikParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/SekaikomikParser.kt index e8e3fb98..d310ec5c 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/SekaikomikParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/SekaikomikParser.kt @@ -7,6 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("SEKAIKOMIK", "SekaiKomik", "id") internal class SekaikomikParser(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.SEKAIKOMIK, "sekaikomik.bio", pageSize = 20, searchPageSize = 100) { + MangaReaderParser(context, MangaSource.SEKAIKOMIK, "sekaikomik.guru", pageSize = 20, searchPageSize = 100) { override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/tr/MangaAy.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/tr/MangaAy.kt index 8e3f0a6d..bff10810 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/tr/MangaAy.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/tr/MangaAy.kt @@ -143,7 +143,7 @@ class MangaAy(context: MangaLoaderContext) : PagedMangaParser(context, MangaSour if (option.text().isEmpty()) continue tagMap[option.text()] = MangaTag( key = option.attr("value"), - title = option.text(), + title = option.text().toTitleCase(sourceLocale), source = source, ) } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/wpcomics/vi/Nettruyenmax.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/wpcomics/vi/Nettruyenmax.kt index f9164c5c..de38432d 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/wpcomics/vi/Nettruyenmax.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/wpcomics/vi/Nettruyenmax.kt @@ -7,4 +7,4 @@ import org.koitharu.kotatsu.parsers.site.wpcomics.WpComicsParser @MangaSourceParser("NETTRUYENMAX", "NettruyenBing", "vi") internal class Nettruyenmax(context: MangaLoaderContext) : - WpComicsParser(context, MangaSource.NETTRUYENMAX, "www.nettruyenbing.com", 36) + WpComicsParser(context, MangaSource.NETTRUYENMAX, "www.nettruyenclub.com", 36) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/zeistmanga/ZeistMangaParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/zeistmanga/ZeistMangaParser.kt index eef2cc74..73370a13 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/zeistmanga/ZeistMangaParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/zeistmanga/ZeistMangaParser.kt @@ -163,7 +163,7 @@ internal abstract class ZeistMangaParser( } Manga( id = generateUid(href), - url = href, + url = href.toRelativeUrl(domain), publicUrl = href, coverUrl = urlImg.orEmpty(), title = name, @@ -183,7 +183,7 @@ internal abstract class ZeistMangaParser( return doc.selectFirstOrThrow("div.filter").select("ul li").mapNotNullToSet { MangaTag( key = it.selectFirstOrThrow("input").attr("value"), - title = it.selectFirstOrThrow("label").text(), + title = it.selectFirstOrThrow("label").text().toTitleCase(sourceLocale), source = source, ) }