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 new file mode 100644 index 00000000..6124ae06 --- /dev/null +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/vi/Mi2Manga.kt @@ -0,0 +1,16 @@ +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/mangareader/id/Duniakomik.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Duniakomik.kt index ce2f5f92..dfeb89fa 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Duniakomik.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Duniakomik.kt @@ -8,7 +8,7 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("DUNIAKOMIK", "Duniakomik", "id", ContentType.HENTAI) internal class Duniakomik(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.DUNIAKOMIK, "duniakomik.id", pageSize = 12, searchPageSize = 12) { + MangaReaderParser(context, MangaSource.DUNIAKOMIK, "duniakomik.org", pageSize = 12, searchPageSize = 12) { override val datePattern = "MMM d, yyyy" } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/en/Manga4Life.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/nepnep/NepnepParser.kt similarity index 93% rename from src/main/kotlin/org/koitharu/kotatsu/parsers/site/en/Manga4Life.kt rename to src/main/kotlin/org/koitharu/kotatsu/parsers/site/nepnep/NepnepParser.kt index 82feb89e..e0e7127d 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/en/Manga4Life.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/nepnep/NepnepParser.kt @@ -1,11 +1,10 @@ -package org.koitharu.kotatsu.parsers.site.en +package org.koitharu.kotatsu.parsers.site.nepnep import okhttp3.Headers import org.json.JSONArray import org.json.JSONObject import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaParser -import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.config.ConfigKey import org.koitharu.kotatsu.parsers.model.* import org.koitharu.kotatsu.parsers.network.UserAgents @@ -16,13 +15,16 @@ import org.koitharu.kotatsu.parsers.util.json.toJSONList import java.text.SimpleDateFormat import java.util.* +internal abstract class NepnepParser( + context: MangaLoaderContext, + source: MangaSource, + domain: String, + ) : MangaParser(context, source) { -@MangaSourceParser("MANGA4LIFE", "Manga4Life", "en") -internal class Manga4Life(context: MangaLoaderContext) : MangaParser(context, MangaSource.MANGA4LIFE) { + override val configKeyDomain = ConfigKey.Domain(domain) override val sortOrders: Set = EnumSet.of(SortOrder.ALPHABETICAL) - override val configKeyDomain = ConfigKey.Domain("manga4life.com") override val headers: Headers = Headers.Builder() .add("User-Agent", UserAgents.CHROME_DESKTOP) @@ -242,14 +244,14 @@ internal class Manga4Life(context: MangaLoaderContext) : MangaParser(context, Ma ) val pageTotal = curChapter.getString("Page")!!.toInt() val host = "https://" + - script - .substringAfter("vm.CurPathName = \"", "") - .substringBefore('"') - .also { - if (it.isEmpty()) { - throw Exception("Manga4Life is overloaded and blocking Tachiyomi right now. Wait for unblock.") + script + .substringAfter("vm.CurPathName = \"", "") + .substringBefore('"') + .also { + if (it.isEmpty()) { + throw Exception("Manga4Life is overloaded and blocking kotatsu right now. Wait for unblock.") + } } - } val titleURI = script.substringAfter("vm.IndexName = \"").substringBefore("\"") val seasonURI = curChapter.getString("Directory")!! .let { if (it.isEmpty()) "" else "$it/" } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/nepnep/en/Manga4Life.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/nepnep/en/Manga4Life.kt new file mode 100644 index 00000000..6c1fb6d9 --- /dev/null +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/nepnep/en/Manga4Life.kt @@ -0,0 +1,10 @@ +package org.koitharu.kotatsu.parsers.site.nepnep.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.nepnep.NepnepParser + +@MangaSourceParser("MANGA4LIFE", "Manga4Life", "en") +internal class Manga4Life(context: MangaLoaderContext) : + NepnepParser(context, MangaSource.MANGA4LIFE, "manga4life.com") diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/nepnep/en/MangaSee.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/nepnep/en/MangaSee.kt new file mode 100644 index 00000000..3bca7eca --- /dev/null +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/nepnep/en/MangaSee.kt @@ -0,0 +1,10 @@ +package org.koitharu.kotatsu.parsers.site.nepnep.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.nepnep.NepnepParser + +@MangaSourceParser("MANGASEE", "MangaSee", "en") +internal class MangaSee(context: MangaLoaderContext) : + NepnepParser(context, MangaSource.MANGASEE, "mangasee123.com")