From 5cdbda700b52c18b7b49684006c3d8b5886b264d Mon Sep 17 00:00:00 2001 From: devi Date: Tue, 2 Jan 2024 17:53:45 +0100 Subject: [PATCH] Urls : DomalFansub, HentaiVN, PheTruyen, TruyentranhLH Add : KomikSay, MangaLesen Remove : 1stManhwa, ConsejoDeMatones, OzulScans, SugarLab, HyoManga, Mi2Manga --- .../kotatsu/parsers/site/fr/ScantradUnion.kt | 3 +-- .../kotatsu/parsers/site/madara/de/MangaLesen.kt | 10 ++++++++++ .../kotatsu/parsers/site/madara/en/StManhwa.kt | 10 ---------- .../parsers/site/madara/es/ConsejoDeMatones.kt | 10 ---------- .../kotatsu/parsers/site/madara/fr/AstralManga.kt | 2 +- .../kotatsu/parsers/site/madara/tr/DomalFansb.kt | 2 +- .../kotatsu/parsers/site/madara/vi/Mi2Manga.kt | 14 -------------- .../kotatsu/parsers/site/madara/vi/Saytruyenhay.kt | 2 +- .../parsers/site/mangareader/en/OzulScansEn.kt | 12 ------------ .../mangareader/id/{SugarLab.kt => KomikSay.kt} | 7 +++---- .../parsers/site/ru/multichan/ChanParser.kt | 2 +- .../kotatsu/parsers/site/uk/MangaInUaParser.kt | 2 +- .../kotatsu/parsers/site/vi/HentaiVNParser.kt | 2 +- .../kotatsu/parsers/site/vi/TruyentranhLHParser.kt | 2 +- .../kotatsu/parsers/site/zeistmanga/id/HyoManga.kt | 12 ------------ .../kotatsu/parsers/site/zeistmanga/id/KomikGes.kt | 7 ++----- 16 files changed, 23 insertions(+), 76 deletions(-) create mode 100644 src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/de/MangaLesen.kt delete mode 100644 src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/StManhwa.kt delete mode 100644 src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/ConsejoDeMatones.kt delete mode 100644 src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/vi/Mi2Manga.kt delete mode 100644 src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/OzulScansEn.kt rename src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/{SugarLab.kt => KomikSay.kt} (56%) delete mode 100644 src/main/kotlin/org/koitharu/kotatsu/parsers/site/zeistmanga/id/HyoManga.kt diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fr/ScantradUnion.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fr/ScantradUnion.kt index b5c13aff1..d61b10e0d 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fr/ScantradUnion.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fr/ScantradUnion.kt @@ -182,8 +182,7 @@ internal class ScantradUnion(context: MangaLoaderContext) : PagedMangaParser(con override suspend fun getAvailableTags(): Set { val doc = webClient.httpGet("https://$domain/").parseHtml() val body = doc.body() - val root = body.select(".asp_gochosen")[1] - val list = root?.select("option").orEmpty() + val list = body.select(".asp_gochosen")[1].select("option").orEmpty() return list.mapToSet { li -> MangaTag( key = li.text().lowercase().replace(" ", "-"), diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/de/MangaLesen.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/de/MangaLesen.kt new file mode 100644 index 000000000..c740cf073 --- /dev/null +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/de/MangaLesen.kt @@ -0,0 +1,10 @@ +package org.koitharu.kotatsu.parsers.site.madara.de + +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("MANGALESEN", "MangaLesen", "de") +internal class MangaLesen(context: MangaLoaderContext) : + MadaraParser(context, MangaSource.MANGALESEN, "mangalesen.net") diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/StManhwa.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/StManhwa.kt deleted file mode 100644 index b4d6ea8e0..000000000 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/StManhwa.kt +++ /dev/null @@ -1,10 +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.MangaSource -import org.koitharu.kotatsu.parsers.site.madara.MadaraParser - -@MangaSourceParser("STMANHWA", "1stManhwa", "en") -internal class StManhwa(context: MangaLoaderContext) : - MadaraParser(context, MangaSource.STMANHWA, "1stmanhwa.com") diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/ConsejoDeMatones.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/ConsejoDeMatones.kt deleted file mode 100644 index 4b8011f7d..000000000 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/ConsejoDeMatones.kt +++ /dev/null @@ -1,10 +0,0 @@ -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("CONSEJODEMATONES", "ConsejoDeMatones", "es") -internal class ConsejoDeMatones(context: MangaLoaderContext) : - MadaraParser(context, MangaSource.CONSEJODEMATONES, "www.consejodematones.xyz") diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/fr/AstralManga.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/fr/AstralManga.kt index fcf8e6ae6..434e62517 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/fr/AstralManga.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/fr/AstralManga.kt @@ -7,6 +7,6 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser @MangaSourceParser("ASTRALMANGA", "AstralManga", "fr") internal class AstralManga(context: MangaLoaderContext) : - MadaraParser(context, MangaSource.ASTRALMANGA, "astral-manga.fr", pageSize = 12) { + MadaraParser(context, MangaSource.ASTRALMANGA, "astral-manga.fr") { override val datePattern = "dd/MM/yyyy" } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/DomalFansb.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/DomalFansb.kt index 1cb2141d5..952be4609 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/DomalFansb.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/DomalFansb.kt @@ -7,7 +7,7 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser @MangaSourceParser("DOMALFANSB", "DomalFansub", "tr") internal class DomalFansb(context: MangaLoaderContext) : - MadaraParser(context, MangaSource.DOMALFANSB, "domalfansb.com") { + MadaraParser(context, MangaSource.DOMALFANSB, "domalfansub.com.tr") { override val datePattern = "d MMMM yyyy" override val tagPrefix = "manga-turleri/" } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/vi/Mi2Manga.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/vi/Mi2Manga.kt deleted file mode 100644 index 82b6cb56c..000000000 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/vi/Mi2Manga.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.koitharu.kotatsu.parsers.site.madara.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.madara.MadaraParser - -@MangaSourceParser("MI2MANGA", "Mi2Manga", "vi") -internal class Mi2Manga(context: MangaLoaderContext) : - MadaraParser(context, MangaSource.MI2MANGA, "www.mi2manga2.com") { - override val listUrl = "truyen-tranh/" - override val tagPrefix = "the-loai/" - 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 6b8dafec0..cfbb886fd 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 @@ -11,7 +11,7 @@ import java.util.EnumSet @MangaSourceParser("SAYTRUYENHAY", "PheTruyen", "vi") internal class Saytruyenhay(context: MangaLoaderContext) : - MadaraParser(context, MangaSource.SAYTRUYENHAY, "phetruyen.net", 40) { + MadaraParser(context, MangaSource.SAYTRUYENHAY, "phetruyen.pro", 40) { override val tagPrefix = "genre/" override val withoutAjax = true diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/OzulScansEn.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/OzulScansEn.kt deleted file mode 100644 index b6aa46ca8..000000000 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/OzulScansEn.kt +++ /dev/null @@ -1,12 +0,0 @@ -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("OZULSCANSEN", "OzulScans", "en") -internal class OzulScansEn(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.OZULSCANSEN, "ozulscansen.com", pageSize = 30, searchPageSize = 10) { - override val listUrl = "/comics" -} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/SugarLab.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikSay.kt similarity index 56% rename from src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/SugarLab.kt rename to src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikSay.kt index 3e66916a4..84ef81b52 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/SugarLab.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikSay.kt @@ -2,13 +2,12 @@ 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.ContentType import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser import java.util.* -@MangaSourceParser("SUGARLAB", "SugarLab", "id", ContentType.HENTAI) -internal class SugarLab(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.SUGARLAB, "sugarlab.my.id", pageSize = 20, searchPageSize = 10) { +@MangaSourceParser("KOMIKSAY", "KomikSay", "id") +internal class KomikSay(context: MangaLoaderContext) : + MangaReaderParser(context, MangaSource.KOMIKSAY, "komiksay.info", pageSize = 30, searchPageSize = 10) { override val sourceLocale: Locale = Locale.ENGLISH } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ru/multichan/ChanParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ru/multichan/ChanParser.kt index a30a7ddb1..66b1ba865 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ru/multichan/ChanParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ru/multichan/ChanParser.kt @@ -81,7 +81,7 @@ internal abstract class ChanParser( description = root.getElementById("description")?.html()?.substringBeforeLast(" - val href = tr?.selectFirst("a")?.attrAsRelativeUrlOrNull("href") + val href = tr.selectFirst("a")?.attrAsRelativeUrlOrNull("href") ?: return@mapChapters null MangaChapter( id = generateUid(href), diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/uk/MangaInUaParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/uk/MangaInUaParser.kt index d47299791..99799bd15 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/uk/MangaInUaParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/uk/MangaInUaParser.kt @@ -106,7 +106,7 @@ class MangaInUaParser(context: MangaLoaderContext) : PagedMangaParser( largeCoverUrl = root.selectFirst("div.item__full-sidebar--poster")?.selectFirst("img") ?.attrAsAbsoluteUrlOrNull("src"), chapters = chapterNodes.mapChapters { _, item -> - val href = item?.selectFirst("a")?.attrAsRelativeUrlOrNull("href") ?: return@mapChapters null + val href = item.selectFirst("a")?.attrAsRelativeUrlOrNull("href") ?: return@mapChapters null val isAlternative = item.styleValueOrNull("background") != null val name = item.selectFirst("a")?.text().orEmpty() if (!isAlternative) i++ diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/vi/HentaiVNParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/vi/HentaiVNParser.kt index 5b3985588..d5ea7409d 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/vi/HentaiVNParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/vi/HentaiVNParser.kt @@ -23,7 +23,7 @@ private const val SEARCH_PAGE_SIZE = 10 @MangaSourceParser("HENTAIVN", "HentaiVN", "vi", type = ContentType.HENTAI) class HentaiVNParser(context: MangaLoaderContext) : MangaParser(context, MangaSource.HENTAIVN) { - override val configKeyDomain: ConfigKey.Domain = ConfigKey.Domain("hentaivn.autos", "hentaivn.tv") + override val configKeyDomain: ConfigKey.Domain = ConfigKey.Domain("hentaivn.red", "hentaivn.autos", "hentaivn.tv") // hentaivn has created 2 different interfaces for mobile and desktop, and Cloudflare detects whether it's mobile or not even with a desktop user agent. override val headers: Headers = Headers.Builder().add("User-Agent", UserAgents.CHROME_MOBILE).build() diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/vi/TruyentranhLHParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/vi/TruyentranhLHParser.kt index cff1542b6..e8c1effeb 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/vi/TruyentranhLHParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/vi/TruyentranhLHParser.kt @@ -17,7 +17,7 @@ import java.util.* class TruyentranhLHParser(context: MangaLoaderContext) : PagedMangaParser(context, source = MangaSource.TRUYENTRANHLH, pageSize = 18) { - override val configKeyDomain: ConfigKey.Domain = ConfigKey.Domain("truyentranhlh.net") + override val configKeyDomain: ConfigKey.Domain = ConfigKey.Domain("truyenlh.com") override val availableSortOrders: Set = EnumSet.allOf(SortOrder::class.java) override val availableStates: Set = EnumSet.of(MangaState.ONGOING, MangaState.FINISHED, MangaState.PAUSED) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/zeistmanga/id/HyoManga.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/zeistmanga/id/HyoManga.kt deleted file mode 100644 index d0ee010ba..000000000 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/zeistmanga/id/HyoManga.kt +++ /dev/null @@ -1,12 +0,0 @@ -package org.koitharu.kotatsu.parsers.site.zeistmanga.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.zeistmanga.ZeistMangaParser - -@MangaSourceParser("HYOMANGA", "HyoManga", "id") -internal class HyoManga(context: MangaLoaderContext) : - ZeistMangaParser(context, MangaSource.HYOMANGA, "www.hyomanga.my.id") { - override val mangaCategory = "Manga" -} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/zeistmanga/id/KomikGes.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/zeistmanga/id/KomikGes.kt index 6a0507282..1d143e0e1 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/zeistmanga/id/KomikGes.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/zeistmanga/id/KomikGes.kt @@ -51,11 +51,9 @@ internal class KomikGes(context: MangaLoaderContext) : } override suspend fun getPages(chapter: MangaChapter): List { - val doc = webClient.httpGet(chapter.url.toAbsoluteUrl(domain)).parseHtml() - - return doc.selectFirstOrThrow("script:containsData(let data_content =)").data().split("src\\x3d\\x22").drop(1) - + return doc.selectFirstOrThrow("script:containsData(let data_content =)").data() + .split("src\\x3d\\x22").drop(1) .map { img -> val url = img.substringBefore("\\x22") MangaPage( @@ -65,6 +63,5 @@ internal class KomikGes(context: MangaLoaderContext) : source = source, ) } - } }