pull the rate limit interceptors from the extensions repo (#5163)

apply a rate limit to anilist, current limit is 90 per minute
This commit is contained in:
Gauthier
2021-05-24 23:29:20 +08:00
committed by GitHub
parent 3b49289cfb
commit e57a999c9c
3 changed files with 130 additions and 1 deletions

View File

@@ -8,6 +8,7 @@ import com.afollestad.date.year
import eu.kanade.tachiyomi.data.database.models.Track
import eu.kanade.tachiyomi.data.track.model.TrackSearch
import eu.kanade.tachiyomi.network.POST
import eu.kanade.tachiyomi.network.RateLimitInterceptor
import eu.kanade.tachiyomi.network.await
import eu.kanade.tachiyomi.network.jsonMime
import eu.kanade.tachiyomi.network.parseAs
@@ -27,10 +28,14 @@ import kotlinx.serialization.json.putJsonObject
import okhttp3.OkHttpClient
import okhttp3.RequestBody.Companion.toRequestBody
import java.util.Calendar
import java.util.concurrent.TimeUnit.MINUTES
class AnilistApi(val client: OkHttpClient, interceptor: AnilistInterceptor) {
private val authClient = client.newBuilder().addInterceptor(interceptor).build()
private val authClient = client.newBuilder()
.addInterceptor(interceptor)
.addInterceptor(RateLimitInterceptor(85, 1, MINUTES))
.build()
suspend fun addLibManga(track: Track): Track {
return withIOContext {