add source and fix
This commit is contained in:
@@ -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")
|
||||
Reference in New Issue
Block a user