|
|
|
@ -5,18 +5,43 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser
|
|
|
|
import org.koitharu.kotatsu.parsers.model.MangaListFilterCapabilities
|
|
|
|
import org.koitharu.kotatsu.parsers.model.MangaListFilterCapabilities
|
|
|
|
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
|
|
|
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
|
|
|
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
|
|
|
|
import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
|
|
|
|
|
|
|
|
import org.koitharu.kotatsu.parsers.model.*
|
|
|
|
|
|
|
|
import org.koitharu.kotatsu.parsers.util.*
|
|
|
|
|
|
|
|
import java.util.*
|
|
|
|
|
|
|
|
|
|
|
|
@MangaSourceParser("SSSSCANLATOR", "SssScanlator", "pt")
|
|
|
|
@MangaSourceParser("SSSSCANLATOR", "SssScanlator", "pt")
|
|
|
|
internal class SssScanlator(context: MangaLoaderContext) :
|
|
|
|
internal class SssScanlator(context: MangaLoaderContext) :
|
|
|
|
MangaReaderParser(
|
|
|
|
MangaReaderParser(context, MangaParserSource.SSSSCANLATOR, "yomucomics.com", pageSize = 20, searchPageSize = 10) {
|
|
|
|
context,
|
|
|
|
|
|
|
|
MangaParserSource.SSSSCANLATOR,
|
|
|
|
|
|
|
|
"ssstoons.com",
|
|
|
|
|
|
|
|
pageSize = 20,
|
|
|
|
|
|
|
|
searchPageSize = 10,
|
|
|
|
|
|
|
|
) {
|
|
|
|
|
|
|
|
override val filterCapabilities: MangaListFilterCapabilities
|
|
|
|
override val filterCapabilities: MangaListFilterCapabilities
|
|
|
|
get() = super.filterCapabilities.copy(
|
|
|
|
get() = super.filterCapabilities.copy(
|
|
|
|
isTagsExclusionSupported = false,
|
|
|
|
isTagsExclusionSupported = false,
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
override suspend fun getDetails(manga: Manga): Manga {
|
|
|
|
|
|
|
|
val docs = webClient.httpGet(manga.url.toAbsoluteUrl(domain)).parseHtml()
|
|
|
|
|
|
|
|
val chapters = docs.select(selectChapter).mapChapters(reversed = true) { index, element ->
|
|
|
|
|
|
|
|
val url = element.selectFirst("a")?.attrAsRelativeUrl("href") ?: return@mapChapters null
|
|
|
|
|
|
|
|
val name = element.selectFirst(".chapternum")?.text() ?: "Chapter ${index + 1}"
|
|
|
|
|
|
|
|
val numChap = findNumChap(name)
|
|
|
|
|
|
|
|
MangaChapter(
|
|
|
|
|
|
|
|
id = generateUid(url),
|
|
|
|
|
|
|
|
name = name,
|
|
|
|
|
|
|
|
url = url,
|
|
|
|
|
|
|
|
number = numChap,
|
|
|
|
|
|
|
|
volume = 0,
|
|
|
|
|
|
|
|
scanlator = null,
|
|
|
|
|
|
|
|
uploadDate = 0,
|
|
|
|
|
|
|
|
branch = null,
|
|
|
|
|
|
|
|
source = source,
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return parseInfo(docs, manga, chapters)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private fun findNumChap(name: String): Float {
|
|
|
|
|
|
|
|
val regex = Regex("\\d+")
|
|
|
|
|
|
|
|
val num = regex.find(name)
|
|
|
|
|
|
|
|
return num?.value?.toFloat() ?: 0f
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|