From 8c6f4bfbcb00babdca1a3606e85f524d83568d5c Mon Sep 17 00:00:00 2001 From: Radon Rosborough Date: Sat, 14 Jun 2025 01:49:10 -0700 Subject: [PATCH] SMBC: Handle 500 "error" on archive page (#9003) * SMBC: Handle 500 "error" on archive page * Update based on code review * Update based on code review --- src/en/hiveworks/build.gradle | 2 +- .../extension/en/hiveworks/Hiveworks.kt | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/en/hiveworks/build.gradle b/src/en/hiveworks/build.gradle index f1914d7d4..163da2da3 100644 --- a/src/en/hiveworks/build.gradle +++ b/src/en/hiveworks/build.gradle @@ -1,7 +1,7 @@ ext { extName = 'Hiveworks Comics' extClass = '.Hiveworks' - extVersionCode = 9 + extVersionCode = 10 } apply from: "$rootDir/common.gradle" diff --git a/src/en/hiveworks/src/eu/kanade/tachiyomi/extension/en/hiveworks/Hiveworks.kt b/src/en/hiveworks/src/eu/kanade/tachiyomi/extension/en/hiveworks/Hiveworks.kt index 3b8e99ee7..cf3314237 100644 --- a/src/en/hiveworks/src/eu/kanade/tachiyomi/extension/en/hiveworks/Hiveworks.kt +++ b/src/en/hiveworks/src/eu/kanade/tachiyomi/extension/en/hiveworks/Hiveworks.kt @@ -39,6 +39,28 @@ class Hiveworks : ParsedHttpSource() { .readTimeout(1, TimeUnit.MINUTES) .retryOnConnectionFailure(true) .followRedirects(true) + .addNetworkInterceptor { chain -> + val request = chain.request() + if (!request.url.toString().contains("smbc-comics")) { + return@addNetworkInterceptor chain.proceed(request) + } + + val response = chain.proceed(request) + // As of March 2025, SMBC chapter list page returns status code 500 even + // though it still has correct data. Do not throw an error in this case. + // + // I reported this error to SMBC on 2025-05-28 and it was not fixed by + // 2025-06-11, but even if it is fixed eventually, the same problem might + // occur again in the future. + if (response.code == 500) { + val newResponse = response.newBuilder() + .code(200) + .build() + newResponse + } else { + response + } + } .build() // Popular