Ayeantics commited on
Commit
38265f9
·
verified ·
1 Parent(s): 53c2e96

Update server.js

Browse files
Files changed (1) hide show
  1. server.js +15 -11
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
- const ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
15
- const currentCount = ipRequestCounts[ip] || 0;
 
 
16
 
17
- if (currentCount >= 10) {
18
- // Send a more generic message without mentioning IP-based limitation
19
- return res.status(429).send('You reached 10 message limit. Contact me on reddit for more.');
20
- }
21
 
22
- // Increment request counter for the IP
23
- ipRequestCounts[ip] = currentCount + 1;
 
24
 
25
- // Log request with timestamp
26
  const timestamp = new Date().toISOString();
27
  const requestData = {
28
- requestNumber: ipRequestCounts[ip],
29
- ip: 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