From d588ced2efd2742b846d94c78915bf6d33588595 Mon Sep 17 00:00:00 2001 From: vladmandic Date: Tue, 17 Mar 2026 11:52:53 +0100 Subject: [PATCH] fix rate limiter Signed-off-by: vladmandic --- modules/api/validate.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/api/validate.py b/modules/api/validate.py index 054d8f18a..dab0b6bfa 100644 --- a/modules/api/validate.py +++ b/modules/api/validate.py @@ -28,15 +28,15 @@ class Limiter(): if v > 1: log.trace(f'API stats: {k}={v}') - def check(self, key, quiet: bool = False): + def check(self, client: str, api: str, quiet: bool = False): if self.limit <= 0: return True - cost = request_cost.get(key, 1) - status = self.strategy.hit(self.limiter, key, cost=cost) + cost = request_cost.get(api, 1) + status = self.strategy.hit(self.limiter, client, api, cost=cost) if not status and not quiet: - log.warning(f'API: key={key} rate limit exceeded') + log.warning(f'API: client={client} api={api} rate limit exceeded') from fastapi.exceptions import HTTPException - raise HTTPException(status_code=429, detail=f"{key}: rate limit exceeded") + raise HTTPException(status_code=429, detail=f"{client}:{api}: rate limit exceeded") return status @@ -57,4 +57,4 @@ def validate_request(client, endpoint): if key not in limiter.summary: limiter.summary[key] = 0 limiter.summary[key] += 1 - return limiter.check(key) + return limiter.check(client, api)