@@ -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")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<MangaChapter>): 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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user