Add 2 source more typo and add val on gettags on madara for site not let list /manga/

pull/223/head
devi 3 years ago
parent 2bf29da2ea
commit eeccda24b0

@ -93,7 +93,8 @@ internal abstract class FmreaderParser(
id = generateUid(href), id = generateUid(href),
url = href, url = href,
publicUrl = href.toAbsoluteUrl(div.host ?: domain), publicUrl = href.toAbsoluteUrl(div.host ?: domain),
coverUrl = div.selectFirstOrThrow("div.img-in-ratio").attr("style").substringAfter("('").substringBeforeLast("')"), coverUrl = div.selectFirstOrThrow("div.img-in-ratio").attr("style").substringAfter("('")
.substringBeforeLast("')"),
title = div.selectFirstOrThrow("div.series-title").text().orEmpty(), title = div.selectFirstOrThrow("div.series-title").text().orEmpty(),
altTitle = null, altTitle = null,
rating = RATING_UNKNOWN, rating = RATING_UNKNOWN,

@ -124,7 +124,9 @@ internal abstract class MadaraParser(
// Change these values only if the site does not support manga listings via ajax // Change these values only if the site does not support manga listings via ajax
protected open val withoutAjax = false protected open val withoutAjax = false
protected open val listeurl = "manga/"
// can be changed to retrieve tags see getTags
protected open val listUrl = "manga/"
override suspend fun getListPage( override suspend fun getListPage(
page: Int, page: Int,
@ -160,7 +162,7 @@ internal abstract class MadaraParser(
else -> { else -> {
append("/$listeurl") append("/$listUrl")
append("/page/") append("/page/")
append(pages.toString()) append(pages.toString())
append("?") append("?")
@ -233,7 +235,7 @@ internal abstract class MadaraParser(
} }
override suspend fun getTags(): Set<MangaTag> { override suspend fun getTags(): Set<MangaTag> {
val doc = webClient.httpGet("https://$domain/manga/").parseHtml() val doc = webClient.httpGet("https://$domain/$listUrl").parseHtml()
val body = doc.body() val body = doc.body()
val root1 = body.selectFirst("header")?.selectFirst("ul.second-menu") val root1 = body.selectFirst("header")?.selectFirst("ul.second-menu")
val root2 = body.selectFirst("div.genres_wrap")?.selectFirst("ul.list-unstyled") val root2 = body.selectFirst("div.genres_wrap")?.selectFirst("ul.list-unstyled")
@ -431,31 +433,31 @@ internal abstract class MadaraParser(
val d = date?.lowercase() ?: return 0 val d = date?.lowercase() ?: return 0
return when { return when {
d.endsWith(" ago") || d.endsWith(" atrás") || // Handle translated 'ago' in Portuguese. d.endsWith(" ago") || d.endsWith(" atrás") || // Handle translated 'ago' in Portuguese.
d.startsWith("") || // other translated 'ago' in Portuguese. d.startsWith("") || // other translated 'ago' in Portuguese.
d.endsWith(" hace") || // other translated 'ago' in Spanish d.endsWith(" hace") || // other translated 'ago' in Spanish
d.endsWith(" назад") || // other translated 'ago' in Russian d.endsWith(" назад") || // other translated 'ago' in Russian
d.endsWith(" önce") || // Handle translated 'ago' in Turkish. d.endsWith(" önce") || // Handle translated 'ago' in Turkish.
d.endsWith(" trước") || // Handle translated 'ago' in Viêt Nam. d.endsWith(" trước") || // Handle translated 'ago' in Viêt Nam.
d.startsWith("il y a") || // Handle translated 'ago' in French. d.startsWith("il y a") || // Handle translated 'ago' in French.
//If there is no ago but just a motion of time //If there is no ago but just a motion of time
// short Hours // short Hours
d.endsWith(" h") || d.endsWith(" h") ||
// short Day // short Day
d.endsWith(" d") || d.endsWith(" d") ||
// Day in Portuguese // Day in Portuguese
d.endsWith(" días") || d.endsWith(" día") || d.endsWith(" días") || d.endsWith(" día") ||
// Day in French // Day in French
d.endsWith(" jour") || d.endsWith(" jours") || d.endsWith(" jour") || d.endsWith(" jours") ||
// Hours in Portuguese // Hours in Portuguese
d.endsWith(" horas") || d.endsWith(" hora") || d.endsWith(" horas") || d.endsWith(" hora") ||
// Hours in french // Hours in french
d.endsWith(" heure") || d.endsWith(" heures") || d.endsWith(" heure") || d.endsWith(" heures") ||
// Minutes in English // Minutes in English
d.endsWith(" mins") || d.endsWith(" mins") ||
// Minutes in Portuguese // Minutes in Portuguese
d.endsWith(" minutos") || d.endsWith(" minuto") || d.endsWith(" minutos") || d.endsWith(" minuto") ||
//Minutes in French //Minutes in French
d.endsWith(" minute") || d.endsWith(" minutes") -> parseRelativeDate(date) d.endsWith(" minute") || d.endsWith(" minutes") -> parseRelativeDate(date)
// Handle 'yesterday' and 'today', using midnight // Handle 'yesterday' and 'today', using midnight
d.startsWith("year") -> Calendar.getInstance().apply { d.startsWith("year") -> Calendar.getInstance().apply {
@ -552,10 +554,10 @@ internal abstract class MadaraParser(
private fun createRequestTemplate() = private fun createRequestTemplate() =
("action=madara_load_more&page=1&template=madara-core%2Fcontent%2Fcontent-search&vars%5Bs%5D=&vars%5B" + ("action=madara_load_more&page=1&template=madara-core%2Fcontent%2Fcontent-search&vars%5Bs%5D=&vars%5B" +
"orderby%5D=meta_value_num&vars%5Bpaged%5D=1&vars%5Btemplate%5D=search&vars%5Bmeta_query" + "orderby%5D=meta_value_num&vars%5Bpaged%5D=1&vars%5Btemplate%5D=search&vars%5Bmeta_query" +
"%5D%5B0%5D%5Brelation%5D=AND&vars%5Bmeta_query%5D%5Brelation%5D=OR&vars%5Bpost_type" + "%5D%5B0%5D%5Brelation%5D=AND&vars%5Bmeta_query%5D%5Brelation%5D=OR&vars%5Bpost_type" +
"%5D=wp-manga&vars%5Bpost_status%5D=publish&vars%5Bmeta_key%5D=_latest_update&vars%5Border" + "%5D=wp-manga&vars%5Bpost_status%5D=publish&vars%5Bmeta_key%5D=_latest_update&vars%5Border" +
"%5D=desc&vars%5Bmanga_archives_item_layout%5D=default").split( "%5D=desc&vars%5Bmanga_archives_item_layout%5D=default").split(
'&', '&',
).map { ).map {
val pos = it.indexOf('=') val pos = it.indexOf('=')

@ -12,7 +12,7 @@ internal class IsekaiScanEuParser(context: MangaLoaderContext) :
override val datePattern = "MM/dd/yyyy" override val datePattern = "MM/dd/yyyy"
override val withoutAjax = true override val withoutAjax = true
override val listeurl = "mangax/" override val listUrl = "mangax/"
override suspend fun getListPage( override suspend fun getListPage(
page: Int, page: Int,
@ -46,7 +46,7 @@ internal class IsekaiScanEuParser(context: MangaLoaderContext) :
else -> { else -> {
append("/$listeurl") append("/$listUrl")
append("/page/") append("/page/")
append(pages.toString()) append(pages.toString())
append("?") append("?")

@ -11,5 +11,5 @@ internal class Manga247(context: MangaLoaderContext) : MadaraParser(context, Man
override val tagPrefix = "manhwa-genre/" override val tagPrefix = "manhwa-genre/"
override val datePattern = "MMMM dd, yyyy" override val datePattern = "MMMM dd, yyyy"
override val withoutAjax = true override val withoutAjax = true
override val listeurl = "manhwa/" override val listUrl = "manhwa/"
} }

@ -52,7 +52,7 @@ internal class MangaDass(context: MangaLoaderContext) :
else -> { else -> {
append("/$listeurl") append("/$listUrl")
append("/") append("/")
append(pages.toString()) append(pages.toString())
append("?") append("?")

@ -52,7 +52,7 @@ internal class MangaDna(context: MangaLoaderContext) :
else -> { else -> {
append("/$listeurl") append("/$listUrl")
append("/page/") append("/page/")
append(pages.toString()) append(pages.toString())
append("?") append("?")

@ -10,7 +10,7 @@ import org.koitharu.kotatsu.parsers.util.*
internal class Manhwaz(context: MangaLoaderContext) : internal class Manhwaz(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANHWAZ, "manhwaz.com", 40) { MadaraParser(context, MangaSource.MANHWAZ, "manhwaz.com", 40) {
override val listeurl = "genre/manhwa" override val listUrl = "genre/manhwa"
override val tagPrefix = "genre/" override val tagPrefix = "genre/"
override val withoutAjax = true override val withoutAjax = true
override val selectTestAsync = "div.list-chapter" override val selectTestAsync = "div.list-chapter"
@ -48,7 +48,7 @@ internal class Manhwaz(context: MangaLoaderContext) :
else -> { else -> {
append("/$listeurl") append("/$listUrl")
append("?page=") append("?page=")
append(pages.toString()) append(pages.toString())
append("&") append("&")

@ -0,0 +1,15 @@
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.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("LKSCANLATION", "LkScanlation", "es")
internal class LkScanlation(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.LKSCANLATION, "lkscanlation.com") {
override val tagPrefix = "manhwa-genre/"
override val listUrl = "manhwa/"
}

@ -46,7 +46,7 @@ internal class MonarcaManga(context: MangaLoaderContext) :
else -> { else -> {
append("/$listeurl") append("/$listUrl")
append("/page/") append("/page/")
append(pages.toString()) append(pages.toString())
append("?") append("?")

@ -16,7 +16,7 @@ internal class ManhwaPlus(context: MangaLoaderContext) :
override val datePattern = "MMMM d, yyyy" override val datePattern = "MMMM d, yyyy"
override val sourceLocale: Locale = Locale.ENGLISH override val sourceLocale: Locale = Locale.ENGLISH
override val withoutAjax = true override val withoutAjax = true
override val listeurl = "series/" override val listUrl = "series/"
override suspend fun getListPage( override suspend fun getListPage(
page: Int, page: Int,
@ -51,7 +51,7 @@ internal class ManhwaPlus(context: MangaLoaderContext) :
else -> { else -> {
append("/$listeurl") append("/$listUrl")
append("/page/") append("/page/")
append(pages.toString()) append(pages.toString())
append("?") append("?")

@ -10,6 +10,6 @@ internal class AstrumScans(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.ASTRUMSCANS, "astrumscans.xyz", 20) { MadaraParser(context, MangaSource.ASTRUMSCANS, "astrumscans.xyz", 20) {
override val withoutAjax = true override val withoutAjax = true
override val listeurl = "series/" override val listUrl = "series/"
override val datePattern = "dd/MM/yyyy" override val datePattern = "dd/MM/yyyy"
} }

@ -31,7 +31,7 @@ internal class Saytruyenhay(context: MangaLoaderContext) :
override val tagPrefix = "genre/" override val tagPrefix = "genre/"
override val withoutAjax = true override val withoutAjax = true
override val listeurl = "public/genre/manga/" override val listUrl = "public/genre/manga/"
override suspend fun getListPage( override suspend fun getListPage(
page: Int, page: Int,
@ -66,7 +66,7 @@ internal class Saytruyenhay(context: MangaLoaderContext) :
else -> { else -> {
append("/$listeurl") append("/$listUrl")
append("?page=") append("?page=")
append(pages.toString()) append(pages.toString())
} }

@ -0,0 +1,10 @@
package org.koitharu.kotatsu.parsers.site.mangareader.it
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
@MangaSourceParser("WITCOMICS", "Wit Comics", "it")
internal class WitComics(context: MangaLoaderContext) :
MangaReaderParser(context, MangaSource.WITCOMICS, "www.witcomics.net", pageSize = 5, searchPageSize = 10)
Loading…
Cancel
Save