Change chapter name to title

master
Koitharu 1 year ago
parent f26fecb714
commit 531145c7f9
Signed by: Koitharu
GPG Key ID: 676DEE768C17A9D7

@ -1,6 +1,7 @@
package org.koitharu.kotatsu.parsers.model package org.koitharu.kotatsu.parsers.model
import org.koitharu.kotatsu.parsers.util.formatSimple import org.koitharu.kotatsu.parsers.util.formatSimple
import org.koitharu.kotatsu.parsers.util.ifNullOrEmpty
public data class MangaChapter( public data class MangaChapter(
/** /**
@ -8,9 +9,10 @@ public data class MangaChapter(
*/ */
@JvmField public val id: Long, @JvmField public val id: Long,
/** /**
* User-readable name of chapter * User-readable name of chapter if provided by parser or null instead
* Do not pass manga title or chapter number here
*/ */
@JvmField public val name: String, @JvmField public val title: String?,
/** /**
* Chapter number starting from 1, 0 if unknown * Chapter number starting from 1, 0 if unknown
*/ */
@ -40,6 +42,15 @@ public data class MangaChapter(
@JvmField public val source: MangaSource, @JvmField public val source: MangaSource,
) { ) {
@Deprecated("Use title instead", ReplaceWith("title"))
val name: String
get() = title.ifNullOrEmpty {
buildString {
if (volume > 0) append("Vol ").append(volume).append(' ')
if (number > 0) append("Chapter ").append(number) else append("Unnamed")
}
}
public fun numberString(): String? = if (number > 0f) { public fun numberString(): String? = if (number > 0f) {
number.formatSimple() number.formatSimple()
} else { } else {

@ -365,7 +365,7 @@ internal class BatoToParser(context: MangaLoaderContext) : LegacyPagedMangaParse
val href = a.attrAsRelativeUrl("href") val href = a.attrAsRelativeUrl("href")
return MangaChapter( return MangaChapter(
id = generateUid(href), id = generateUid(href),
name = a.text(), title = a.textOrNull(),
number = index + 1f, number = index + 1f,
volume = 0, volume = 0,
url = href, url = href,

@ -226,13 +226,7 @@ internal class ComickFunParser(context: MangaLoaderContext) :
} }
MangaChapter( MangaChapter(
id = generateUid(jo.getLong("id")), id = generateUid(jo.getLong("id")),
name = buildString { title = jo.getStringOrNull("title"),
if (vol > 0) {
append("Vol ").append(vol).append(' ')
}
append("Chap ").append(chap.formatSimple())
jo.getStringOrNull("title")?.let { append(": ").append(it) }
},
number = chap, number = chap,
volume = vol, volume = vol,
url = jo.getString("hid"), url = jo.getString("hid"),

@ -235,7 +235,7 @@ internal class ExHentaiParser(
val url = "${manga.url}?p=${i - 1}" val url = "${manga.url}?p=${i - 1}"
chapters += MangaChapter( chapters += MangaChapter(
id = generateUid(url), id = generateUid(url),
name = "${manga.title} #$i", title = null,
number = i.toFloat(), number = i.toFloat(),
volume = 0, volume = 0,
url = url, url = url,

@ -583,7 +583,7 @@ internal class HitomiLaParser(context: MangaLoaderContext) : LegacyMangaParser(c
MangaChapter( MangaChapter(
id = generateUid(manga.url), id = generateUid(manga.url),
url = manga.url, url = manga.url,
name = json.getString("title"), title = json.getStringOrNull("title"),
scanlator = json.getString("type").toTitleCase(), scanlator = json.getString("type").toTitleCase(),
number = 1f, number = 1f,
volume = 0, volume = 0,

@ -175,7 +175,7 @@ internal class ImHentai(context: MangaLoaderContext) :
chapters = listOf( chapters = listOf(
MangaChapter( MangaChapter(
id = manga.id, id = manga.id,
name = manga.title, title = null,
number = 1f, number = 1f,
volume = 0, volume = 0,
url = manga.url, url = manga.url,

@ -102,7 +102,7 @@ internal abstract class LineWebtoonsParser(
return episodes.mapChapters { i, jo -> return episodes.mapChapters { i, jo ->
MangaChapter( MangaChapter(
id = generateUid("$titleNo-$i"), id = generateUid("$titleNo-$i"),
name = jo.getString("episodeTitle"), title = jo.getStringOrNull("episodeTitle"),
number = jo.getInt("episodeSeq").toFloat(), number = jo.getInt("episodeSeq").toFloat(),
volume = 0, volume = 0,
url = "$titleNo-${jo.get("episodeNo")}", url = "$titleNo-${jo.get("episodeNo")}",

@ -484,10 +484,7 @@ internal class MangaDexParser(context: MangaLoaderContext) : AbstractMangaParser
} }
val chapter = MangaChapter( val chapter = MangaChapter(
id = generateUid(id), id = generateUid(id),
name = attrs.getStringOrNull("title") ?: buildString { title = attrs.getStringOrNull("title"),
if (volume > 0) append("Vol. ").append(volume).append(' ')
append("Chapter ").append(number.formatSimple())
},
number = number, number = number,
volume = volume, volume = volume,
url = id, url = id,

@ -280,7 +280,7 @@ internal abstract class MangaFireParser(
return chapterElements.mapChapters(reversed = true) { _, it -> return chapterElements.mapChapters(reversed = true) { _, it ->
MangaChapter( MangaChapter(
id = generateUid(it.attr("href")), id = generateUid(it.attr("href")),
name = it.attr("title").ifBlank { title = it.attr("title").ifBlank {
"${branch.type.toTitleCase()} ${it.attr("data-number")}" "${branch.type.toTitleCase()} ${it.attr("data-number")}"
}, },
number = it.attr("data-number").toFloat(), number = it.attr("data-number").toFloat(),

@ -213,7 +213,7 @@ internal class MangaPark(context: MangaLoaderContext) :
val dateText = div.selectFirst("span[q:key=Ee_0]")?.text() val dateText = div.selectFirst("span[q:key=Ee_0]")?.text()
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = a.text(), title = a.textOrNull(),
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = href, url = href,

@ -184,7 +184,7 @@ internal abstract class MangaPlusParser(
MangaChapter( MangaChapter(
id = generateUid(chapterId), id = generateUid(chapterId),
url = chapterId, url = chapterId,
name = subtitle, title = subtitle,
number = chapter.getString("name") number = chapter.getString("name")
.substringAfter("#") .substringAfter("#")
.toFloatOrNull() ?: -1f, .toFloatOrNull() ?: -1f,

@ -222,7 +222,7 @@ internal class MangaReaderToParser(context: MangaLoaderContext) :
chapters.add( chapters.add(
MangaChapter( MangaChapter(
id = generateUid(a.attrAsRelativeUrl("href")), id = generateUid(a.attrAsRelativeUrl("href")),
name = a.attr("title"), title = a.attrOrNull("title"),
number = li.attr("data-number").toFloat(), number = li.attr("data-number").toFloat(),
volume = 0, volume = 0,
url = a.attrAsRelativeUrl("href"), url = a.attrAsRelativeUrl("href"),
@ -242,7 +242,7 @@ internal class MangaReaderToParser(context: MangaLoaderContext) :
chapters.add( chapters.add(
MangaChapter( MangaChapter(
id = generateUid(url), id = generateUid(url),
name = name, title = name,
number = numRegex.find(name)?.groupValues?.getOrNull(1)?.toFloatOrNull() ?: 0f, number = numRegex.find(name)?.groupValues?.getOrNull(1)?.toFloatOrNull() ?: 0f,
volume = 0, volume = 0,
url = url, url = url,

@ -150,7 +150,7 @@ internal abstract class NineMangaParser(
val href = a.attrAsRelativeUrl("href").replace("%20", " ") val href = a.attrAsRelativeUrl("href").replace("%20", " ")
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = a.text(), title = a.textOrNull(),
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = href, url = href,

@ -284,7 +284,7 @@ internal class NineNineNineHentaiParser(context: MangaLoaderContext) :
chapters = listOf( chapters = listOf(
MangaChapter( MangaChapter(
id = generateUid(id), id = generateUid(id),
name = name, title = name,
number = 1f, number = 1f,
volume = 0, volume = 0,
url = id, url = id,

@ -97,7 +97,7 @@ internal abstract class WebtoonsParser(
episodes.mapChapters { i, jo -> episodes.mapChapters { i, jo ->
MangaChapter( MangaChapter(
id = generateUid("$titleNo-$i"), id = generateUid("$titleNo-$i"),
name = jo.getString("episodeTitle"), title = jo.getStringOrNull("episodeTitle"),
number = jo.getInt("episodeSeq").toFloat(), number = jo.getInt("episodeSeq").toFloat(),
volume = 0, volume = 0,
url = "$titleNo-${jo.get("episodeNo")}", url = "$titleNo-${jo.get("episodeNo")}",

@ -168,7 +168,7 @@ internal abstract class AnimeBootstrapParser(
val href = a.attr("href") val href = a.attr("href")
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = a.text(), title = a.text(),
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = href, url = href,

@ -124,7 +124,7 @@ internal class PapScan(context: MangaLoaderContext) :
val dateText = li.selectFirst("span.date-chapter-title-rtl")?.text() val dateText = li.selectFirst("span.date-chapter-title-rtl")?.text()
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = li.selectFirstOrThrow("span em").text(), title = li.selectFirstOrThrow("span em").text(),
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = href, url = href,

@ -191,7 +191,7 @@ internal class FlixScans(context: MangaLoaderContext) :
MangaChapter( MangaChapter(
id = generateUid(url), id = generateUid(url),
url = url, url = url,
name = j.getString("slug").replace('-', ' '), title = j.getString("slug").replace('-', ' '),
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
branch = null, branch = null,

@ -101,7 +101,7 @@ internal class MangaStorm(context: MangaLoaderContext) :
val url = a.attrAsRelativeUrl("href") val url = a.attrAsRelativeUrl("href")
MangaChapter( MangaChapter(
id = generateUid(url), id = generateUid(url),
name = a.text(), title = a.text(),
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = url, url = url,

@ -195,7 +195,7 @@ internal class TeamXNovel(context: MangaLoaderContext) :
val url = li.selectFirstOrThrow("a").attrAsRelativeUrl("href") val url = li.selectFirstOrThrow("a").attrAsRelativeUrl("href")
MangaChapter( MangaChapter(
id = generateUid(url), id = generateUid(url),
name = li.selectFirstOrThrow(".epl-title").text(), title = li.selectFirstOrThrow(".epl-title").text(),
number = url.substringAfterLast('/').toFloatOrNull() ?: 0f, number = url.substringAfterLast('/').toFloatOrNull() ?: 0f,
volume = 0, volume = 0,
url = url, url = url,

@ -159,7 +159,7 @@ internal class AnibelParser(context: MangaLoaderContext) : LegacyMangaParser(con
val number = jo.getInt("chapter") val number = jo.getInt("chapter")
MangaChapter( MangaChapter(
id = generateUid(jo.getString("id")), id = generateUid(jo.getString("id")),
name = "Глава $number", title = null,
number = number.toFloat(), number = number.toFloat(),
volume = 0, volume = 0,
url = "${manga.url}/read/$number", url = "${manga.url}/read/$number",

@ -142,7 +142,7 @@ internal abstract class CupFoxParser(
val href = a.attrAsRelativeUrl("href") val href = a.attrAsRelativeUrl("href")
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = a.text(), title = a.text(),
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = href, url = href,

@ -172,7 +172,7 @@ internal class AsuraScansParser(context: MangaLoaderContext) :
val cleanDate = date.replace(regexDate, "$1") val cleanDate = date.replace(regexDate, "$1")
MangaChapter( MangaChapter(
id = generateUid(url), id = generateUid(url),
name = div.selectFirst("h3")?.text() ?: "Chapter : ${i + 1f}", title = div.selectFirst("h3")?.textOrNull(),
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = url, url = url,

@ -119,7 +119,7 @@ internal class BeeToon(context: MangaLoaderContext) :
val url = a.attrAsRelativeUrl("href").toAbsoluteUrl(domain) val url = a.attrAsRelativeUrl("href").toAbsoluteUrl(domain)
MangaChapter( MangaChapter(
id = generateUid(url), id = generateUid(url),
name = a.selectFirstOrThrow(".chap").text(), title = a.selectFirstOrThrow(".chap").text(),
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = url, url = url,

@ -65,7 +65,7 @@ internal class CloneMangaParser(context: MangaLoaderContext) :
for (i in 0..numChapters) { for (i in 0..numChapters) {
val chapter = MangaChapter( val chapter = MangaChapter(
id = generateUid("$series&page=$i"), id = generateUid("$series&page=$i"),
name = "Chapter ${i + 1}", title = null,
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = "$series&page=$i", url = "$series&page=$i",

@ -136,7 +136,7 @@ internal class ComicExtra(context: MangaLoaderContext) :
} }
MangaChapter( MangaChapter(
id = generateUid(url), id = generateUid(url),
name = name, title = name,
number = elements.size - i.toFloat(), number = elements.size - i.toFloat(),
volume = 0, volume = 0,
url = url, url = url,

@ -179,7 +179,7 @@ internal class DynastyScans(context: MangaLoaderContext) :
val dateText = li.select("small").last()?.text()?.replace("released ", "")?.replace("'", "") val dateText = li.select("small").last()?.text()?.replace("released ", "")?.replace("'", "")
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = a.text(), title = a.text(),
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = href, url = href,

@ -183,7 +183,7 @@ internal class FlameComics(context: MangaLoaderContext) :
val number = jo.getFloatOrDefault("chapter", 0f) val number = jo.getFloatOrDefault("chapter", 0f)
MangaChapter( MangaChapter(
id = generateUid(longOf(seriesId.toInt(), chapterId.toInt())), id = generateUid(longOf(seriesId.toInt(), chapterId.toInt())),
name = jo.getStringOrNull("name") ?: ("Chapter " + number.formatSimple()), title = jo.getStringOrNull("name"),
number = number, number = number,
volume = 0, volume = 0,
url = seriesId.toString() + "?" + jo.getStringOrNull("token").orEmpty(), url = seriesId.toString() + "?" + jo.getStringOrNull("token").orEmpty(),

@ -175,7 +175,7 @@ internal class FlixScansOrg(context: MangaLoaderContext) :
MangaChapter( MangaChapter(
id = generateUid(url), id = generateUid(url),
url = url, url = url,
name = j.getString("slug").replace('-', ' '), title = j.getString("slug").replace('-', ' '),
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
branch = null, branch = null,

@ -144,7 +144,7 @@ internal class MangaGeko(context: MangaLoaderContext) :
.replace(".", "").replace("Sept", "Sep") .replace(".", "").replace("Sept", "Sep")
MangaChapter( MangaChapter(
id = generateUid(url), id = generateUid(url),
name = name, title = name,
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = url, url = url,

@ -134,7 +134,7 @@ internal class MangaKawaiiEn(context: MangaLoaderContext) :
val url = a.attrAsRelativeUrl("href") val url = a.attrAsRelativeUrl("href")
MangaChapter( MangaChapter(
id = generateUid(url), id = generateUid(url),
name = a.text(), title = a.text(),
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = url, url = url,

@ -176,7 +176,7 @@ internal class MangaTownParser(context: MangaLoaderContext) :
dateFormat, dateFormat,
li.selectFirst("span.time")?.text(), li.selectFirst("span.time")?.text(),
), ),
name = name.ifEmpty { "${manga.title} - ${i + 1}" }, title = name.nullIfEmpty(),
scanlator = null, scanlator = null,
branch = null, branch = null,
) )
@ -273,7 +273,7 @@ internal class MangaTownParser(context: MangaLoaderContext) :
dateFormat, dateFormat,
li.selectFirst("span.time")?.text(), li.selectFirst("span.time")?.text(),
), ),
name = name.ifEmpty { "${manga.title} - ${i + 1}" }, title = name.nullIfEmpty(),
scanlator = null, scanlator = null,
branch = null, branch = null,
) )

@ -166,7 +166,7 @@ internal class Mangaowl(context: MangaLoaderContext) :
val name = t.substringAfter("name:\"").substringBefore('"') val name = t.substringAfter("name:\"").substringBefore('"')
MangaChapter( MangaChapter(
id = generateUid(url), id = generateUid(url),
name = name, title = name,
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = url, url = url,

@ -178,7 +178,7 @@ internal class Manhwa18Com(context: MangaLoaderContext) :
val uploadDate = parseUploadDate(element.selectFirst(".chapter-time")?.text()) val uploadDate = parseUploadDate(element.selectFirst(".chapter-time")?.text())
MangaChapter( MangaChapter(
id = generateUid(chapterUrl), id = generateUid(chapterUrl),
name = element.selectFirst(".chapter-name")?.text().orEmpty(), title = element.selectFirst(".chapter-name")?.textOrNull(),
number = index + 1f, number = index + 1f,
volume = 0, volume = 0,
url = chapterUrl, url = chapterUrl,

@ -178,7 +178,7 @@ internal class Manhwa18Parser(context: MangaLoaderContext) :
val uploadDate = parseUploadDate(element.selectFirst(".chapter-time")?.text()) val uploadDate = parseUploadDate(element.selectFirst(".chapter-time")?.text())
MangaChapter( MangaChapter(
id = generateUid(chapterUrl), id = generateUid(chapterUrl),
name = element.selectFirst(".chapter-name")?.text().orEmpty(), title = element.selectFirst(".chapter-name")?.textOrNull(),
number = index + 1f, number = index + 1f,
volume = 0, volume = 0,
url = chapterUrl, url = chapterUrl,

@ -129,7 +129,7 @@ internal class ManhwasMen(context: MangaLoaderContext) :
val url = li.selectFirstOrThrow("a").attrAsRelativeUrl("href") val url = li.selectFirstOrThrow("a").attrAsRelativeUrl("href")
MangaChapter( MangaChapter(
id = generateUid(url), id = generateUid(url),
name = li.selectFirstOrThrow(".flex-grow-1 span").text(), title = li.selectFirstOrThrow(".flex-grow-1 span").text(),
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = url, url = url,

@ -111,7 +111,7 @@ internal class MyComicList(context: MangaLoaderContext) :
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = name, title = name,
number = name.substringAfter('#').toFloatOrNull() ?: (i + 1f), number = name.substringAfter('#').toFloatOrNull() ?: (i + 1f),
url = href, url = href,
scanlator = null, scanlator = null,

@ -79,7 +79,7 @@ internal class Po2Scans(context: MangaLoaderContext) :
val url = "/" + a.attrAsRelativeUrl("href").toAbsoluteUrl(domain) val url = "/" + a.attrAsRelativeUrl("href").toAbsoluteUrl(domain)
MangaChapter( MangaChapter(
id = generateUid(url), id = generateUid(url),
name = a.text(), title = a.text(),
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = url, url = url,

@ -149,7 +149,7 @@ internal class Pururin(context: MangaLoaderContext) :
chapters = listOf( chapters = listOf(
MangaChapter( MangaChapter(
id = manga.id, id = manga.id,
name = manga.title, title = manga.title,
number = 1f, number = 1f,
volume = 0, volume = 0,
url = manga.url, url = manga.url,

@ -152,7 +152,7 @@ internal class VyManga(context: MangaLoaderContext) :
val url = a.attrAsRelativeUrl("href") val url = a.attrAsRelativeUrl("href")
MangaChapter( MangaChapter(
id = generateUid(url), id = generateUid(url),
name = a.selectFirst("span")?.text() ?: "Chapter ${i + 1}", title = a.selectFirst("span")?.textOrNull(),
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = url, url = url,

@ -303,7 +303,7 @@ internal class WeebCentral(context: MangaLoaderContext) : LegacyMangaParser(cont
MangaChapter( MangaChapter(
id = generateUid(chapterId), id = generateUid(chapterId),
url = chapterId, url = chapterId,
name = name, title = name,
number = Regex("""(?<!S)\b(\d+(\.\d+)?)\b""").find(name) number = Regex("""(?<!S)\b(\d+(\.\d+)?)\b""").find(name)
?.groupValues?.get(1)?.toFloatOrNull() ?.groupValues?.get(1)?.toFloatOrNull()
?: i.toFloat(), ?: i.toFloat(),

@ -66,7 +66,7 @@ internal class TempleScanEsp(context: MangaLoaderContext) :
val href = a.attrAsRelativeUrl("href") val href = a.attrAsRelativeUrl("href")
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = a.selectFirst("span")?.text() ?: "Capítulo ${i + 1f}", title = a.selectFirst("span")?.textOrNull(),
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = href, url = href,

@ -210,7 +210,7 @@ internal class TuMangaOnlineParser(context: MangaLoaderContext) : LegacyPagedMan
val href = element.selectFirstOrThrow("div.row > .text-right > a").attrAsRelativeUrl("href") val href = element.selectFirstOrThrow("div.row > .text-right > a").attrAsRelativeUrl("href")
return MangaChapter( return MangaChapter(
id = generateUid(href), id = generateUid(href),
name = "One Shot", title = "One Shot",
number = 1f, number = 1f,
volume = 0, volume = 0,
url = href, url = href,
@ -227,7 +227,7 @@ internal class TuMangaOnlineParser(context: MangaLoaderContext) : LegacyPagedMan
val href = element.selectFirstOrThrow("div.row > .text-right > a").attrAsRelativeUrl("href") val href = element.selectFirstOrThrow("div.row > .text-right > a").attrAsRelativeUrl("href")
return MangaChapter( return MangaChapter(
id = generateUid(href), id = generateUid(href),
name = chName, title = chName,
number = number + 1f, number = number + 1f,
volume = 0, volume = 0,
url = href, url = href,

@ -218,7 +218,7 @@ internal abstract class FmreaderParser(
val dateText = a.selectFirst(selectDate)?.text() val dateText = a.selectFirst(selectDate)?.text()
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = a.selectFirstOrThrow("div.chapter-name").text(), title = a.selectFirstOrThrow("div.chapter-name").text(),
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = href, url = href,

@ -64,7 +64,7 @@ internal class Klz9(context: MangaLoaderContext) :
val dateText = a.selectFirst(selectDate)?.text() val dateText = a.selectFirst(selectDate)?.text()
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = a.selectFirstOrThrow("a").text(), title = a.selectFirstOrThrow("a").text(),
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = href, url = href,

@ -24,7 +24,7 @@ internal class WeLoveManga(context: MangaLoaderContext) :
val dateText = a.selectFirst(selectDate)?.text() val dateText = a.selectFirst(selectDate)?.text()
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = a.selectFirstOrThrow("a").text(), title = a.selectFirstOrThrow("a").text(),
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = href, url = href,

@ -143,7 +143,7 @@ internal abstract class FoolSlideParser(
val dateText = div.selectFirst(selectDate)?.text()?.substringAfter(", ") val dateText = div.selectFirst(selectDate)?.text()?.substringAfter(", ")
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = a.text(), title = a.text(),
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = href, url = href,

@ -234,11 +234,11 @@ internal class BentomangaParser(context: MangaLoaderContext) :
.select(".component-chapter").map { div -> .select(".component-chapter").map { div ->
val a = div.selectFirstOrThrow("a:not([style*='display:none'])") val a = div.selectFirstOrThrow("a:not([style*='display:none'])")
val href = a.attrAsRelativeUrl("href") val href = a.attrAsRelativeUrl("href")
val title = div.selectFirstOrThrow(".chapter_volume").text() val title = div.selectFirstOrThrow(".chapter_volume").textOrNull()
val name = div.selectFirst(".chapter_title")?.textOrNull() val name = div.selectFirst(".chapter_title")?.textOrNull()
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = if (name != null && name != title) "$title: $name" else title, title = if (name != null && name != title) "$title: $name" else title,
number = href.substringAfterLast('/').toFloatOrNull() ?: 0f, number = href.substringAfterLast('/').toFloatOrNull() ?: 0f,
volume = 0, volume = 0,
url = href, url = href,

@ -105,7 +105,7 @@ internal class FuryoSociety(context: MangaLoaderContext) :
val dateText = div.selectFirst("div.meta_r")?.text()?.replace("Hier", "1 jour") val dateText = div.selectFirst("div.meta_r")?.text()?.replace("Hier", "1 jour")
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = div.selectFirst("div.title")?.text() + " : " + div.selectFirst("div.name")?.text(), title = div.selectFirst("div.title")?.text() + " : " + div.selectFirst("div.name")?.text(),
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = href, url = href,

@ -185,11 +185,11 @@ internal class LegacyScansParser(context: MangaLoaderContext) :
chapters = root.select("div.chapterList a") chapters = root.select("div.chapterList a")
.mapChapters(reversed = true) { i, a -> .mapChapters(reversed = true) { i, a ->
val href = a.attrAsRelativeUrl("href") val href = a.attrAsRelativeUrl("href")
val name = a.selectFirst("span")?.text() val name = a.selectFirst("span")?.textOrNull()
val dateText = a.selectLast("span")?.text() ?: "0" val dateText = a.selectLast("span")?.text() ?: "0"
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = name ?: "Chapitre : ${i + 1f}", title = name,
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = href, url = href,

@ -116,7 +116,7 @@ internal class LireScan(context: MangaLoaderContext) : LegacyPagedMangaParser(co
val dateText = div.select("p").last()?.text() val dateText = div.select("p").last()?.text()
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = name, title = name,
number = i.toFloat(), number = i.toFloat(),
volume = 0, volume = 0,
url = href, url = href,

@ -179,7 +179,7 @@ internal class LugnicaScans(context: MangaLoaderContext) :
) )
MangaChapter( MangaChapter(
id = generateUid(url), id = generateUid(url),
name = "Chapitre : $id", title = null,
number = i.toFloat(), number = i.toFloat(),
volume = 0, volume = 0,
url = url, url = url,

@ -135,7 +135,7 @@ internal class MangaKawaii(context: MangaLoaderContext) :
val url = a.attrAsRelativeUrl("href") val url = a.attrAsRelativeUrl("href")
MangaChapter( MangaChapter(
id = generateUid(url), id = generateUid(url),
name = a.text(), title = a.text(),
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = url, url = url,

@ -295,7 +295,7 @@ internal class MangaMana(context: MangaLoaderContext) :
val chapterN = href.substringAfterLast('/').replace("-", ".").replace("[^0-9.]".toRegex(), "").toFloat() val chapterN = href.substringAfterLast('/').replace("-", ".").replace("[^0-9.]".toRegex(), "").toFloat()
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = name, title = name,
number = chapterN, number = chapterN,
volume = 0, volume = 0,
url = href, url = href,

@ -142,7 +142,7 @@ internal class ScansMangasMe(context: MangaLoaderContext) :
val href = a.attrAsRelativeUrl("href") val href = a.attrAsRelativeUrl("href")
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = li.selectFirstOrThrow("span.mobile chapter").text(), title = li.selectFirstOrThrow("span.mobile chapter").text(),
number = li.selectFirstOrThrow("span.mobile chapter").text().substringAfterLast(" ").toFloat(), number = li.selectFirstOrThrow("span.mobile chapter").text().substringAfterLast(" ").toFloat(),
volume = 0, volume = 0,
url = href, url = href,

@ -155,7 +155,7 @@ internal class ScantradUnion(context: MangaLoaderContext) :
val date = li.select(".name-chapter").first()?.children()?.elementAt(2)?.text() val date = li.select(".name-chapter").first()?.children()?.elementAt(2)?.text()
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = name, title = name,
number = i.toFloat(), number = i.toFloat(),
volume = 0, volume = 0,
url = href, url = href,

@ -240,7 +240,7 @@ internal abstract class FuzzyDoodleParser(
val chapterN = href.substringAfterLast('/').replace("-", ".").replace("[^0-9.]".toRegex(), "").toFloat() val chapterN = href.substringAfterLast('/').replace("-", ".").replace("[^0-9.]".toRegex(), "").toFloat()
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = name, title = name,
number = chapterN, number = chapterN,
volume = 0, volume = 0,
url = href, url = href,

@ -173,7 +173,7 @@ internal abstract class GalleryAdultsParser(
chapters = listOf( chapters = listOf(
MangaChapter( MangaChapter(
id = manga.id, id = manga.id,
name = manga.title, title = manga.title,
number = 1f, number = 1f,
volume = 0, volume = 0,
url = urlChapters, url = urlChapters,

@ -133,7 +133,7 @@ internal class HentaiEra(context: MangaLoaderContext) :
chapters = listOf( chapters = listOf(
MangaChapter( MangaChapter(
id = manga.id, id = manga.id,
name = manga.title, title = manga.title,
number = 1f, number = 1f,
volume = 0, volume = 0,
url = urlChapters, url = urlChapters,

@ -120,7 +120,7 @@ internal abstract class GattsuParser(
chapters = listOf( chapters = listOf(
MangaChapter( MangaChapter(
id = manga.id, id = manga.id,
name = manga.title, title = manga.title,
number = 1f, number = 1f,
volume = 0, volume = 0,
url = urlChapter, url = urlChapter,

@ -95,7 +95,7 @@ internal abstract class GuyaParser(
chapters.add( chapters.add(
MangaChapter( MangaChapter(
id = generateUid(url), id = generateUid(url),
name = chapter.getString("title"), title = chapter.getString("title"),
number = i.toFloat(), number = i.toFloat(),
volume = 0, volume = 0,
url = url, url = url,

@ -159,7 +159,7 @@ internal abstract class HeanCms(
"/series/${it.getJSONObject("series").getString("series_slug")}/${it.getString("chapter_slug")}" "/series/${it.getJSONObject("series").getString("series_slug")}/${it.getString("chapter_slug")}"
MangaChapter( MangaChapter(
id = it.getLong("id"), id = it.getLong("id"),
name = it.getString("chapter_name"), title = it.getString("chapter_name"),
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = chapterUrl, url = chapterUrl,

@ -97,7 +97,7 @@ internal abstract class HeanCmsAlt(
val url = a.attrAsRelativeUrl("href").toAbsoluteUrl(domain) val url = a.attrAsRelativeUrl("href").toAbsoluteUrl(domain)
MangaChapter( MangaChapter(
id = generateUid(url), id = generateUid(url),
name = a.selectFirst(selectChapterTitle)?.text() ?: "Chapter : ${i + 1f}", title = a.selectFirst(selectChapterTitle)?.textOrNull(),
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = url, url = url,

@ -34,7 +34,7 @@ internal class Brakeout(context: MangaLoaderContext) :
val url = a.attrAsRelativeUrl("href").toAbsoluteUrl(domain) val url = a.attrAsRelativeUrl("href").toAbsoluteUrl(domain)
MangaChapter( MangaChapter(
id = generateUid(url), id = generateUid(url),
name = div.selectFirstOrThrow(selectChapterTitle).text(), title = div.selectFirstOrThrow(selectChapterTitle).text(),
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = url, url = url,

@ -150,7 +150,7 @@ internal abstract class HotComicsParser(
val chapterNum = li.selectFirst(".num")?.text()?.toFloat() ?: (i + 1f) val chapterNum = li.selectFirst(".num")?.text()?.toFloat() ?: (i + 1f)
MangaChapter( MangaChapter(
id = generateUid(url), id = generateUid(url),
name = "Chapter : $chapterNum", title = null,
number = chapterNum, number = chapterNum,
volume = 0, volume = 0,
url = url, url = url,

@ -161,7 +161,7 @@ internal class DoujinDesuParser(context: MangaLoaderContext) :
val url = titleTag.attrAsRelativeUrl("href") val url = titleTag.attrAsRelativeUrl("href")
MangaChapter( MangaChapter(
id = generateUid(url), id = generateUid(url),
name = titleTag.text(), title = titleTag.text(),
number = index + 1f, number = index + 1f,
volume = 0, volume = 0,
url = url, url = url,

@ -106,7 +106,7 @@ internal class HentaiCrot(context: MangaLoaderContext) :
chapters = listOf( chapters = listOf(
MangaChapter( MangaChapter(
id = manga.id, id = manga.id,
name = manga.title, title = manga.title,
number = 1f, number = 1f,
volume = 0, volume = 0,
url = fullUrl, url = fullUrl,

@ -106,7 +106,7 @@ internal class PixHentai(context: MangaLoaderContext) :
chapters = listOf( chapters = listOf(
MangaChapter( MangaChapter(
id = manga.id, id = manga.id,
name = manga.title, title = manga.title,
number = 1f, number = 1f,
volume = 0, volume = 0,
url = fullUrl, url = fullUrl,

@ -6,10 +6,7 @@ import org.koitharu.kotatsu.parsers.config.ConfigKey
import org.koitharu.kotatsu.parsers.core.LegacyPagedMangaParser import org.koitharu.kotatsu.parsers.core.LegacyPagedMangaParser
import org.koitharu.kotatsu.parsers.model.* import org.koitharu.kotatsu.parsers.model.*
import org.koitharu.kotatsu.parsers.util.* import org.koitharu.kotatsu.parsers.util.*
import org.koitharu.kotatsu.parsers.util.json.asTypedList import org.koitharu.kotatsu.parsers.util.json.*
import org.koitharu.kotatsu.parsers.util.json.getBooleanOrDefault
import org.koitharu.kotatsu.parsers.util.json.getStringOrNull
import org.koitharu.kotatsu.parsers.util.json.mapJSON
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
@ -147,8 +144,8 @@ internal abstract class IkenParser(
val chapterUrl = "/series/$slugName/${it.getString("slug")}" val chapterUrl = "/series/$slugName/${it.getString("slug")}"
MangaChapter( MangaChapter(
id = it.getLong("id"), id = it.getLong("id"),
name = "Chapter : ${it.getInt("number")}", title = null,
number = it.getInt("number").toFloat(), number = it.getFloatOrDefault("number", 0f),
volume = 0, volume = 0,
url = chapterUrl, url = chapterUrl,
scanlator = null, scanlator = null,

@ -137,7 +137,7 @@ internal class NicovideoSeigaParser(context: MangaLoaderContext) :
?.attrAsRelativeUrl("href") ?: li.parseFailed() ?.attrAsRelativeUrl("href") ?: li.parseFailed()
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = li.select("div > div.description > div.title > a").text(), title = li.select("div > div.description > div.title > a").text(),
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = href, url = href,

@ -193,7 +193,7 @@ internal abstract class KeyoappParser(
val dateText = a.selectLast("div.text-xs.w-fit")?.text() ?: "0" val dateText = a.selectLast("div.text-xs.w-fit")?.text() ?: "0"
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = name, title = name,
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = href, url = href,

@ -200,7 +200,7 @@ internal abstract class LikeMangaParser(
} }
MangaChapter( MangaChapter(
id = generateUid(url), id = generateUid(url),
name = name, title = name,
number = chapNum.toFloatOrNull() ?: 0f, number = chapNum.toFloatOrNull() ?: 0f,
volume = 0, volume = 0,
url = url, url = url,
@ -229,7 +229,7 @@ internal abstract class LikeMangaParser(
MangaChapter( MangaChapter(
id = generateUid(url), id = generateUid(url),
name = li.selectFirstOrThrow("a").text(), title = li.selectFirstOrThrow("a").text(),
number = chapNum.toFloat(), number = chapNum.toFloat(),
volume = 0, volume = 0,
url = url, url = url,

@ -173,7 +173,7 @@ internal abstract class LilianaParser(
val href = element.selectFirstOrThrow("a").attrAsRelativeUrl("href") val href = element.selectFirstOrThrow("a").attrAsRelativeUrl("href")
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = element.selectFirst("a")?.text() ?: "Chapter : ${i + 1f}", title = element.selectFirst("a")?.textOrNull(),
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = href, url = href,

@ -600,7 +600,7 @@ internal abstract class MadaraParser(
val name = a.selectFirst("p")?.text() ?: a.ownText() val name = a.selectFirst("p")?.text() ?: a.ownText()
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = name, title = name,
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = link, url = link,
@ -635,7 +635,7 @@ internal abstract class MadaraParser(
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
url = link, url = link,
name = name, title = name,
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
branch = null, branch = null,

@ -30,7 +30,7 @@ internal class Ero18x(context: MangaLoaderContext) :
val name = a.selectFirst("p")?.text() ?: a.ownText() val name = a.selectFirst("p")?.text() ?: a.ownText()
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = name, title = name,
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = link, url = link,

@ -28,7 +28,7 @@ internal class ManhwaRaw(context: MangaLoaderContext) :
val name = a.selectFirst("h4")?.text() ?: a.ownText() val name = a.selectFirst("h4")?.text() ?: a.ownText()
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = name, title = name,
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = link, url = link,

@ -30,7 +30,7 @@ internal class LekMangaCom(context: MangaLoaderContext) :
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
url = link, url = link,
name = name, title = name,
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
branch = null, branch = null,

@ -33,7 +33,7 @@ internal class RocksManga(context: MangaLoaderContext) :
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
url = link, url = link,
name = name, title = name,
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
branch = null, branch = null,

@ -140,7 +140,7 @@ internal class AdultWebtoon(context: MangaLoaderContext) :
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
url = link, url = link,
name = name, title = name,
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
branch = null, branch = null,

@ -134,7 +134,7 @@ internal class HentaiManga(context: MangaLoaderContext) :
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
url = link, url = link,
name = name, title = name,
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
branch = null, branch = null,

@ -134,7 +134,7 @@ internal class HentaiWebtoon(context: MangaLoaderContext) :
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
url = link, url = link,
name = name, title = name,
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
branch = null, branch = null,

@ -27,7 +27,7 @@ internal class Hentaixdickgirl(context: MangaLoaderContext) :
val name = a.selectFirst("p")?.text() ?: a.ownText() val name = a.selectFirst("p")?.text() ?: a.ownText()
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = name, title = name,
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = link, url = link,

@ -122,7 +122,7 @@ internal class IsekaiScan(context: MangaLoaderContext) :
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
url = link, url = link,
name = a.ownText(), title = a.ownText(),
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
branch = null, branch = null,

@ -155,7 +155,7 @@ internal class MangaDass(context: MangaLoaderContext) :
val name = a.selectFirst("p")?.text() ?: a.ownText() val name = a.selectFirst("p")?.text() ?: a.ownText()
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = name, title = name,
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = link, url = link,

@ -31,7 +31,7 @@ internal class MangaDistrict(context: MangaLoaderContext) :
val href = a?.attrAsRelativeUrlOrNull("href") ?: li.parseFailed("Link is missing") val href = a?.attrAsRelativeUrlOrNull("href") ?: li.parseFailed("Link is missing")
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = a.ownText(), title = a.ownText(),
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = href, url = href,

@ -148,7 +148,7 @@ internal class MangaDna(context: MangaLoaderContext) :
val name = a.selectFirst("p")?.text() ?: a.ownText() val name = a.selectFirst("p")?.text() ?: a.ownText()
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = name, title = name,
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = link, url = link,

@ -127,7 +127,7 @@ internal class MangaPure(context: MangaLoaderContext) :
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
url = link, url = link,
name = a.ownText(), title = a.ownText(),
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
branch = null, branch = null,

@ -94,7 +94,7 @@ internal class ManhwaHentai(context: MangaLoaderContext) :
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
url = link, url = link,
name = name, title = name,
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
branch = null, branch = null,

@ -38,7 +38,7 @@ internal class ManhwaTop(context: MangaLoaderContext) :
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
url = link, url = link,
name = name, title = name,
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
branch = null, branch = null,

@ -137,7 +137,7 @@ internal class ManyToon(context: MangaLoaderContext) :
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
url = link, url = link,
name = name, title = name,
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
branch = null, branch = null,

@ -62,7 +62,7 @@ internal class MangasNoSekai(context: MangaLoaderContext) :
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
url = link, url = link,
name = name, title = name,
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
branch = null, branch = null,

@ -28,7 +28,7 @@ internal class ManhwaEs(context: MangaLoaderContext) :
val name = li.selectFirstOrThrow(".mini-letters a").text() val name = li.selectFirstOrThrow(".mini-letters a").text()
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = name, title = name,
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = link, url = link,

@ -74,7 +74,7 @@ internal class ManhwaLatino(context: MangaLoaderContext) :
val name = li.selectFirst("a:contains(Capitulo)")?.text() ?: a.ownText() val name = li.selectFirst("a:contains(Capitulo)")?.text() ?: a.ownText()
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = name, title = name,
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = link, url = link,

@ -91,7 +91,7 @@ internal class TmoManga(context: MangaLoaderContext) :
val name = a.selectFirst("p")?.text() ?: a.ownText() val name = a.selectFirst("p")?.text() ?: a.ownText()
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = name, title = name,
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = link, url = link,

@ -34,7 +34,7 @@ internal class Hentaizone(context: MangaLoaderContext) :
val name = a.selectFirst("p")?.text() ?: a.ownText() val name = a.selectFirst("p")?.text() ?: a.ownText()
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
name = name, title = name,
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
url = link, url = link,

@ -31,7 +31,7 @@ internal class ToonFr(context: MangaLoaderContext) :
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
url = href, url = href,
name = a.text(), title = a.text(),
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
branch = null, branch = null,

@ -27,7 +27,7 @@ internal class Neoxscans(context: MangaLoaderContext) :
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
url = link, url = link,
name = name, title = name,
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
branch = null, branch = null,

@ -8,7 +8,6 @@ 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.site.madara.MadaraParser import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
import org.koitharu.kotatsu.parsers.util.attrAsRelativeUrlOrNull import org.koitharu.kotatsu.parsers.util.attrAsRelativeUrlOrNull
import org.koitharu.kotatsu.parsers.util.domain
import org.koitharu.kotatsu.parsers.util.generateUid import org.koitharu.kotatsu.parsers.util.generateUid
import org.koitharu.kotatsu.parsers.util.mapChapters import org.koitharu.kotatsu.parsers.util.mapChapters
import org.koitharu.kotatsu.parsers.util.parseFailed import org.koitharu.kotatsu.parsers.util.parseFailed
@ -42,7 +41,7 @@ internal class LaviniaFansub(context: MangaLoaderContext) :
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
url = link, url = link,
name = name, title = name,
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
branch = null, branch = null,

@ -23,7 +23,7 @@ internal class TitanManga(context: MangaLoaderContext) :
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
url = link, url = link,
name = name, title = name,
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
branch = null, branch = null,

@ -25,7 +25,7 @@ internal class TruyenTranhDamMyy(context: MangaLoaderContext) :
MangaChapter( MangaChapter(
id = generateUid(href), id = generateUid(href),
url = link, url = link,
name = name, title = name,
number = i + 1f, number = i + 1f,
volume = 0, volume = 0,
branch = null, branch = null,

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save