TachiyomiSY-Plus/app/src/main/java/exh/eh/EHentaiThrottleManager.kt
2020-05-03 14:36:19 -04:00

36 lines
810 B
Kotlin

package exh.eh
class EHentaiThrottleManager(
private val max: Int = THROTTLE_MAX,
private val inc: Int = THROTTLE_INC
) {
private var lastThrottleTime: Long = 0
var throttleTime: Long = 0
private set
fun throttle() {
// Throttle requests if necessary
val now = System.currentTimeMillis()
val timeDiff = now - lastThrottleTime
if (timeDiff < throttleTime) {
Thread.sleep(throttleTime - timeDiff)
}
if (throttleTime < max) {
throttleTime += inc
}
lastThrottleTime = System.currentTimeMillis()
}
fun resetThrottle() {
lastThrottleTime = 0
throttleTime = 0
}
companion object {
const val THROTTLE_MAX = 5500
const val THROTTLE_INC = 20
}
}