add source and fix

master
devi 2 years ago
parent 939b6b1e46
commit 2e138da3d5

@ -8,7 +8,6 @@ import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
import okhttp3.Interceptor
import okhttp3.Response
import okhttp3.internal.headersContentLength
import org.intellij.lang.annotations.Language
import org.jsoup.internal.StringUtil
import org.jsoup.nodes.Element
import org.koitharu.kotatsu.parsers.MangaLoaderContext

@ -0,0 +1,10 @@
package org.koitharu.kotatsu.parsers.site.keyoapp.ar
import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.keyoapp.KeyoappParser
@MangaSourceParser("SCANS4U", "4uScans", "ar")
internal class Scans4u(context: MangaLoaderContext) :
KeyoappParser(context, MangaParserSource.SCANS4U, "4uscans.com")

@ -1,15 +1,13 @@
package org.koitharu.kotatsu.parsers.site.madara.ar
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@Broken
@MangaSourceParser("WEBTOONEMPIRE", "WebtoonEmpire", "ar")
internal class WebtoonEmpire(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.WEBTOONEMPIRE, "webtoonsempireron.com", pageSize = 10) {
MadaraParser(context, MangaParserSource.WEBTOONEMPIRE, "webtoonempire-ron.com", pageSize = 10) {
override val listUrl = "webtoon/"
override val datePattern = "d MMMM، yyyy"
}

@ -0,0 +1,14 @@
package org.koitharu.kotatsu.parsers.site.madara.ar
import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
import java.util.Locale
@MangaSourceParser("YONABAR", "YonaBar", "ar")
internal class YonaBar(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.YONABAR, "yonabar.xyz", 10) {
override val sourceLocale: Locale = Locale.ENGLISH
override val listUrl = "yaoi/"
}

@ -9,7 +9,7 @@ import org.koitharu.kotatsu.parsers.util.*
@MangaSourceParser("FIRESCANS", "FireScans", "en")
internal class FireScans(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.FIRESCANS, "firecomics.org", 10) {
MadaraParser(context, MangaParserSource.FIRESCANS, "firescans.xyz", 10) {
override fun parseMangaList(doc: Document): List<Manga> {
return doc.select("div.row.c-tabs-item__content").ifEmpty {

@ -0,0 +1,12 @@
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.MangaParserSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("ARTESSUPREMAS", "ArtesSupremas", "es")
internal class ArtesSupremas(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.ARTESSUPREMAS, "artessupremas.com") {
override val datePattern = "dd/MM/yyyy"
}

@ -7,6 +7,6 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("ATIKROST", "Atikrost", "tr")
internal class Atikrost(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.ATIKROST, "www.atikrost.com", 10) {
MadaraParser(context, MangaParserSource.ATIKROST, "www.mangaoku.org", 10) {
override val datePattern = "d MMMM yyyy"
}

@ -8,7 +8,7 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
//This source requires an account.
@MangaSourceParser("GRIMELEK", "Grimelek", "tr")
internal class Grimelek(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.GRIMELEK, "grimelek.me", 20) {
MadaraParser(context, MangaParserSource.GRIMELEK, "grimelek.pro", 20) {
override val datePattern = "d MMMM yyyy"
override val listUrl = "seri/"
}

@ -8,7 +8,7 @@ import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("LUNASCANS", "LunaScans", "tr", ContentType.HENTAI)
internal class LunaScans(context: MangaLoaderContext) :
MadaraParser(context, MangaParserSource.LUNASCANS, "lunascans.fun") {
MadaraParser(context, MangaParserSource.LUNASCANS, "lunascans.org") {
override val postReq = true
override val datePattern = "dd MMMM yyyy"
}

@ -223,18 +223,18 @@ internal abstract class MangaReaderParser(
"En cours de publication", "Đang tiến hành", "Em lançamento", "em lançamento", "Em Lançamento", "Онгоінг", "Publishing",
"Devam Ediyor", "Em Andamento", "In Corso", "Güncel", "Berjalan", "Продолжается", "Updating", "Lançando", "In Arrivo", "Emision",
"En emision", "مستمر", "Curso", "En marcha", "Publicandose", "Publicando", "连载中", "Devam ediyor", "Devam Etmekte",
-> MangaState.ONGOING
-> MangaState.ONGOING
"Completed", "Completo", "Complété", "Fini", "Achevé", "Terminé", "Terminé ⚫", "Tamamlandı", "Đã hoàn thành", "Hoàn Thành",
"مكتملة", "Завершено", "Finished", "Finalizado", "Completata", "One-Shot", "Bitti", "Tamat", "Completado", "Concluído",
"Concluido", "已完结", "Bitmiş",
-> MangaState.FINISHED
-> MangaState.FINISHED
"Canceled", "Cancelled", "Cancelado", "cancellato", "Cancelados", "Dropped", "Discontinued", "abandonné", "Abandonné",
-> MangaState.ABANDONED
-> MangaState.ABANDONED
"Hiatus", "On Hold", "Pausado", "En espera", "En pause", "En Pause", "En attente",
-> MangaState.PAUSED
-> MangaState.PAUSED
else -> null
}

@ -5,6 +5,6 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
@MangaSourceParser("NOONSCAN", "NoonScan", "ar")
@MangaSourceParser("NOONSCAN", "NoonScan.com", "ar")
internal class NoonScan(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.NOONSCAN, "noonscan.com", pageSize = 20, searchPageSize = 10)

@ -10,7 +10,7 @@ import java.text.SimpleDateFormat
@MangaSourceParser("NORMOYUN", "MaxLevelTeam", "ar")
internal class Normoyun(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.NORMOYUN, "tatwt.com", pageSize = 42, searchPageSize = 39) {
MangaReaderParser(context, MangaParserSource.NORMOYUN, "healteer.com", pageSize = 42, searchPageSize = 39) {
override val datePattern = "MMMM dd, yyyy"
override val selectMangaList = ".listupd .bs .bsx"

@ -5,12 +5,12 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
@MangaSourceParser("LUMINOUSSCANS", "LuminousScans", "en")
@MangaSourceParser("LUMINOUSSCANS", "RadiantScans", "en")
internal class LuminousScans(context: MangaLoaderContext) :
MangaReaderParser(
context,
MangaParserSource.LUMINOUSSCANS,
"luminous-scans.com",
"radiantscans.com",
pageSize = 20,
searchPageSize = 10,
) {

@ -5,7 +5,7 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
@MangaSourceParser("MANJANOON_EN", "NoonScan", "en")
@MangaSourceParser("MANJANOON_EN", "NoonScan.net", "en")
internal class Manjanoon(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.MANJANOON_EN, "noonscan.net", pageSize = 20, searchPageSize = 10) {
override val isTagsExclusionSupported = false

@ -1,12 +1,10 @@
package org.koitharu.kotatsu.parsers.site.mangareader.es
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
@Broken
@MangaSourceParser("INARIPIKAV", "InariPikav", "es")
internal class InariPikav(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.INARIPIKAV, "inaripikav.org", pageSize = 10, searchPageSize = 10) {

@ -7,4 +7,7 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
@MangaSourceParser("SUSHISCANFR", "SushiScan.fr", "fr")
internal class SushiScanFR(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.SUSHISCANFR, "sushiscan.fr", pageSize = 36, searchPageSize = 10)
MangaReaderParser(context, MangaParserSource.SUSHISCANFR, "sushiscan.fr", pageSize = 36, searchPageSize = 10) {
override val listUrl = "/catalogue"
override val isTagsExclusionSupported = false
}

@ -8,6 +8,12 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
@MangaSourceParser("DOUJINDESURIP", "DoujinDesu.click", "id", ContentType.HENTAI)
internal class DoujinDesuRip(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.DOUJINDESURIP, "doujindesu.click", pageSize = 20, searchPageSize = 10) {
MangaReaderParser(
context,
MangaParserSource.DOUJINDESURIP,
"doujindesu.click",
pageSize = 20,
searchPageSize = 10,
) {
override val isTagsExclusionSupported = false
}

@ -8,6 +8,12 @@ import java.util.*
@MangaSourceParser("MANGAYARO", "MangaYaro", "id")
internal class Mangayaro(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.MANGAYARO, "mangayaro.id", pageSize = 20, searchPageSize = 20) {
MangaReaderParser(
context,
MangaParserSource.MANGAYARO,
"www.nowheartruth.com",
pageSize = 20,
searchPageSize = 20,
) {
override val sourceLocale: Locale = Locale.ENGLISH
}

@ -8,7 +8,13 @@ import java.util.*
@MangaSourceParser("MONZEEKOMIK", "MonzeeKomik", "id")
internal class MonzeeKomik(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.MONZEEKOMIK, "www.monzeekomik.my.id", pageSize = 30, searchPageSize = 10) {
MangaReaderParser(
context,
MangaParserSource.MONZEEKOMIK,
"www.monzeekomik.my.id",
pageSize = 30,
searchPageSize = 10,
) {
override val sourceLocale: Locale = Locale.ENGLISH
override val isTagsExclusionSupported = false
}

@ -0,0 +1,14 @@
package org.koitharu.kotatsu.parsers.site.mangareader.th
import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
import java.util.Locale
@MangaSourceParser("REAPERTRANS", "ReaperTrans", "th")
internal class ReaperTrans(context: MangaLoaderContext) :
MangaReaderParser(context, MangaParserSource.REAPERTRANS, "reapertrans.com", pageSize = 30, searchPageSize = 14) {
override val isTagsExclusionSupported = false
override val sourceLocale: Locale = Locale.ENGLISH
}

@ -186,17 +186,17 @@ internal abstract class NepnepParser(
altTitle = null,
state = when (doc.selectFirstOrThrow(".list-group-item:contains(Status:) a").text()) {
"Ongoing (Scan)", "Ongoing (Publish)",
-> MangaState.ONGOING
-> MangaState.ONGOING
"Complete (Scan)", "Complete (Publish)",
-> MangaState.FINISHED
-> MangaState.FINISHED
"Cancelled (Scan)", "Cancelled (Publish)",
"Discontinued (Scan)", "Discontinued (Publish)",
-> MangaState.ABANDONED
-> MangaState.ABANDONED
"Hiatus (Scan)", "Hiatus (Publish)",
-> MangaState.PAUSED
-> MangaState.PAUSED
else -> null
},

@ -1,7 +1,6 @@
package org.koitharu.kotatsu.parsers.site.vi
import androidx.collection.ArrayMap
import okhttp3.Headers
import org.json.JSONArray
import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
@ -25,9 +24,12 @@ class BlogTruyenParser(context: MangaLoaderContext) :
override val availableSortOrders: Set<SortOrder>
get() = EnumSet.of(SortOrder.UPDATED)
override fun getRequestHeaders(): Headers = Headers.Builder()
.add("User-Agent", UserAgents.CHROME_DESKTOP)
.build()
override val userAgentKey = ConfigKey.UserAgent(UserAgents.CHROME_DESKTOP)
override fun onCreateConfig(keys: MutableCollection<ConfigKey<*>>) {
super.onCreateConfig(keys)
keys.add(userAgentKey)
}
override val isMultipleTagsSupported = false

@ -1,7 +1,6 @@
package org.koitharu.kotatsu.parsers.site.vi
import androidx.collection.ArrayMap
import okhttp3.Headers
import org.json.JSONArray
import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
@ -25,9 +24,12 @@ class BlogTruyenVNParser(context: MangaLoaderContext) :
override val availableSortOrders: Set<SortOrder>
get() = EnumSet.of(SortOrder.UPDATED)
override fun getRequestHeaders(): Headers = Headers.Builder()
.add("User-Agent", UserAgents.CHROME_DESKTOP)
.build()
override val userAgentKey = ConfigKey.UserAgent(UserAgents.CHROME_DESKTOP)
override fun onCreateConfig(keys: MutableCollection<ConfigKey<*>>) {
super.onCreateConfig(keys)
keys.add(userAgentKey)
}
override val isMultipleTagsSupported = false

@ -288,7 +288,7 @@ internal abstract class WpComicsParser(
return when {
d.endsWith(" ago") ||
d.endsWith(" trước")
-> parseRelativeDate(date)
-> parseRelativeDate(date)
d.startsWith("year") -> Calendar.getInstance().apply {
add(Calendar.DAY_OF_MONTH, -1)

@ -0,0 +1,10 @@
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.MangaParserSource
import org.koitharu.kotatsu.parsers.site.zeistmanga.ZeistMangaParser
@MangaSourceParser("NGAMENKOMIK", "NgamenKomik", "id")
internal class NgamenKomik(context: MangaLoaderContext) :
ZeistMangaParser(context, MangaParserSource.NGAMENKOMIK, "ngamenkomik05.blogspot.com")
Loading…
Cancel
Save