diff --git a/src/pt/saikaiscan/build.gradle b/src/pt/saikaiscan/build.gradle index 6394feb71..99183e2ff 100644 --- a/src/pt/saikaiscan/build.gradle +++ b/src/pt/saikaiscan/build.gradle @@ -1,7 +1,7 @@ ext { extName = 'Saikai Scan' extClass = '.SaikaiScan' - extVersionCode = 11 + extVersionCode = 12 } apply from: "$rootDir/common.gradle" diff --git a/src/pt/saikaiscan/src/eu/kanade/tachiyomi/extension/pt/saikaiscan/SaikaiScan.kt b/src/pt/saikaiscan/src/eu/kanade/tachiyomi/extension/pt/saikaiscan/SaikaiScan.kt index 3e0dc7760..097c27c2b 100644 --- a/src/pt/saikaiscan/src/eu/kanade/tachiyomi/extension/pt/saikaiscan/SaikaiScan.kt +++ b/src/pt/saikaiscan/src/eu/kanade/tachiyomi/extension/pt/saikaiscan/SaikaiScan.kt @@ -22,15 +22,19 @@ class SaikaiScan : HttpSource() { override val name = SOURCE_NAME - override val baseUrl = "https://saikaiscans.net" + override val baseUrl = "https://housesaikai.net" + + private val apiUrl = "https://api.${baseUrl.substringAfterLast("/")}" + + private val storageUrl = "https://s3-beta.${baseUrl.substringAfterLast("/")}" override val lang = "pt-BR" override val supportsLatest = true override val client: OkHttpClient = network.cloudflareClient.newBuilder() - .rateLimitHost(API_URL.toHttpUrl(), 1, 2) - .rateLimitHost(IMAGE_SERVER_URL.toHttpUrl(), 1, 1) + .rateLimitHost(apiUrl.toHttpUrl(), 1, 2) + .rateLimitHost(storageUrl.toHttpUrl(), 1, 1) .build() private val json: Json by injectLazy() @@ -44,7 +48,7 @@ class SaikaiScan : HttpSource() { .add("Accept", ACCEPT_JSON) .build() - val apiEndpointUrl = "$API_URL/api/stories".toHttpUrl().newBuilder() + val apiEndpointUrl = "$apiUrl/api/stories".toHttpUrl().newBuilder() .addQueryParameter("format", COMIC_FORMAT_ID) .addQueryParameter("sortProperty", "pageviews") .addQueryParameter("sortDirection", "desc") @@ -59,7 +63,7 @@ class SaikaiScan : HttpSource() { override fun popularMangaParse(response: Response): MangasPage { val result = response.parseAs() - val mangaList = result.data!!.map(SaikaiScanStoryDto::toSManga) + val mangaList = result.data!!.map { it.toSManga(storageUrl) } return MangasPage(mangaList, result.hasNextPage) } @@ -69,7 +73,7 @@ class SaikaiScan : HttpSource() { .add("Accept", ACCEPT_JSON) .build() - val apiEndpointUrl = "$API_URL/api/lancamentos".toHttpUrl().newBuilder() + val apiEndpointUrl = "$apiUrl/api/lancamentos".toHttpUrl().newBuilder() .addQueryParameter("format", COMIC_FORMAT_ID) .addQueryParameter("page", page.toString()) .addQueryParameter("per_page", PER_PAGE) @@ -86,7 +90,7 @@ class SaikaiScan : HttpSource() { .add("Accept", ACCEPT_JSON) .build() - val apiEndpointUrl = "$API_URL/api/stories".toHttpUrl().newBuilder() + val apiEndpointUrl = "$apiUrl/api/stories".toHttpUrl().newBuilder() .addQueryParameter("format", COMIC_FORMAT_ID) .addQueryParameter("q", query) .addQueryParameter("sortProperty", "pageViews") @@ -112,7 +116,7 @@ class SaikaiScan : HttpSource() { .add("Accept", ACCEPT_JSON) .build() - val apiEndpointUrl = "$API_URL/api/stories".toHttpUrl().newBuilder() + val apiEndpointUrl = "$apiUrl/api/stories".toHttpUrl().newBuilder() .addQueryParameter("format", COMIC_FORMAT_ID) .addQueryParameter("slug", storySlug) .addQueryParameter("per_page", "1") @@ -125,7 +129,7 @@ class SaikaiScan : HttpSource() { override fun mangaDetailsParse(response: Response): SManga { val result = response.parseAs() - return result.data!![0].toSManga() + return result.data!![0].toSManga(storageUrl) } override fun chapterListRequest(manga: SManga): Request { @@ -135,7 +139,7 @@ class SaikaiScan : HttpSource() { .add("Accept", ACCEPT_JSON) .build() - val apiEndpointUrl = "$API_URL/api/stories".toHttpUrl().newBuilder() + val apiEndpointUrl = "$apiUrl/api/stories".toHttpUrl().newBuilder() .addQueryParameter("format", COMIC_FORMAT_ID) .addQueryParameter("slug", storySlug) .addQueryParameter("per_page", "1") @@ -166,7 +170,7 @@ class SaikaiScan : HttpSource() { .add("Accept", ACCEPT_JSON) .build() - val apiEndpointUrl = "$API_URL/api/releases/$releaseId".toHttpUrl().newBuilder() + val apiEndpointUrl = "$apiUrl/api/releases/$releaseId".toHttpUrl().newBuilder() .addQueryParameter("relationships", "releaseImages") .build() @@ -177,7 +181,7 @@ class SaikaiScan : HttpSource() { val result = response.parseAs() return result.data?.releaseImages.orEmpty().mapIndexed { i, obj -> - Page(i, "", "$IMAGE_SERVER_URL/${obj.image}") + Page(i, "", "$storageUrl/${obj.image}") } } @@ -287,14 +291,9 @@ class SaikaiScan : HttpSource() { companion object { const val SOURCE_NAME = "Saikai Scan" - private const val ACCEPT_IMAGE = "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8" private const val ACCEPT_JSON = "application/json, text/plain, */*" - private const val COMIC_FORMAT_ID = "2" private const val PER_PAGE = "12" - - private const val API_URL = "https://api.saikaiscans.net" - const val IMAGE_SERVER_URL = "https://s3-alpha.saikaiscans.net" } } diff --git a/src/pt/saikaiscan/src/eu/kanade/tachiyomi/extension/pt/saikaiscan/SaikaiScanDto.kt b/src/pt/saikaiscan/src/eu/kanade/tachiyomi/extension/pt/saikaiscan/SaikaiScanDto.kt index ab48b86e4..23517560c 100644 --- a/src/pt/saikaiscan/src/eu/kanade/tachiyomi/extension/pt/saikaiscan/SaikaiScanDto.kt +++ b/src/pt/saikaiscan/src/eu/kanade/tachiyomi/extension/pt/saikaiscan/SaikaiScanDto.kt @@ -40,7 +40,7 @@ data class SaikaiScanStoryDto( val title: String, ) { - fun toSManga(): SManga = SManga.create().apply { + fun toSManga(storageUrl: String): SManga = SManga.create().apply { title = this@SaikaiScanStoryDto.title author = authors.joinToString { it.name } artist = artists.joinToString { it.name } @@ -53,7 +53,7 @@ data class SaikaiScanStoryDto( description = Jsoup.parseBodyFragment(synopsis) .select("p") .joinToString("\n\n") { it.text() } - thumbnail_url = "${SaikaiScan.IMAGE_SERVER_URL}/$image" + thumbnail_url = "$storageUrl/$image" url = "/comics/$slug" } }