Minor daily update
parent
87032a6835
commit
23cc86e429
@ -1,13 +0,0 @@
|
|||||||
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.MangaSource
|
|
||||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
|
||||||
|
|
||||||
@MangaSourceParser("MANGALEK_ORG", "MangaLek.org", "ar")
|
|
||||||
internal class MangaLekOrg(context: MangaLoaderContext) :
|
|
||||||
MadaraParser(context, MangaSource.MANGALEK_ORG, "ww.mangalek.org", pageSize = 10) {
|
|
||||||
override val listUrl = "comics/"
|
|
||||||
override val datePattern = "dd-MM-yyyy"
|
|
||||||
}
|
|
||||||
@ -1,16 +0,0 @@
|
|||||||
package org.koitharu.kotatsu.parsers.site.madara.en
|
|
||||||
|
|
||||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
|
||||||
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
|
||||||
import org.koitharu.kotatsu.parsers.model.ContentType
|
|
||||||
import org.koitharu.kotatsu.parsers.model.MangaSource
|
|
||||||
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
|
|
||||||
|
|
||||||
@MangaSourceParser("HMANHWA", "H Manhwa", "en", ContentType.HENTAI)
|
|
||||||
internal class HManhwa(context: MangaLoaderContext) :
|
|
||||||
MadaraParser(context, MangaSource.HMANHWA, "hmanhwa.com") {
|
|
||||||
override val tagPrefix = "manhwa-genre/"
|
|
||||||
override val listUrl = "manhwa/"
|
|
||||||
override val datePattern = "dd MMM"
|
|
||||||
override val postReq = true
|
|
||||||
}
|
|
||||||
@ -1,12 +0,0 @@
|
|||||||
package org.koitharu.kotatsu.parsers.site.madara.pt
|
|
||||||
|
|
||||||
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("PEACHSCAN", "PeachScan", "pt")
|
|
||||||
internal class PeachScan(context: MangaLoaderContext) :
|
|
||||||
MadaraParser(context, MangaSource.PEACHSCAN, "www.peachscan.com", 10) {
|
|
||||||
override val datePattern: String = "dd 'de' MMMMM 'de' yyyy"
|
|
||||||
}
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
package org.koitharu.kotatsu.parsers.site.madara.tr
|
|
||||||
|
|
||||||
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("MANGAKEYFI", "MangaKeyfi", "tr")
|
|
||||||
internal class Mangakeyfi(context: MangaLoaderContext) :
|
|
||||||
MadaraParser(context, MangaSource.MANGAKEYFI, "mangakeyfi.net", 20) {
|
|
||||||
override val tagPrefix = "mangalar-genre/"
|
|
||||||
override val datePattern = "d MMMM yyyy"
|
|
||||||
}
|
|
||||||
@ -1,12 +0,0 @@
|
|||||||
package org.koitharu.kotatsu.parsers.site.madara.tr
|
|
||||||
|
|
||||||
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("MONOMANGA", "MonoManga", "tr")
|
|
||||||
internal class MonoManga(context: MangaLoaderContext) :
|
|
||||||
MadaraParser(context, MangaSource.MONOMANGA, "monomanga.com") {
|
|
||||||
override val datePattern = "d MMM yyyy"
|
|
||||||
}
|
|
||||||
@ -0,0 +1,86 @@
|
|||||||
|
package org.koitharu.kotatsu.parsers.site.mangabox.en
|
||||||
|
|
||||||
|
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||||
|
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||||
|
import org.koitharu.kotatsu.parsers.config.ConfigKey
|
||||||
|
import org.koitharu.kotatsu.parsers.model.*
|
||||||
|
import org.koitharu.kotatsu.parsers.site.mangabox.MangaboxParser
|
||||||
|
import org.koitharu.kotatsu.parsers.util.*
|
||||||
|
|
||||||
|
@MangaSourceParser("MANGAKAKALOTTV", "Mangakakalot.tv", "en")
|
||||||
|
internal class MangakakalotTv(context: MangaLoaderContext) :
|
||||||
|
MangaboxParser(context, MangaSource.MANGAKAKALOTTV) {
|
||||||
|
|
||||||
|
override val configKeyDomain = ConfigKey.Domain("ww6.mangakakalot.tv")
|
||||||
|
override val searchUrl = "/search/"
|
||||||
|
override val listUrl = "/manga_list"
|
||||||
|
|
||||||
|
override suspend fun getListPage(
|
||||||
|
page: Int,
|
||||||
|
query: String?,
|
||||||
|
tags: Set<MangaTag>?,
|
||||||
|
sortOrder: SortOrder,
|
||||||
|
): List<Manga> {
|
||||||
|
val tag = tags.oneOrThrowIfMany()
|
||||||
|
val url = buildString {
|
||||||
|
append("https://")
|
||||||
|
append(domain)
|
||||||
|
if (!query.isNullOrEmpty()) {
|
||||||
|
append(searchUrl)
|
||||||
|
append(query.urlEncoded())
|
||||||
|
append("?page=")
|
||||||
|
append(page.toString())
|
||||||
|
} else {
|
||||||
|
append("$listUrl/")
|
||||||
|
append("?type=")
|
||||||
|
when (sortOrder) {
|
||||||
|
SortOrder.POPULARITY -> append("topview")
|
||||||
|
SortOrder.UPDATED -> append("latest")
|
||||||
|
SortOrder.NEWEST -> append("newest")
|
||||||
|
else -> append("latest")
|
||||||
|
}
|
||||||
|
if (!tags.isNullOrEmpty()) {
|
||||||
|
append("&category=")
|
||||||
|
append(tag?.key.orEmpty())
|
||||||
|
}
|
||||||
|
if (page > 1) {
|
||||||
|
append("&page=")
|
||||||
|
append(page.toString())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
val doc = webClient.httpGet(url).parseHtml()
|
||||||
|
return doc.select("div.list-truyen-item-wrap").ifEmpty {
|
||||||
|
doc.select("div.story_item")
|
||||||
|
}.map { div ->
|
||||||
|
val href = div.selectFirstOrThrow("a").attrAsRelativeUrl("href")
|
||||||
|
Manga(
|
||||||
|
id = generateUid(href),
|
||||||
|
url = href,
|
||||||
|
publicUrl = href.toAbsoluteUrl(div.host ?: domain),
|
||||||
|
coverUrl = div.selectFirst("img")?.src().orEmpty(),
|
||||||
|
title = div.selectFirstOrThrow("h3").text().orEmpty(),
|
||||||
|
altTitle = null,
|
||||||
|
rating = RATING_UNKNOWN,
|
||||||
|
tags = emptySet(),
|
||||||
|
author = null,
|
||||||
|
state = null,
|
||||||
|
source = source,
|
||||||
|
isNsfw = isNsfwSource,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override val selectTagMap = "ul.tag li a"
|
||||||
|
|
||||||
|
override suspend fun getTags(): Set<MangaTag> {
|
||||||
|
val doc = webClient.httpGet("https://$domain/$listUrl").parseHtml()
|
||||||
|
return doc.select(selectTagMap).mapNotNullToSet { a ->
|
||||||
|
MangaTag(
|
||||||
|
key = a.attr("href").substringAfterLast("category=").substringBefore("&"),
|
||||||
|
title = a.attr("title"),
|
||||||
|
source = source,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,14 +0,0 @@
|
|||||||
package org.koitharu.kotatsu.parsers.site.mangareader.id
|
|
||||||
|
|
||||||
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.mangareader.MangaReaderParser
|
|
||||||
import java.util.*
|
|
||||||
|
|
||||||
@MangaSourceParser("MANGAINDO", "MangaIndo", "id")
|
|
||||||
internal class Mangaindo(context: MangaLoaderContext) :
|
|
||||||
MangaReaderParser(context, MangaSource.MANGAINDO, "mangaindo.me", pageSize = 26, searchPageSize = 26) {
|
|
||||||
override val datePattern = "MMM d, yyyy"
|
|
||||||
override val sourceLocale: Locale = Locale.ENGLISH
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue