chore: fix rate limiting

This commit is contained in:
Rim 2025-04-12 03:17:49 -04:00
parent 305ae6a35e
commit 0ad86e5208

9
app.js
View File

@ -50,7 +50,7 @@ setInterval(() => demoModeRequestTracker.cleanupExpiredEntries(), 3600000); // C
// Configure rate limiting for demo mode
const demoModeRequestTracker = {
requests: new Map(),
maxRequestsPerHour: 5, // Adjust as needed
maxRequestsPerHour: 20, // Adjust as needed
resetInterval: 60 * 60 * 1000, // 1 hour in milliseconds
isLimited: function (ip) {
@ -1223,6 +1223,11 @@ function storeLogInDatabase(logData) {
*/
app.get('/health', (req, res) => {
const clientIP =
req.headers['cf-connecting-ip'] ||
req.headers['x-forwarded-for']?.split(',')[0] ||
req.ip ||
req.connection.remoteAddress;
// Check if demo mode is forced via URL parameter
const forceDemoMode = req.session && req.session.forceDemoMode === true;
@ -1234,7 +1239,7 @@ app.get('/health', (req, res) => {
requestsRemaining:
isDemoMode ?
demoModeRequestTracker.maxRequestsPerHour -
(demoModeRequestTracker.requests.get(req.ip)?.count || 0)
(demoModeRequestTracker.requests.get(clientIP)?.count || 0)
: null,
});
});