parent
b9d89edfc2
commit
26c3edbc17
@ -1,10 +1,12 @@
|
|||||||
package org.koitharu.kotatsu.parsers.site.foolslide.en
|
package org.koitharu.kotatsu.parsers.site.foolslide.en
|
||||||
|
|
||||||
|
import org.koitharu.kotatsu.parsers.Broken
|
||||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||||
import org.koitharu.kotatsu.parsers.site.foolslide.FoolSlideParser
|
import org.koitharu.kotatsu.parsers.site.foolslide.FoolSlideParser
|
||||||
|
|
||||||
|
@Broken
|
||||||
@MangaSourceParser("READER_EVILFLOWERS", "Evil Flowers", "en")
|
@MangaSourceParser("READER_EVILFLOWERS", "Evil Flowers", "en")
|
||||||
internal class ReaderEvilflowers(context: MangaLoaderContext) :
|
internal class ReaderEvilflowers(context: MangaLoaderContext) :
|
||||||
FoolSlideParser(context, MangaParserSource.READER_EVILFLOWERS, "reader.evilflowers.com")
|
FoolSlideParser(context, MangaParserSource.READER_EVILFLOWERS, "reader.evilflowers.com")
|
||||||
|
|||||||
@ -0,0 +1,12 @@
|
|||||||
|
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
|
||||||
|
|
||||||
|
@MangaSourceParser("CROWSCANS", "Hadess", "ar")
|
||||||
|
internal class CrowScans(context: MangaLoaderContext) :
|
||||||
|
MadaraParser(context, MangaParserSource.CROWSCANS, "www.hadess.xyz") {
|
||||||
|
override val datePattern = "dd MMMM، yyyy"
|
||||||
|
}
|
||||||
@ -1,10 +1,12 @@
|
|||||||
package org.koitharu.kotatsu.parsers.site.madara.de
|
package org.koitharu.kotatsu.parsers.site.madara.de
|
||||||
|
|
||||||
|
import org.koitharu.kotatsu.parsers.Broken
|
||||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||||
|
|
||||||
|
@Broken
|
||||||
@MangaSourceParser("MANGALESEN", "MangaLesen", "de")
|
@MangaSourceParser("MANGALESEN", "MangaLesen", "de")
|
||||||
internal class MangaLesen(context: MangaLoaderContext) :
|
internal class MangaLesen(context: MangaLoaderContext) :
|
||||||
MadaraParser(context, MangaParserSource.MANGALESEN, "mangalesen.net")
|
MadaraParser(context, MangaParserSource.MANGALESEN, "mangalesen.net")
|
||||||
|
|||||||
@ -1,11 +1,13 @@
|
|||||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||||
|
|
||||||
|
import org.koitharu.kotatsu.parsers.Broken
|
||||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||||
import org.koitharu.kotatsu.parsers.model.ContentType
|
import org.koitharu.kotatsu.parsers.model.ContentType
|
||||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||||
|
|
||||||
|
@Broken
|
||||||
@MangaSourceParser("DUCKMANGA", "DuckManga", "en", ContentType.HENTAI)
|
@MangaSourceParser("DUCKMANGA", "DuckManga", "en", ContentType.HENTAI)
|
||||||
internal class DuckManga(context: MangaLoaderContext) :
|
internal class DuckManga(context: MangaLoaderContext) :
|
||||||
MadaraParser(context, MangaParserSource.DUCKMANGA, "duckmanga.com", 20)
|
MadaraParser(context, MangaParserSource.DUCKMANGA, "duckmanga.com", 20)
|
||||||
|
|||||||
@ -1,11 +1,13 @@
|
|||||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||||
|
|
||||||
|
import org.koitharu.kotatsu.parsers.Broken
|
||||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||||
import org.koitharu.kotatsu.parsers.model.ContentType
|
import org.koitharu.kotatsu.parsers.model.ContentType
|
||||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||||
|
|
||||||
|
@Broken
|
||||||
@MangaSourceParser("HIPERDEX", "HiperDex", "en", ContentType.HENTAI)
|
@MangaSourceParser("HIPERDEX", "HiperDex", "en", ContentType.HENTAI)
|
||||||
internal class HiperDex(context: MangaLoaderContext) :
|
internal class HiperDex(context: MangaLoaderContext) :
|
||||||
MadaraParser(context, MangaParserSource.HIPERDEX, "hiperdex.com", 36)
|
MadaraParser(context, MangaParserSource.HIPERDEX, "hiperdex.com", 36)
|
||||||
|
|||||||
@ -1,10 +1,12 @@
|
|||||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||||
|
|
||||||
|
import org.koitharu.kotatsu.parsers.Broken
|
||||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||||
|
|
||||||
|
@Broken
|
||||||
@MangaSourceParser("LUFFYMANGA", "LuffyManga", "en")
|
@MangaSourceParser("LUFFYMANGA", "LuffyManga", "en")
|
||||||
internal class LuffyManga(context: MangaLoaderContext) :
|
internal class LuffyManga(context: MangaLoaderContext) :
|
||||||
MadaraParser(context, MangaParserSource.LUFFYMANGA, "luffymanga.com", 10)
|
MadaraParser(context, MangaParserSource.LUFFYMANGA, "luffymanga.com", 10)
|
||||||
|
|||||||
@ -1,10 +1,12 @@
|
|||||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||||
|
|
||||||
|
import org.koitharu.kotatsu.parsers.Broken
|
||||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||||
|
|
||||||
|
@Broken
|
||||||
@MangaSourceParser("MANGA1001", "Manga1001", "en")
|
@MangaSourceParser("MANGA1001", "Manga1001", "en")
|
||||||
internal class Manga1001(context: MangaLoaderContext) :
|
internal class Manga1001(context: MangaLoaderContext) :
|
||||||
MadaraParser(context, MangaParserSource.MANGA1001, "manga-1001.com", 10)
|
MadaraParser(context, MangaParserSource.MANGA1001, "manga-1001.com", 10)
|
||||||
|
|||||||
@ -1,10 +1,12 @@
|
|||||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||||
|
|
||||||
|
import org.koitharu.kotatsu.parsers.Broken
|
||||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||||
|
|
||||||
|
@Broken
|
||||||
@MangaSourceParser("MANGAACTION", "MangaAction", "en")
|
@MangaSourceParser("MANGAACTION", "MangaAction", "en")
|
||||||
internal class MangaAction(context: MangaLoaderContext) :
|
internal class MangaAction(context: MangaLoaderContext) :
|
||||||
MadaraParser(context, MangaParserSource.MANGAACTION, "mangaaction.com")
|
MadaraParser(context, MangaParserSource.MANGAACTION, "mangaaction.com")
|
||||||
|
|||||||
@ -1,10 +1,12 @@
|
|||||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||||
|
|
||||||
|
import org.koitharu.kotatsu.parsers.Broken
|
||||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||||
|
|
||||||
|
@Broken
|
||||||
@MangaSourceParser("MANGACULTIVATOR", "MangaCultivator", "en")
|
@MangaSourceParser("MANGACULTIVATOR", "MangaCultivator", "en")
|
||||||
internal class MangaCultivator(context: MangaLoaderContext) :
|
internal class MangaCultivator(context: MangaLoaderContext) :
|
||||||
MadaraParser(context, MangaParserSource.MANGACULTIVATOR, "mangacultivator.com", 10)
|
MadaraParser(context, MangaParserSource.MANGACULTIVATOR, "mangacultivator.com", 10)
|
||||||
|
|||||||
@ -1,10 +1,12 @@
|
|||||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||||
|
|
||||||
|
import org.koitharu.kotatsu.parsers.Broken
|
||||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||||
|
|
||||||
|
@Broken
|
||||||
@MangaSourceParser("MANGAOWLBLOG", "MangaOwlnet.com", "en")
|
@MangaSourceParser("MANGAOWLBLOG", "MangaOwlnet.com", "en")
|
||||||
internal class MangaOwlBlog(context: MangaLoaderContext) :
|
internal class MangaOwlBlog(context: MangaLoaderContext) :
|
||||||
MadaraParser(context, MangaParserSource.MANGAOWLBLOG, "mangaowlnet.com")
|
MadaraParser(context, MangaParserSource.MANGAOWLBLOG, "mangaowlnet.com")
|
||||||
|
|||||||
@ -1,11 +1,13 @@
|
|||||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||||
|
|
||||||
|
import org.koitharu.kotatsu.parsers.Broken
|
||||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||||
import org.koitharu.kotatsu.parsers.model.ContentType
|
import org.koitharu.kotatsu.parsers.model.ContentType
|
||||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||||
|
|
||||||
|
@Broken
|
||||||
@MangaSourceParser("MANGAOWL_US", "MangaOwlYaoi", "en", ContentType.HENTAI)
|
@MangaSourceParser("MANGAOWL_US", "MangaOwlYaoi", "en", ContentType.HENTAI)
|
||||||
internal class MangaOwlUs(context: MangaLoaderContext) :
|
internal class MangaOwlUs(context: MangaLoaderContext) :
|
||||||
MadaraParser(context, MangaParserSource.MANGAOWL_US, "mangaowlyaoi.com")
|
MadaraParser(context, MangaParserSource.MANGAOWL_US, "mangaowlyaoi.com")
|
||||||
|
|||||||
@ -1,10 +1,12 @@
|
|||||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||||
|
|
||||||
|
import org.koitharu.kotatsu.parsers.Broken
|
||||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||||
|
|
||||||
|
@Broken
|
||||||
@MangaSourceParser("MANGARUBY", "MangaRuby", "en")
|
@MangaSourceParser("MANGARUBY", "MangaRuby", "en")
|
||||||
internal class MangaRuby(context: MangaLoaderContext) :
|
internal class MangaRuby(context: MangaLoaderContext) :
|
||||||
MadaraParser(context, MangaParserSource.MANGARUBY, "mangaruby.com", 10)
|
MadaraParser(context, MangaParserSource.MANGARUBY, "mangaruby.com", 10)
|
||||||
|
|||||||
@ -1,11 +1,13 @@
|
|||||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||||
|
|
||||||
|
import org.koitharu.kotatsu.parsers.Broken
|
||||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||||
import org.koitharu.kotatsu.parsers.model.ContentType
|
import org.koitharu.kotatsu.parsers.model.ContentType
|
||||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||||
|
|
||||||
|
@Broken
|
||||||
@MangaSourceParser("MANGARYU", "MangaRyu", "en", ContentType.HENTAI)
|
@MangaSourceParser("MANGARYU", "MangaRyu", "en", ContentType.HENTAI)
|
||||||
internal class MangaRyu(context: MangaLoaderContext) :
|
internal class MangaRyu(context: MangaLoaderContext) :
|
||||||
MadaraParser(context, MangaParserSource.MANGARYU, "mangaryu.com", 10)
|
MadaraParser(context, MangaParserSource.MANGARYU, "mangaryu.com", 10)
|
||||||
|
|||||||
@ -1,14 +1,113 @@
|
|||||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
package org.koitharu.kotatsu.parsers.site.madara.en
|
||||||
|
|
||||||
|
import kotlinx.coroutines.async
|
||||||
|
import kotlinx.coroutines.coroutineScope
|
||||||
|
import org.jsoup.nodes.Document
|
||||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||||
import org.koitharu.kotatsu.parsers.model.ContentType
|
import org.koitharu.kotatsu.parsers.model.ContentType
|
||||||
|
import org.koitharu.kotatsu.parsers.model.Manga
|
||||||
|
import org.koitharu.kotatsu.parsers.model.MangaChapter
|
||||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||||
|
import org.koitharu.kotatsu.parsers.model.MangaState
|
||||||
|
import org.koitharu.kotatsu.parsers.model.MangaTag
|
||||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||||
|
import org.koitharu.kotatsu.parsers.util.*
|
||||||
|
import java.text.SimpleDateFormat
|
||||||
|
|
||||||
@MangaSourceParser("MANHWAHENTAI", "ManhwaHentai", "en", ContentType.HENTAI)
|
@MangaSourceParser("MANHWAHENTAI", "ManhwaHentai", "en", ContentType.HENTAI)
|
||||||
internal class ManhwaHentai(context: MangaLoaderContext) :
|
internal class ManhwaHentai(context: MangaLoaderContext) :
|
||||||
MadaraParser(context, MangaParserSource.MANHWAHENTAI, "manhwahentai.me", 20) {
|
MadaraParser(context, MangaParserSource.MANHWAHENTAI, "manhwahentai.me", 20) {
|
||||||
override val tagPrefix = "webtoon-genre/"
|
override val tagPrefix = "webtoon-genre/"
|
||||||
override val listUrl = "webtoon/"
|
override val listUrl = "webtoon/"
|
||||||
|
override val withoutAjax = true
|
||||||
|
override val postReq = true
|
||||||
|
|
||||||
|
override suspend fun getDetails(manga: Manga): Manga = coroutineScope {
|
||||||
|
val fullUrl = manga.url.toAbsoluteUrl(domain)
|
||||||
|
val doc = webClient.httpGet(fullUrl).parseHtml()
|
||||||
|
val body = doc.body()
|
||||||
|
val chaptersDeferred = async { loadChapters(manga.url, doc) }
|
||||||
|
val desc = body.select(selectDesc).html()
|
||||||
|
val stateDiv = if (selectState.isEmpty()) {
|
||||||
|
(body.selectFirst("div.post-content_item:contains(Status)")
|
||||||
|
?: body.selectFirst("div.post-content_item:contains(Statut)")
|
||||||
|
?: body.selectFirst("div.post-content_item:contains(État)")
|
||||||
|
?: body.selectFirst("div.post-content_item:contains(حالة العمل)")
|
||||||
|
?: body.selectFirst("div.post-content_item:contains(Estado)")
|
||||||
|
?: body.selectFirst("div.post-content_item:contains(สถานะ)")
|
||||||
|
?: body.selectFirst("div.post-content_item:contains(Stato)")
|
||||||
|
?: body.selectFirst("div.post-content_item:contains(Durum)")
|
||||||
|
?: body.selectFirst("div.post-content_item:contains(Statüsü)")
|
||||||
|
?: body.selectFirst("div.post-content_item:contains(Статус)")
|
||||||
|
?: body.selectFirst("div.post-content_item:contains(状态)")
|
||||||
|
?: body.selectFirst("div.post-content_item:contains(الحالة)"))?.selectLast("div.summary-content")
|
||||||
|
} else {
|
||||||
|
body.selectFirst(selectState)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
val state = stateDiv?.let {
|
||||||
|
when (it.text()) {
|
||||||
|
in ongoing -> MangaState.ONGOING
|
||||||
|
in finished -> MangaState.FINISHED
|
||||||
|
in abandoned -> MangaState.ABANDONED
|
||||||
|
in paused -> MangaState.PAUSED
|
||||||
|
else -> null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val alt =
|
||||||
|
doc.body().select(".post-content_item:contains(Alt) .summary-content").firstOrNull()?.tableValue()?.text()
|
||||||
|
?.trim() ?: doc.body().select(".post-content_item:contains(Nomes alternativos: ) .summary-content")
|
||||||
|
.firstOrNull()?.tableValue()?.text()?.trim()
|
||||||
|
|
||||||
|
manga.copy(
|
||||||
|
tags = doc.body().select(selectGenre).mapNotNullToSet { a ->
|
||||||
|
MangaTag(
|
||||||
|
key = a.attr("href").removeSuffix("/").substringAfterLast('/'),
|
||||||
|
title = a.text().toTitleCase(),
|
||||||
|
source = source,
|
||||||
|
)
|
||||||
|
},
|
||||||
|
description = desc,
|
||||||
|
altTitle = alt,
|
||||||
|
state = state,
|
||||||
|
chapters = chaptersDeferred.await(),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
override suspend fun loadChapters(mangaUrl: String, document: Document): List<MangaChapter> {
|
||||||
|
val doc = if (postReq) {
|
||||||
|
val mangaId = document.select("div#manga-chapters-holder").attr("data-id")
|
||||||
|
val url = "https://$domain/wp-admin/admin-ajax.php"
|
||||||
|
val postData = "action=ajax_chap&post_id=$mangaId"
|
||||||
|
webClient.httpPost(url, postData).parseHtml()
|
||||||
|
} else {
|
||||||
|
val url = mangaUrl.toAbsoluteUrl(domain).removeSuffix('/') + "/ajax/chapters/"
|
||||||
|
webClient.httpPost(url, emptyMap()).parseHtml()
|
||||||
|
}
|
||||||
|
val dateFormat = SimpleDateFormat(datePattern, sourceLocale)
|
||||||
|
return doc.select(selectChapter).mapChapters(reversed = true) { i, li ->
|
||||||
|
val a = li.selectFirst("a")
|
||||||
|
val href = a?.attrAsRelativeUrlOrNull("href") ?: li.parseFailed("Link is missing")
|
||||||
|
val link = href + stylePage
|
||||||
|
val dateText = li.selectFirst("a.c-new-tag")?.attr("title") ?: li.selectFirst(selectDate)?.text()
|
||||||
|
val name = a.selectFirst("p")?.text() ?: a.ownText()
|
||||||
|
MangaChapter(
|
||||||
|
id = generateUid(href),
|
||||||
|
url = link,
|
||||||
|
name = name,
|
||||||
|
number = i + 1f,
|
||||||
|
volume = 0,
|
||||||
|
branch = null,
|
||||||
|
uploadDate = parseChapterDate(
|
||||||
|
dateFormat,
|
||||||
|
dateText,
|
||||||
|
),
|
||||||
|
scanlator = null,
|
||||||
|
source = source,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,10 +1,12 @@
|
|||||||
package org.koitharu.kotatsu.parsers.site.madara.pt
|
package org.koitharu.kotatsu.parsers.site.madara.pt
|
||||||
|
|
||||||
|
import org.koitharu.kotatsu.parsers.Broken
|
||||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||||
|
|
||||||
|
@Broken
|
||||||
@MangaSourceParser("FOXWHITE", "FoxWhite", "pt")
|
@MangaSourceParser("FOXWHITE", "FoxWhite", "pt")
|
||||||
internal class FoxWhite(context: MangaLoaderContext) :
|
internal class FoxWhite(context: MangaLoaderContext) :
|
||||||
MadaraParser(context, MangaParserSource.FOXWHITE, "foxwhite.com.br")
|
MadaraParser(context, MangaParserSource.FOXWHITE, "foxwhite.com.br")
|
||||||
|
|||||||
@ -1,11 +1,13 @@
|
|||||||
package org.koitharu.kotatsu.parsers.site.madara.pt
|
package org.koitharu.kotatsu.parsers.site.madara.pt
|
||||||
|
|
||||||
|
import org.koitharu.kotatsu.parsers.Broken
|
||||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||||
import org.koitharu.kotatsu.parsers.model.ContentType
|
import org.koitharu.kotatsu.parsers.model.ContentType
|
||||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
||||||
|
|
||||||
|
@Broken
|
||||||
@MangaSourceParser("PSUNICORN", "PsUnicorn", "pt", ContentType.HENTAI)
|
@MangaSourceParser("PSUNICORN", "PsUnicorn", "pt", ContentType.HENTAI)
|
||||||
internal class Psunicorn(context: MangaLoaderContext) :
|
internal class Psunicorn(context: MangaLoaderContext) :
|
||||||
MadaraParser(context, MangaParserSource.PSUNICORN, "psunicorn.com")
|
MadaraParser(context, MangaParserSource.PSUNICORN, "psunicorn.com")
|
||||||
|
|||||||
@ -1,10 +0,0 @@
|
|||||||
package org.koitharu.kotatsu.parsers.site.mangareader.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.mangareader.MangaReaderParser
|
|
||||||
|
|
||||||
@MangaSourceParser("CROWSCANS", "CrowScans", "ar")
|
|
||||||
internal class CrowScans(context: MangaLoaderContext) :
|
|
||||||
MangaReaderParser(context, MangaParserSource.CROWSCANS, "crowscans.com", pageSize = 30, searchPageSize = 10)
|
|
||||||
@ -1,10 +1,12 @@
|
|||||||
package org.koitharu.kotatsu.parsers.site.mangareader.en
|
package org.koitharu.kotatsu.parsers.site.mangareader.en
|
||||||
|
|
||||||
|
import org.koitharu.kotatsu.parsers.Broken
|
||||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||||
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
|
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
|
||||||
|
|
||||||
|
@Broken
|
||||||
@MangaSourceParser("MANHWA_FREAK", "ManhwaFreak", "en")
|
@MangaSourceParser("MANHWA_FREAK", "ManhwaFreak", "en")
|
||||||
internal class ManhwaFreak(context: MangaLoaderContext) :
|
internal class ManhwaFreak(context: MangaLoaderContext) :
|
||||||
MangaReaderParser(context, MangaParserSource.MANHWA_FREAK, "manhwafreak.site", pageSize = 20, searchPageSize = 10)
|
MangaReaderParser(context, MangaParserSource.MANHWA_FREAK, "manhwafreak.site", pageSize = 20, searchPageSize = 10)
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue