isolate crosstable API rate limiter

pull/4274/head
Thibault Duplessis 2018-04-18 20:52:53 +02:00
parent 4d76940d39
commit decffb5f7e
1 changed files with 8 additions and 1 deletions

View File

@ -213,8 +213,15 @@ object Api extends LilaController {
}
}
private val CrosstableRateLimitPerIP = new lila.memo.RateLimit[IpAddress](
credits = 30,
duration = 10 minutes,
name = "crosstable API per IP",
key = "crosstable.api.ip"
)
def crosstable(u1: String, u2: String) = ApiRequest { implicit ctx =>
UserGamesRateLimit(cost = 200) {
CrosstableRateLimitPerIP(HTTPRequest lastRemoteAddress ctx.req, cost = 1) {
Env.game.crosstableApi(u1, u2, timeout = 15.seconds) map { ct =>
toApiResult {
ct map lila.game.JsonView.crosstableWrites.writes