From 8c8cf5dcd9c005d849bc3357af7506238240b785 Mon Sep 17 00:00:00 2001 From: Draken Date: Mon, 24 Feb 2025 10:11:20 +0000 Subject: [PATCH 1/2] [SssScanlator] Fix attempt 1 --- .../site/mangareader/pt/SssScanlator.kt | 39 +++++++++++++++---- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pt/SssScanlator.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pt/SssScanlator.kt index 6b63dbe1..9067bef1 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pt/SssScanlator.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pt/SssScanlator.kt @@ -5,18 +5,43 @@ import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.model.MangaListFilterCapabilities import org.koitharu.kotatsu.parsers.model.MangaParserSource 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") internal class SssScanlator(context: MangaLoaderContext) : - MangaReaderParser( - context, - MangaParserSource.SSSSCANLATOR, - "ssstoons.com", - pageSize = 20, - searchPageSize = 10, - ) { + MangaReaderParser(context, MangaParserSource.SSSSCANLATOR, "yomucomics.com", pageSize = 20, searchPageSize = 10) { + override val filterCapabilities: MangaListFilterCapabilities get() = super.filterCapabilities.copy( 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 + } } From e8a96fa0addae6ed790e9694c55460253801c5a8 Mon Sep 17 00:00:00 2001 From: Draken <131387159+dragonx943@users.noreply.github.com> Date: Mon, 24 Feb 2025 17:30:38 +0700 Subject: [PATCH 2/2] [SssScanlator] Small fixes Fix chapters > numChap [SssScanlator] --- .../kotatsu/parsers/site/mangareader/pt/SssScanlator.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pt/SssScanlator.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pt/SssScanlator.kt index 9067bef1..9a60b4ec 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pt/SssScanlator.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pt/SssScanlator.kt @@ -20,7 +20,7 @@ internal class SssScanlator(context: MangaLoaderContext) : 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 chapters = docs.select(selectChapter).mapChapters { 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)