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 5eb1e561..3885663a 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 @@ -316,29 +316,18 @@ internal abstract class MadaraParser( override val datePattern = "dd MMMM HH:mm" } - @MangaSourceParser("KINGMANGA", "KingManga", "en") - class KingManga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.KINGMANGA, "king-manga.com") { - - override fun getFaviconUrl(): String { - return "https://${getDomain()}/wp-content/uploads/2022/05/cropped-logo-king-02-03-32x32.png" - } - } - - @MangaSourceParser("MANGAHATACHI", "MangahaTachi", "ja") - class MangahaTachi(context: MangaLoaderContext) : - MadaraParser(context, MangaSource.MANGAHATACHI, "hachimanga.com") { + @MangaSourceParser("HachiManga", "HACHIMANGA", "ja") + class HachiManga(context: MangaLoaderContext) : + MadaraParser(context, MangaSource.HACHIMANGA, "hachimanga.com") { override val sourceLocale: Locale = Locale.ENGLISH } @MangaSourceParser("PIANMANGA", "PianManga", "en") - class PianManga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.PIANMANGA, "pianmanga.com") + class PianManga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.PIANMANGA, "pianmanga.me") @MangaSourceParser("MANGAROSIE", "MangaRosie", "en") - class MangaRosie(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANGAROSIE, "mangarosie.love") - - @MangaSourceParser("READMANWHA", "ReadManwha", "en") - class ReadManwha(context: MangaLoaderContext) : MadaraParser(context, MangaSource.READMANWHA, "readmanwha.net") + class MangaRosie(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANGAROSIE, "mangarosie.in") @MangaSourceParser("MANGATX", "MangaTx", "en") class MangaTx(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANGATX, "mangatx.com") @@ -356,9 +345,6 @@ internal abstract class MadaraParser( } } - @MangaSourceParser("MANGATX_OT", "MangaTx (ot)", "en") - class MangaTxOt(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANGATX_OT, "manga-tx.com") - @MangaSourceParser("MANGALEK", "MangaLek", "ar") class MangaLek(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANGALEK, "mangalek.com") { @@ -381,25 +367,11 @@ internal abstract class MadaraParser( @MangaSourceParser("FREEMANGA", "FreeManga", "en") class FreeManga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.FREEMANGA, "freemanga.me") - @MangaSourceParser("ISEKAISCAN", "IsekaiScan", "en") - class IsekaiScan(context: MangaLoaderContext) : MadaraParser(context, MangaSource.ISEKAISCAN, "isekaiscan.com") { - - override fun getFaviconUrl(): String { - return "https://${getDomain()}/wp-content/uploads/2021/10/isekai-scan-02-01-150x150.png" - } - } - @MangaSourceParser("MANGA_KOMI", "MangaKomi", "en") class MangaKomi(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANGA_KOMI, "mangakomi.io") - @MangaSourceParser("READMANHWA", "ReadManhwa", "en") - class ReadManhwa(context: MangaLoaderContext) : MadaraParser(context, MangaSource.READMANHWA, "readmanhwa.info") - @MangaSourceParser("NEATMANGA", "NeatManga", "en") - class NeatManga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.NEATMANGA, "neatmanga.com") - - @MangaSourceParser("MANGAKIK", "MangaKik", "en") - class MangaKik(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANGAKIK, "mangakik.net") + class NeatManga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.NEATMANGA, "neatmangas.com") @MangaSourceParser("MANHWACLAN", "ManhwaClan", "en") class ManhwaClan(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANHWACLAN, "manhwaclan.com") @@ -423,15 +395,9 @@ internal abstract class MadaraParser( override val datePattern = "MM/dd/yyyy" } - @MangaSourceParser("X2MANGA", "X2Manga", "en") - class X2Manga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.X2MANGA, "x2manga.com") - @MangaSourceParser("S2MANGA", "S2Manga", "en") class S2Manga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.S2MANGA, "s2manga.com") - @MangaSourceParser("MANHWA", "Manhwa", "en") - class Manhwa(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANHWA, "manhwa.pics") - @MangaSourceParser("SKY_MANGA", "Sky Manga", "en") class SkyManga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.SKY_MANGA, "skymanga.xyz") { @@ -442,6 +408,12 @@ internal abstract class MadaraParser( } } + @MangaSourceParser("BAKAMAN", "BakaMan", "th") + class BakaMan(context: MangaLoaderContext) : MadaraParser(context, MangaSource.BAKAMAN, "bakaman.net") { + + override val isNsfwSource = true + } + @MangaSourceParser("MANGA_DISTRICT", "Manga District", "en") class MangaDistrict(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANGA_DISTRICT, "mangadistrict.com") { @@ -506,9 +478,6 @@ internal abstract class MadaraParser( override val isNsfwSource = true } - @MangaSourceParser("MANHWA_CHILL", "Manhwa Chill", "en") - class ManhwaChill(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANHWA_CHILL, "manhwachill.me") - @MangaSourceParser("TREE_MANGA", "Tree Manga", "en") class TreeManga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.TREE_MANGA, "treemanga.com") { @@ -519,14 +488,6 @@ internal abstract class MadaraParser( } } - @MangaSourceParser("ALLTOPMANGA", "All Top Manga", "en") - class AllTopManga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.ALLTOPMANGA, "alltopmanga.com") { - - override fun getFaviconUrl(): String { - return "https://${getDomain()}/wp-content/uploads/2021/12/cropped-Screenshot_4-removebg-preview-32x32.png" - } - } - @MangaSourceParser("MANGACV", "Manga Cv", "en") class MangaCv(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANGACV, "mangacv.com") { @@ -554,4 +515,4 @@ internal abstract class MadaraParser( @MangaSourceParser("ZINMANGA", "ZINMANGA", "en") class Zinmanga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.ZINMANGA, "zinmanga.com") -} \ No newline at end of file +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/MangaReaderParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/MangaReaderParser.kt index db515ce2..4892f507 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/MangaReaderParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/MangaReaderParser.kt @@ -236,19 +236,6 @@ internal abstract class MangaReaderParser( get() = false } - @MangaSourceParser("HEROXIA", "Heroxia", "id") - class HeroxiaParser(override val context: MangaLoaderContext) : MangaReaderParser(MangaSource.HEROXIA, pageSize = 25, searchPageSize = 10) { - override val configKeyDomain: ConfigKey.Domain - get() = ConfigKey.Domain("heroxia.com", null) - - override val tableMode: Boolean - get() = true - override val listUrl: String - get() = "/manga" - override val chapterDateFormat: SimpleDateFormat = SimpleDateFormat("MMMM d, yyyy", Locale.ENGLISH) - } - - @MangaSourceParser("SEKAIKOMIK", "Sekaikomik", "id") class SekaikomikParser(override val context: MangaLoaderContext) : MangaReaderParser(MangaSource.SEKAIKOMIK, pageSize = 20, searchPageSize = 100) { override val configKeyDomain: ConfigKey.Domain @@ -273,7 +260,7 @@ internal abstract class MangaReaderParser( @MangaSourceParser("MANHWALIST", "Manhwalist", "id") class ManhwalistParser(override val context: MangaLoaderContext) : MangaReaderParser(MangaSource.MANHWALIST, pageSize = 24, searchPageSize = 10) { override val configKeyDomain: ConfigKey.Domain - get() = ConfigKey.Domain("manhwalist.com", null) + get() = ConfigKey.Domain("manhwalist.in", null) override val listUrl: String = "/manga" override val tableMode: Boolean get() = false @@ -384,6 +371,30 @@ internal abstract class MangaReaderParser( } } + @MangaSourceParser("DRAGONTRANSLATION", "DragonTranslation", "es") + class DragonTranslationParser(override val context: MangaLoaderContext) : MangaReaderParser(MangaSource.DRAGONTRANSLATION, pageSize = 20, searchPageSize = 10) { + override val configKeyDomain: ConfigKey.Domain + get() = ConfigKey.Domain("dragontranslation.com", null) + + override val listUrl: String get() = "/manga" + override val tableMode: Boolean get() = false + + override val chapterDateFormat: SimpleDateFormat = SimpleDateFormat("MMMM d, yyyy", Locale.ENGLISH) + + override suspend fun parseInfoList(docs: Document, manga: Manga, chapters: List): Manga { + val infoElement = docs.selectFirst("div.infox") + return manga.copy( + chapters = chapters, + description = infoElement?.selectFirst("div.entry-content")?.html(), + author = infoElement?.selectFirst(".flex-wrap div:contains(Author)")?.lastElementSibling()?.text(), + tags = infoElement?.select(".wd-full .mgen > a") + ?.mapNotNullToSet { getOrCreateTagMap()[it.text()] } + .orEmpty(), + isNsfw = docs.selectFirst(".postbody .alr") != null, + ) + } + } + @MangaSourceParser("ASURATR", "Asura Scans (tr)", "tr") class AsuraTRParser(override val context: MangaLoaderContext) : MangaReaderParser(MangaSource.ASURATR, pageSize = 30, searchPageSize = 10) { override val configKeyDomain: ConfigKey.Domain @@ -484,4 +495,30 @@ internal abstract class MangaReaderParser( override val chapterDateFormat: SimpleDateFormat = SimpleDateFormat("MMM d, yyyy", Locale.ENGLISH) } + + @MangaSourceParser("KOMIKINDO", "KomikIndo", "id") + class KomikIndoParser(override val context: MangaLoaderContext) : MangaReaderParser(MangaSource.KOMIKINDO, pageSize = 20, searchPageSize = 10) { + override val configKeyDomain: ConfigKey.Domain + get() = ConfigKey.Domain("komikindo.co", null) + + override val listUrl: String + get() = "/project" + override val tableMode: Boolean + get() = true + + override val chapterDateFormat: SimpleDateFormat = SimpleDateFormat("MMM d, yyyy", idLocale) + } + + @MangaSourceParser("KOMIKMANGA", "KomikManga", "id") + class KomikMangaParser(override val context: MangaLoaderContext) : MangaReaderParser(MangaSource.KOMIKMANGA, pageSize = 20, searchPageSize = 10) { + override val configKeyDomain: ConfigKey.Domain + get() = ConfigKey.Domain("komikmanga.xyz", null) + + override val listUrl: String + get() = "/project" + override val tableMode: Boolean + get() = true + + override val chapterDateFormat: SimpleDateFormat = SimpleDateFormat("MMM d, yyyy", Locale.ENGLISH) + } }