Shinigami (id): fix blocked by cloudflare/bad browser (#18635)

- add some rate limit
- add random value header
Closes #18435
Closes #18506
This commit is contained in:
Luqman 2023-10-21 08:19:15 +07:00 committed by GitHub
parent 1180e8349d
commit f392a3eb16
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 2 deletions

View File

@ -1,15 +1,38 @@
package eu.kanade.tachiyomi.extension.id.shinigami package eu.kanade.tachiyomi.extension.id.shinigami
import eu.kanade.tachiyomi.multisrc.madara.Madara import eu.kanade.tachiyomi.multisrc.madara.Madara
import eu.kanade.tachiyomi.network.interceptor.rateLimit
import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapter
import okhttp3.Headers
import okhttp3.HttpUrl.Companion.toHttpUrl import okhttp3.HttpUrl.Companion.toHttpUrl
import okhttp3.OkHttpClient
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
import java.util.concurrent.TimeUnit
import kotlin.random.Random
class Shinigami : Madara("Shinigami", "https://shinigami.sh", "id") { class Shinigami : Madara("Shinigami", "https://shinigami.sh", "id") {
// moved from Reaper Scans (id) to Shinigami (id) // moved from Reaper Scans (id) to Shinigami (id)
override val id = 3411809758861089969 override val id = 3411809758861089969
override val mangaSubString = "series" override val client: OkHttpClient = super.client.newBuilder()
.rateLimit(5, 1, TimeUnit.SECONDS)
.build()
override fun headersBuilder(): Headers.Builder = super.headersBuilder()
.add("X-Requested-With", randomString)
private fun generateRandomString(length: Int): String {
val charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ.abcdefghijklmnopqrstuvwxyz.0123456789"
return (1..length)
.map { charset.random() }
.joinToString("")
}
private val randomLength = Random.Default.nextInt(13, 21)
private val randomString = generateRandomString(randomLength)
override val mangaSubString = "semua-series"
// Tags are useless as they are just SEO keywords. // Tags are useless as they are just SEO keywords.
override val mangaDetailsSelectorTag = "" override val mangaDetailsSelectorTag = ""

View File

@ -442,7 +442,7 @@ class MadaraGenerator : ThemeSourceGenerator {
SingleLang("Shiba Manga", "https://shibamanga.com", "en"), SingleLang("Shiba Manga", "https://shibamanga.com", "en"),
SingleLang("Shield Manga", "https://shieldmanga.io", "en", overrideVersionCode = 3), SingleLang("Shield Manga", "https://shieldmanga.io", "en", overrideVersionCode = 3),
SingleLang("Shimada Scans", "https://shimadascans.com", "en"), SingleLang("Shimada Scans", "https://shimadascans.com", "en"),
SingleLang("Shinigami", "https://shinigami.sh", "id", overrideVersionCode = 3), SingleLang("Shinigami", "https://shinigami.sh", "id", overrideVersionCode = 4),
SingleLang("Shooting Star Scans", "https://shootingstarscans.com", "en"), SingleLang("Shooting Star Scans", "https://shootingstarscans.com", "en"),
SingleLang("ShoujoHearts", "https://shoujohearts.com", "en", overrideVersionCode = 2), SingleLang("ShoujoHearts", "https://shoujohearts.com", "en", overrideVersionCode = 2),
SingleLang("Sinensis Scan", "https://sinensisscan.net", "pt-BR", pkgName = "sinensis", overrideVersionCode = 6), SingleLang("Sinensis Scan", "https://sinensisscan.net", "pt-BR", pkgName = "sinensis", overrideVersionCode = 6),