Update server.js
Browse files
server.js
CHANGED
@@ -11,25 +11,29 @@ let requestDetails = []; // Store details of each request
|
|
11 |
let ipRequestCounts = {}; // Dictionary to keep track of requests per IP
|
12 |
|
13 |
app.use('/api', (req, res, next) => {
|
14 |
-
|
15 |
-
|
|
|
|
|
16 |
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
|
22 |
-
|
23 |
-
|
|
|
24 |
|
25 |
-
//
|
26 |
const timestamp = new Date().toISOString();
|
27 |
const requestData = {
|
28 |
-
requestNumber: ipRequestCounts[
|
29 |
-
ip:
|
30 |
timestamp: timestamp,
|
31 |
text: req.method + ' ' + req.url
|
32 |
};
|
|
|
33 |
requestDetails.push(requestData);
|
34 |
console.log(`Request ${requestData.requestNumber} on ${requestData.timestamp} from IP ${requestData.ip} with method "${req.method}" and text "${requestData.text}"`);
|
35 |
|
|
|
11 |
let ipRequestCounts = {}; // Dictionary to keep track of requests per IP
|
12 |
|
13 |
app.use('/api', (req, res, next) => {
|
14 |
+
// Check if the request is specifically for POST /v1/chat/completions
|
15 |
+
if (req.method === 'POST' && req.url === '/v1/chat/completions') {
|
16 |
+
const ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
|
17 |
+
const currentCount = ipRequestCounts[ip] || 0;
|
18 |
|
19 |
+
if (currentCount >= 10) {
|
20 |
+
// When the limit is reached, return a 429 status
|
21 |
+
return res.status(429).send('You have reached the 10 message limit. Contact me on reddit for more.');
|
22 |
+
}
|
23 |
|
24 |
+
// Increment the count only if the condition is true
|
25 |
+
ipRequestCounts[ip] = currentCount + 1;
|
26 |
+
}
|
27 |
|
28 |
+
// Proceed with logging request details regardless of the endpoint
|
29 |
const timestamp = new Date().toISOString();
|
30 |
const requestData = {
|
31 |
+
requestNumber: ipRequestCounts[req.connection.remoteAddress] || 0, // Update to show request count
|
32 |
+
ip: req.connection.remoteAddress,
|
33 |
timestamp: timestamp,
|
34 |
text: req.method + ' ' + req.url
|
35 |
};
|
36 |
+
|
37 |
requestDetails.push(requestData);
|
38 |
console.log(`Request ${requestData.requestNumber} on ${requestData.timestamp} from IP ${requestData.ip} with method "${req.method}" and text "${requestData.text}"`);
|
39 |
|