|
|
|
@ -16,38 +16,11 @@ import org.koitharu.kotatsu.parsers.MangaParserAuthProvider
|
|
|
|
import org.koitharu.kotatsu.parsers.config.ConfigKey
|
|
|
|
import org.koitharu.kotatsu.parsers.config.ConfigKey
|
|
|
|
import org.koitharu.kotatsu.parsers.exception.AuthRequiredException
|
|
|
|
import org.koitharu.kotatsu.parsers.exception.AuthRequiredException
|
|
|
|
import org.koitharu.kotatsu.parsers.exception.ParseException
|
|
|
|
import org.koitharu.kotatsu.parsers.exception.ParseException
|
|
|
|
import org.koitharu.kotatsu.parsers.model.Manga
|
|
|
|
import org.koitharu.kotatsu.parsers.model.*
|
|
|
|
import org.koitharu.kotatsu.parsers.model.MangaChapter
|
|
|
|
import org.koitharu.kotatsu.parsers.util.*
|
|
|
|
import org.koitharu.kotatsu.parsers.model.MangaPage
|
|
|
|
|
|
|
|
import org.koitharu.kotatsu.parsers.model.MangaSource
|
|
|
|
|
|
|
|
import org.koitharu.kotatsu.parsers.model.MangaState
|
|
|
|
|
|
|
|
import org.koitharu.kotatsu.parsers.model.MangaTag
|
|
|
|
|
|
|
|
import org.koitharu.kotatsu.parsers.model.RATING_UNKNOWN
|
|
|
|
|
|
|
|
import org.koitharu.kotatsu.parsers.model.SortOrder
|
|
|
|
|
|
|
|
import org.koitharu.kotatsu.parsers.util.attrAsAbsoluteUrlOrNull
|
|
|
|
|
|
|
|
import org.koitharu.kotatsu.parsers.util.attrAsRelativeUrl
|
|
|
|
|
|
|
|
import org.koitharu.kotatsu.parsers.util.concatUrl
|
|
|
|
|
|
|
|
import org.koitharu.kotatsu.parsers.util.domain
|
|
|
|
|
|
|
|
import org.koitharu.kotatsu.parsers.util.generateUid
|
|
|
|
|
|
|
|
import org.koitharu.kotatsu.parsers.util.getCookies
|
|
|
|
|
|
|
|
import org.koitharu.kotatsu.parsers.util.json.mapJSON
|
|
|
|
import org.koitharu.kotatsu.parsers.util.json.mapJSON
|
|
|
|
import org.koitharu.kotatsu.parsers.util.mapChapters
|
|
|
|
|
|
|
|
import org.koitharu.kotatsu.parsers.util.mapToSet
|
|
|
|
|
|
|
|
import org.koitharu.kotatsu.parsers.util.parseFailed
|
|
|
|
|
|
|
|
import org.koitharu.kotatsu.parsers.util.parseHtml
|
|
|
|
|
|
|
|
import org.koitharu.kotatsu.parsers.util.requireElementById
|
|
|
|
|
|
|
|
import org.koitharu.kotatsu.parsers.util.runCatchingCancellable
|
|
|
|
|
|
|
|
import org.koitharu.kotatsu.parsers.util.selectFirstOrThrow
|
|
|
|
|
|
|
|
import org.koitharu.kotatsu.parsers.util.selectFirstParent
|
|
|
|
|
|
|
|
import org.koitharu.kotatsu.parsers.util.toAbsoluteUrl
|
|
|
|
|
|
|
|
import org.koitharu.kotatsu.parsers.util.toRelativeUrl
|
|
|
|
|
|
|
|
import org.koitharu.kotatsu.parsers.util.toTitleCase
|
|
|
|
|
|
|
|
import org.koitharu.kotatsu.parsers.util.tryParse
|
|
|
|
|
|
|
|
import org.koitharu.kotatsu.parsers.util.upBy
|
|
|
|
|
|
|
|
import org.koitharu.kotatsu.parsers.util.urlEncoded
|
|
|
|
|
|
|
|
import java.text.SimpleDateFormat
|
|
|
|
import java.text.SimpleDateFormat
|
|
|
|
import java.util.EnumSet
|
|
|
|
import java.util.*
|
|
|
|
import java.util.Locale
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private const val PAGE_SIZE = 70
|
|
|
|
private const val PAGE_SIZE = 70
|
|
|
|
private const val PAGE_SIZE_SEARCH = 50
|
|
|
|
private const val PAGE_SIZE_SEARCH = 50
|
|
|
|
@ -141,11 +114,11 @@ internal abstract class GroupleParser(
|
|
|
|
description = root.selectFirst("div.manga-description")?.html(),
|
|
|
|
description = root.selectFirst("div.manga-description")?.html(),
|
|
|
|
largeCoverUrl = coverImg?.attr("data-full"),
|
|
|
|
largeCoverUrl = coverImg?.attr("data-full"),
|
|
|
|
coverUrl = coverImg?.attr("data-thumb") ?: manga.coverUrl,
|
|
|
|
coverUrl = coverImg?.attr("data-thumb") ?: manga.coverUrl,
|
|
|
|
tags = manga.tags + root.select("div.subject-meta").select("span.elem_genre ").mapNotNull {
|
|
|
|
tags = root.selectFirstOrThrow("div.subject-meta")
|
|
|
|
val a = it.selectFirst("a.element-link") ?: return@mapNotNull null
|
|
|
|
.getElementsByAttributeValueContaining("href", "/list/genre/").mapTo(manga.tags.toMutableSet()) { a ->
|
|
|
|
MangaTag(
|
|
|
|
MangaTag(
|
|
|
|
title = a.text().toTitleCase(),
|
|
|
|
title = a.text().toTitleCase(),
|
|
|
|
key = a.attr("href").substringAfterLast('/'),
|
|
|
|
key = a.attr("href").removeSuffix('/').substringAfterLast('/'),
|
|
|
|
source = source,
|
|
|
|
source = source,
|
|
|
|
)
|
|
|
|
)
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|