From b838d8b34b834e74a26c509e5563d41af7c88379 Mon Sep 17 00:00:00 2001 From: Emixsan Date: Wed, 15 Oct 2025 14:45:02 +0200 Subject: [PATCH] Add BigSolo (#10992) * Adds BigSolo source extension * Improves BigSolo extension Improves the BigSolo extension by introducing DTOs for data handling. Enhances error handling and streamlines the parsing of data from JSON responses. * Refactors BigSolo extension Migrates BigSolo extension from ParsedHttpSource to HttpSource. Utilizes keiyoushi.utils.parseAs for JSON parsing. Implements in-memory caching for series data to reduce redundant calls. Passes the search query as URL fragment. * Simplifies DTO and uses non-null assertions --- src/fr/bigsolo/build.gradle | 8 + .../bigsolo/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 8385 bytes .../bigsolo/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 4233 bytes .../bigsolo/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 13941 bytes .../bigsolo/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 28443 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 47072 bytes .../tachiyomi/extension/fr/bigsolo/BigSolo.kt | 178 ++++++++++++++++++ .../extension/fr/bigsolo/BigSoloDto.kt | 99 ++++++++++ 8 files changed, 285 insertions(+) create mode 100644 src/fr/bigsolo/build.gradle create mode 100644 src/fr/bigsolo/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/fr/bigsolo/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/fr/bigsolo/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/fr/bigsolo/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/fr/bigsolo/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/fr/bigsolo/src/eu/kanade/tachiyomi/extension/fr/bigsolo/BigSolo.kt create mode 100644 src/fr/bigsolo/src/eu/kanade/tachiyomi/extension/fr/bigsolo/BigSoloDto.kt diff --git a/src/fr/bigsolo/build.gradle b/src/fr/bigsolo/build.gradle new file mode 100644 index 000000000..9c7da1d17 --- /dev/null +++ b/src/fr/bigsolo/build.gradle @@ -0,0 +1,8 @@ +ext { + extName = 'BigSolo' + extClass = '.BigSolo' + extVersionCode = 1 + isNsfw = false +} + +apply from: "$rootDir/common.gradle" diff --git a/src/fr/bigsolo/res/mipmap-hdpi/ic_launcher.png b/src/fr/bigsolo/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..c149f5a03eebd1045d3886a9f76a8023f2e6e0a0 GIT binary patch literal 8385 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 XO_!&qm>#x{00000NkvXXu0mjfa5mqw literal 0 HcmV?d00001 diff --git a/src/fr/bigsolo/res/mipmap-mdpi/ic_launcher.png b/src/fr/bigsolo/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..80192387cc36fcd4d53408a6becddedf575efedd GIT binary patch literal 4233 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 literal 0 HcmV?d00001 diff --git a/src/fr/bigsolo/res/mipmap-xhdpi/ic_launcher.png b/src/fr/bigsolo/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..ad0e72d5ec34048b69568b04e51ab8b436181f74 GIT binary patch literal 13941 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 P00000NkvXXu0mjfm{ literal 0 HcmV?d00001 diff --git a/src/fr/bigsolo/res/mipmap-xxhdpi/ic_launcher.png b/src/fr/bigsolo/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..fcf65fe142c84f99dda620f53b6f53b86c22f81f GIT binary patch literal 28443 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Ν45u#S-1Qx3l-cB#UF{0@Z1P`zMUGeh0;-XI8`+6 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 literal 0 HcmV?d00001 diff --git a/src/fr/bigsolo/res/mipmap-xxxhdpi/ic_launcher.png b/src/fr/bigsolo/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..7956b97a9a7dd1dccacaae87cb671141b9f15c3d GIT binary patch literal 47072 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

y$_5Z}nV-zI@g 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 literal 0 HcmV?d00001 diff --git a/src/fr/bigsolo/src/eu/kanade/tachiyomi/extension/fr/bigsolo/BigSolo.kt b/src/fr/bigsolo/src/eu/kanade/tachiyomi/extension/fr/bigsolo/BigSolo.kt new file mode 100644 index 000000000..9cfe51b24 --- /dev/null +++ b/src/fr/bigsolo/src/eu/kanade/tachiyomi/extension/fr/bigsolo/BigSolo.kt @@ -0,0 +1,178 @@ +package eu.kanade.tachiyomi.extension.fr.bigsolo + +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.source.model.FilterList +import eu.kanade.tachiyomi.source.model.MangasPage +import eu.kanade.tachiyomi.source.model.Page +import eu.kanade.tachiyomi.source.model.SChapter +import eu.kanade.tachiyomi.source.model.SManga +import eu.kanade.tachiyomi.source.online.HttpSource +import eu.kanade.tachiyomi.util.asJsoup +import keiyoushi.utils.parseAs +import okhttp3.Request +import okhttp3.Response +import org.jsoup.nodes.Document + +class BigSolo : HttpSource() { + + companion object { + private const val SERIES_DATA_SELECTOR = "#series-data-placeholder" + } + + override val name = "BigSolo" + override val baseUrl = "https://bigsolo.org" + override val lang = "fr" + override val supportsLatest = false + + private val seriesDataCache = mutableMapOf() + + // Popular + override fun popularMangaRequest(page: Int): Request { + return GET("$baseUrl/data/config.json", headers) + } + + override fun popularMangaParse(response: Response): MangasPage { + return searchMangaParse(response) + } + + // Latest + override fun latestUpdatesRequest(page: Int): Request { + throw UnsupportedOperationException() + } + + override fun latestUpdatesParse(response: Response): MangasPage { + throw UnsupportedOperationException() + } + + // Search + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + val url = if (query.isNotBlank()) { + "$baseUrl/data/config.json#$query" + } else { + "$baseUrl/data/config.json" + } + return GET(url, headers) + } + + override fun searchMangaParse(response: Response): MangasPage { + val config = response.parseAs() + val mangaList = mutableListOf() + + val fragment = response.request.url.fragment + val searchQuery = fragment ?: "" + + for (fileName in config.localSeriesFiles) { + val seriesData = fetchSeriesData(fileName) + + if (searchQuery.isBlank() || seriesData.title.contains( + searchQuery, + ignoreCase = true, + ) + ) { + mangaList.add(seriesData.toSManga()) + } + } + + return MangasPage(mangaList, false) + } + + // Details + override fun mangaDetailsParse(response: Response): SManga { + val document = response.asJsoup() + val jsonData = document.selectFirst(SERIES_DATA_SELECTOR)!!.html() + + val seriesData = jsonData.parseAs() + return seriesData.toDetailedSManga() + } + + override fun pageListParse(response: Response): List { + val document = response.asJsoup() + val chapterNumber = document.location().substringAfterLast("/") + val chapterId = extractChapterId(document, chapterNumber) + return fetchChapterPages(chapterId) + } + + override fun imageUrlParse(response: Response): String { + throw UnsupportedOperationException() + } + + // Chapters + override fun chapterListParse(response: Response): List { + val document = response.asJsoup() + val jsonData = document.selectFirst(SERIES_DATA_SELECTOR)!!.html() + + val seriesData = jsonData.parseAs() + return buildChapterList(seriesData) + } + + private fun fetchSeriesData(fileName: String): SeriesData { + val cachedData = seriesDataCache[fileName] + if (cachedData != null) { + return cachedData + } + + val fileUrl = "$baseUrl/data/series/$fileName" + val response = client.newCall(GET(fileUrl, headers)).execute() + val seriesData = response.parseAs() + + seriesDataCache[fileName] = seriesData + + return seriesData + } + + private fun extractChapterId(document: Document, chapterNumber: String): String { + val jsonData = document.selectFirst("#reader-data-placeholder")!!.html() + + val readerData = jsonData.parseAs() + return readerData.series.chapters + ?.get(chapterNumber) + ?.groups + ?.values + ?.firstOrNull() + ?.substringAfterLast("/") + ?: throw NoSuchElementException("Chapter data not found for chapter $chapterNumber") + } + + private fun buildChapterList(seriesData: SeriesData): List { + val chapters = seriesData.chapters ?: return emptyList() + val chapterList = mutableListOf() + val multipleChapters = chapters.size > 1 + + for ((chapterNumber, chapterData) in chapters) { + if (chapterData.licencied) continue + + val title = chapterData.title ?: "" + val volumeNumber = chapterData.volume ?: "" + + val baseName = if (multipleChapters) { + buildString { + if (volumeNumber.isNotBlank()) append("Vol. $volumeNumber ") + append("Ch. $chapterNumber") + if (title.isNotBlank()) append(" – $title") + } + } else { + if (title.isNotBlank()) "One Shot – $title" else "One Shot" + } + + val chapter = SChapter.create().apply { + name = baseName + url = "/${toSlug(seriesData.title)}/$chapterNumber" + chapter_number = chapterNumber.toFloatOrNull() ?: -1f + date_upload = (chapterData.lastUpdated ?: 0) * 1000L + } + chapterList.add(chapter) + } + + return chapterList.sortedByDescending { it.chapter_number } + } + + private fun fetchChapterPages(chapterId: String): List { + val pagesResponse = + client.newCall(GET("$baseUrl/api/imgchest-chapter-pages?id=$chapterId", headers)) + .execute() + val pages = pagesResponse.parseAs>() + return pages.mapIndexed { index, pageData -> + Page(index, imageUrl = pageData.link) + } + } +} diff --git a/src/fr/bigsolo/src/eu/kanade/tachiyomi/extension/fr/bigsolo/BigSoloDto.kt b/src/fr/bigsolo/src/eu/kanade/tachiyomi/extension/fr/bigsolo/BigSoloDto.kt new file mode 100644 index 000000000..197ea5e1a --- /dev/null +++ b/src/fr/bigsolo/src/eu/kanade/tachiyomi/extension/fr/bigsolo/BigSoloDto.kt @@ -0,0 +1,99 @@ +package eu.kanade.tachiyomi.extension.fr.bigsolo + +import eu.kanade.tachiyomi.source.model.SManga +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +/** + * Data Transfer Objects for BigSolo extension + */ + +@Serializable +data class ConfigResponse( + @SerialName("LOCAL_SERIES_FILES") + val localSeriesFiles: List, +) + +@Serializable +data class SeriesData( + val title: String, + val description: String?, + val artist: String?, + val author: String?, + @SerialName("cover_low") + val coverLow: String?, + @SerialName("cover_hq") + val coverHq: String?, + val tags: List?, + @SerialName("release_status") + val releaseStatus: String?, + val chapters: Map?, +) + +@Serializable +data class ReaderData( + val series: SeriesData, +) + +@Serializable +data class ChapterData( + val title: String?, + val volume: String?, + @SerialName("last_updated") + val lastUpdated: Long?, + val licencied: Boolean = false, + val groups: Map?, +) + +@Serializable +data class PageData( + val link: String, +) + +// DTO to SManga extension functions +fun SeriesData.toSManga(): SManga = SManga.create().apply { + title = this@toSManga.title + artist = this@toSManga.artist + author = this@toSManga.author + thumbnail_url = this@toSManga.coverLow + url = "/${toSlug(this@toSManga.title)}" +} + +fun SeriesData.toDetailedSManga(): SManga = SManga.create().apply { + title = this@toDetailedSManga.title + description = this@toDetailedSManga.description + artist = this@toDetailedSManga.artist + author = this@toDetailedSManga.author + genre = this@toDetailedSManga.tags?.joinToString(", ") ?: "" + status = when (this@toDetailedSManga.releaseStatus) { + "En cours" -> SManga.ONGOING + "Finis", "Fini" -> SManga.COMPLETED + else -> SManga.UNKNOWN + } + thumbnail_url = this@toDetailedSManga.coverHq + url = "/${toSlug(this@toDetailedSManga.title)}" +} + +// Utility function for slug generation +// URLs are manually calculated using a slugify function +fun toSlug(input: String?): String { + if (input == null) return "" + + val accentsMap = mapOf( + 'à' to 'a', 'á' to 'a', 'â' to 'a', 'ä' to 'a', 'ã' to 'a', + 'è' to 'e', 'é' to 'e', 'ê' to 'e', 'ë' to 'e', + 'ì' to 'i', 'í' to 'i', 'î' to 'i', 'ï' to 'i', + 'ò' to 'o', 'ó' to 'o', 'ô' to 'o', 'ö' to 'o', 'õ' to 'o', + 'ù' to 'u', 'ú' to 'u', 'û' to 'u', 'ü' to 'u', + 'ç' to 'c', 'ñ' to 'n', + ) + + return input + .lowercase() + .map { accentsMap[it] ?: it } + .joinToString("") + .replace("[^a-z0-9\\s-]".toRegex(), "") + .replace("\\s+".toRegex(), "-") + .replace("-+".toRegex(), "-") + .trim('-') +}