summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/RateLimiterService.ts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-07-21 20:36:07 +0900
committerGitHub <noreply@github.com>2023-07-21 20:36:07 +0900
commite64a81aa1d2801516e8eac8dc69aac540489f20b (patch)
tree56accbc0f5f71db864e1e975920135fb0a957291 /packages/backend/src/server/api/RateLimiterService.ts
parentMerge pull request #10990 from misskey-dev/develop (diff)
parentNew Crowdin updates (#11336) (diff)
downloadmisskey-e64a81aa1d2801516e8eac8dc69aac540489f20b.tar.gz
misskey-e64a81aa1d2801516e8eac8dc69aac540489f20b.tar.bz2
misskey-e64a81aa1d2801516e8eac8dc69aac540489f20b.zip
Merge pull request #11301 from misskey-dev/develop
Release: 13.14.0
Diffstat (limited to 'packages/backend/src/server/api/RateLimiterService.ts')
-rw-r--r--packages/backend/src/server/api/RateLimiterService.ts20
1 files changed, 10 insertions, 10 deletions
diff --git a/packages/backend/src/server/api/RateLimiterService.ts b/packages/backend/src/server/api/RateLimiterService.ts
index fe2db1d66a..f6ffbfab50 100644
--- a/packages/backend/src/server/api/RateLimiterService.ts
+++ b/packages/backend/src/server/api/RateLimiterService.ts
@@ -38,14 +38,14 @@ export class RateLimiterService {
max: 1,
db: this.redisClient,
});
-
+
minIntervalLimiter.get((err, info) => {
if (err) {
return reject('ERR');
}
-
+
this.logger.debug(`${actor} ${limitation.key} min remaining: ${info.remaining}`);
-
+
if (info.remaining === 0) {
reject('BRIEF_REQUEST_INTERVAL');
} else {
@@ -57,7 +57,7 @@ export class RateLimiterService {
}
});
};
-
+
// Long term limit
const max = (): void => {
const limiter = new Limiter({
@@ -66,14 +66,14 @@ export class RateLimiterService {
max: limitation.max! / factor,
db: this.redisClient,
});
-
+
limiter.get((err, info) => {
if (err) {
return reject('ERR');
}
-
+
this.logger.debug(`${actor} ${limitation.key} max remaining: ${info.remaining}`);
-
+
if (info.remaining === 0) {
reject('RATE_LIMIT_EXCEEDED');
} else {
@@ -81,13 +81,13 @@ export class RateLimiterService {
}
});
};
-
+
const hasShortTermLimit = typeof limitation.minInterval === 'number';
-
+
const hasLongTermLimit =
typeof limitation.duration === 'number' &&
typeof limitation.max === 'number';
-
+
if (hasShortTermLimit) {
min();
} else if (hasLongTermLimit) {