diff --git a/src/config.ts b/src/config.ts index bbccfae..5a9fc4e 100644 --- a/src/config.ts +++ b/src/config.ts @@ -147,6 +147,7 @@ addDefaults(config, { disableOfflineQueue: true, weight: 1 }, + redisRateLimit: true, patreon: { clientId: "", clientSecret: "", diff --git a/src/middleware/requestRateLimit.ts b/src/middleware/requestRateLimit.ts index 27640c7..b9b8c79 100644 --- a/src/middleware/requestRateLimit.ts +++ b/src/middleware/requestRateLimit.ts @@ -32,7 +32,8 @@ export function rateLimitMiddleware(limitConfig: RateLimitConfig, getUserID?: (r } }, store: config.redis?.enabled ? new RedisStore({ - sendCommand: (...args: string[]) => redis.sendCommand(args).catch((err) => Logger.error(err)) as Promise, + sendCommand: (...args: string[]) => config.redisRateLimit ? redis.sendCommand(args).catch((err) => Logger.error(err)) as Promise + : Promise.resolve(null) as Promise, }) : null, }); } catch (e) { diff --git a/src/types/config.model.ts b/src/types/config.model.ts index c9ae96e..95ac440 100644 --- a/src/types/config.model.ts +++ b/src/types/config.model.ts @@ -67,6 +67,7 @@ export interface SBSConfig { maximumPrefix?: string; redis?: RedisConfig; redisRead?: RedisReadOnlyConfig; + redisRateLimit: boolean; maxRewardTimePerSegmentInSeconds?: number; postgres?: CustomPostgresConfig; postgresReadOnly?: CustomPostgresReadOnlyConfig;