|
|
|
@ -131,6 +131,8 @@ internal abstract class GroupleParser(
|
|
|
|
if (chaptersList == null && root.getElementsContainingOwnText(NO_CHAPTERS).isEmpty()) {
|
|
|
|
if (chaptersList == null && root.getElementsContainingOwnText(NO_CHAPTERS).isEmpty()) {
|
|
|
|
root.parseFailed("No chapters found")
|
|
|
|
root.parseFailed("No chapters found")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
val hashRegex = Regex("window.user_hash\\s*=\\s*\'([^\']+)\'")
|
|
|
|
|
|
|
|
val userHash = doc.select("script").firstNotNullOfOrNull { it.html().findGroupValue(hashRegex) }
|
|
|
|
return manga.copy(
|
|
|
|
return manga.copy(
|
|
|
|
source = newSource,
|
|
|
|
source = newSource,
|
|
|
|
title = doc.metaValue("name") ?: manga.title,
|
|
|
|
title = doc.metaValue("name") ?: manga.title,
|
|
|
|
@ -153,7 +155,7 @@ internal abstract class GroupleParser(
|
|
|
|
chapters = chaptersList?.select("a.chapter-link")
|
|
|
|
chapters = chaptersList?.select("a.chapter-link")
|
|
|
|
?.flatMapChapters(reversed = true) { a ->
|
|
|
|
?.flatMapChapters(reversed = true) { a ->
|
|
|
|
val tr = a.selectFirstParent("tr") ?: return@flatMapChapters emptyList()
|
|
|
|
val tr = a.selectFirstParent("tr") ?: return@flatMapChapters emptyList()
|
|
|
|
val href = a.attrAsRelativeUrl("href")
|
|
|
|
val href = a.attrAsRelativeUrl("href").setQueryParam("d", userHash)
|
|
|
|
val number = tr.attr("data-num").toFloatOrNull()?.div(10f) ?: 0f
|
|
|
|
val number = tr.attr("data-num").toFloatOrNull()?.div(10f) ?: 0f
|
|
|
|
val volume = tr.attr("data-vol").toIntOrNull() ?: 0
|
|
|
|
val volume = tr.attr("data-vol").toIntOrNull() ?: 0
|
|
|
|
if (translations.isNullOrEmpty() || a.attr("data-translations").isEmpty()) {
|
|
|
|
if (translations.isNullOrEmpty() || a.attr("data-translations").isEmpty()) {
|
|
|
|
@ -497,7 +499,8 @@ internal abstract class GroupleParser(
|
|
|
|
return result
|
|
|
|
return result
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private fun String.setQueryParam(name: String, value: String): String {
|
|
|
|
private fun String.setQueryParam(name: String, value: String?): String {
|
|
|
|
|
|
|
|
if (value == null) return this
|
|
|
|
return toAbsoluteUrl(domain)
|
|
|
|
return toAbsoluteUrl(domain)
|
|
|
|
.toHttpUrl()
|
|
|
|
.toHttpUrl()
|
|
|
|
.newBuilder()
|
|
|
|
.newBuilder()
|
|
|
|
|