@@ -316,29 +316,18 @@ internal abstract class MadaraParser(
|
|||||||
override val datePattern = "dd MMMM HH:mm"
|
override val datePattern = "dd MMMM HH:mm"
|
||||||
}
|
}
|
||||||
|
|
||||||
@MangaSourceParser("KINGMANGA", "KingManga", "en")
|
@MangaSourceParser("HachiManga", "HACHIMANGA", "ja")
|
||||||
class KingManga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.KINGMANGA, "king-manga.com") {
|
class HachiManga(context: MangaLoaderContext) :
|
||||||
|
MadaraParser(context, MangaSource.HACHIMANGA, "hachimanga.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") {
|
|
||||||
|
|
||||||
override val sourceLocale: Locale = Locale.ENGLISH
|
override val sourceLocale: Locale = Locale.ENGLISH
|
||||||
}
|
}
|
||||||
|
|
||||||
@MangaSourceParser("PIANMANGA", "PianManga", "en")
|
@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")
|
@MangaSourceParser("MANGAROSIE", "MangaRosie", "en")
|
||||||
class MangaRosie(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANGAROSIE, "mangarosie.love")
|
class MangaRosie(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANGAROSIE, "mangarosie.in")
|
||||||
|
|
||||||
@MangaSourceParser("READMANWHA", "ReadManwha", "en")
|
|
||||||
class ReadManwha(context: MangaLoaderContext) : MadaraParser(context, MangaSource.READMANWHA, "readmanwha.net")
|
|
||||||
|
|
||||||
@MangaSourceParser("MANGATX", "MangaTx", "en")
|
@MangaSourceParser("MANGATX", "MangaTx", "en")
|
||||||
class MangaTx(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANGATX, "mangatx.com")
|
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")
|
@MangaSourceParser("MANGALEK", "MangaLek", "ar")
|
||||||
class MangaLek(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANGALEK, "mangalek.com") {
|
class MangaLek(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANGALEK, "mangalek.com") {
|
||||||
|
|
||||||
@@ -381,25 +367,11 @@ internal abstract class MadaraParser(
|
|||||||
@MangaSourceParser("FREEMANGA", "FreeManga", "en")
|
@MangaSourceParser("FREEMANGA", "FreeManga", "en")
|
||||||
class FreeManga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.FREEMANGA, "freemanga.me")
|
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")
|
@MangaSourceParser("MANGA_KOMI", "MangaKomi", "en")
|
||||||
class MangaKomi(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANGA_KOMI, "mangakomi.io")
|
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")
|
@MangaSourceParser("NEATMANGA", "NeatManga", "en")
|
||||||
class NeatManga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.NEATMANGA, "neatmanga.com")
|
class NeatManga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.NEATMANGA, "neatmangas.com")
|
||||||
|
|
||||||
@MangaSourceParser("MANGAKIK", "MangaKik", "en")
|
|
||||||
class MangaKik(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANGAKIK, "mangakik.net")
|
|
||||||
|
|
||||||
@MangaSourceParser("MANHWACLAN", "ManhwaClan", "en")
|
@MangaSourceParser("MANHWACLAN", "ManhwaClan", "en")
|
||||||
class ManhwaClan(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANHWACLAN, "manhwaclan.com")
|
class ManhwaClan(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANHWACLAN, "manhwaclan.com")
|
||||||
@@ -423,15 +395,9 @@ internal abstract class MadaraParser(
|
|||||||
override val datePattern = "MM/dd/yyyy"
|
override val datePattern = "MM/dd/yyyy"
|
||||||
}
|
}
|
||||||
|
|
||||||
@MangaSourceParser("X2MANGA", "X2Manga", "en")
|
|
||||||
class X2Manga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.X2MANGA, "x2manga.com")
|
|
||||||
|
|
||||||
@MangaSourceParser("S2MANGA", "S2Manga", "en")
|
@MangaSourceParser("S2MANGA", "S2Manga", "en")
|
||||||
class S2Manga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.S2MANGA, "s2manga.com")
|
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")
|
@MangaSourceParser("SKY_MANGA", "Sky Manga", "en")
|
||||||
class SkyManga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.SKY_MANGA, "skymanga.xyz") {
|
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")
|
@MangaSourceParser("MANGA_DISTRICT", "Manga District", "en")
|
||||||
class MangaDistrict(context: MangaLoaderContext) :
|
class MangaDistrict(context: MangaLoaderContext) :
|
||||||
MadaraParser(context, MangaSource.MANGA_DISTRICT, "mangadistrict.com") {
|
MadaraParser(context, MangaSource.MANGA_DISTRICT, "mangadistrict.com") {
|
||||||
@@ -506,9 +478,6 @@ internal abstract class MadaraParser(
|
|||||||
override val isNsfwSource = true
|
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")
|
@MangaSourceParser("TREE_MANGA", "Tree Manga", "en")
|
||||||
class TreeManga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.TREE_MANGA, "treemanga.com") {
|
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")
|
@MangaSourceParser("MANGACV", "Manga Cv", "en")
|
||||||
class MangaCv(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANGACV, "mangacv.com") {
|
class MangaCv(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANGACV, "mangacv.com") {
|
||||||
|
|
||||||
@@ -554,4 +515,4 @@ internal abstract class MadaraParser(
|
|||||||
|
|
||||||
@MangaSourceParser("ZINMANGA", "ZINMANGA", "en")
|
@MangaSourceParser("ZINMANGA", "ZINMANGA", "en")
|
||||||
class Zinmanga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.ZINMANGA, "zinmanga.com")
|
class Zinmanga(context: MangaLoaderContext) : MadaraParser(context, MangaSource.ZINMANGA, "zinmanga.com")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -236,19 +236,6 @@ internal abstract class MangaReaderParser(
|
|||||||
get() = false
|
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")
|
@MangaSourceParser("SEKAIKOMIK", "Sekaikomik", "id")
|
||||||
class SekaikomikParser(override val context: MangaLoaderContext) : MangaReaderParser(MangaSource.SEKAIKOMIK, pageSize = 20, searchPageSize = 100) {
|
class SekaikomikParser(override val context: MangaLoaderContext) : MangaReaderParser(MangaSource.SEKAIKOMIK, pageSize = 20, searchPageSize = 100) {
|
||||||
override val configKeyDomain: ConfigKey.Domain
|
override val configKeyDomain: ConfigKey.Domain
|
||||||
@@ -273,7 +260,7 @@ internal abstract class MangaReaderParser(
|
|||||||
@MangaSourceParser("MANHWALIST", "Manhwalist", "id")
|
@MangaSourceParser("MANHWALIST", "Manhwalist", "id")
|
||||||
class ManhwalistParser(override val context: MangaLoaderContext) : MangaReaderParser(MangaSource.MANHWALIST, pageSize = 24, searchPageSize = 10) {
|
class ManhwalistParser(override val context: MangaLoaderContext) : MangaReaderParser(MangaSource.MANHWALIST, pageSize = 24, searchPageSize = 10) {
|
||||||
override val configKeyDomain: ConfigKey.Domain
|
override val configKeyDomain: ConfigKey.Domain
|
||||||
get() = ConfigKey.Domain("manhwalist.com", null)
|
get() = ConfigKey.Domain("manhwalist.in", null)
|
||||||
|
|
||||||
override val listUrl: String = "/manga"
|
override val listUrl: String = "/manga"
|
||||||
override val tableMode: Boolean get() = false
|
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")
|
@MangaSourceParser("ASURATR", "Asura Scans (tr)", "tr")
|
||||||
class AsuraTRParser(override val context: MangaLoaderContext) : MangaReaderParser(MangaSource.ASURATR, pageSize = 30, searchPageSize = 10) {
|
class AsuraTRParser(override val context: MangaLoaderContext) : MangaReaderParser(MangaSource.ASURATR, pageSize = 30, searchPageSize = 10) {
|
||||||
override val configKeyDomain: ConfigKey.Domain
|
override val configKeyDomain: ConfigKey.Domain
|
||||||
@@ -484,4 +495,30 @@ internal abstract class MangaReaderParser(
|
|||||||
|
|
||||||
override val chapterDateFormat: SimpleDateFormat = SimpleDateFormat("MMM d, yyyy", Locale.ENGLISH)
|
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