Selaa lähdekoodia

when counting the visit send only the useragent string instead of the whole header

Pouria Ezzati 1 vuosi sitten
vanhempi
säilyke
5cf6e88a4d
2 muutettua tiedostoa jossa 7 lisäystä ja 4 poistoa
  1. 2 2
      server/handlers/links.handler.js
  2. 5 2
      server/queues/visit.js

+ 2 - 2
server/handlers/links.handler.js

@@ -385,7 +385,7 @@ async function redirect(req, res, next) {
   const isBot = isbot(req.headers["user-agent"]);
   if (link.user_id && !isBot) {
     queue.visit.add({
-      headers: req.headers,
+      userAgent: req.headers["user-agent"],
       realIP: req.realIP,
       referrer: req.get("Referrer"),
       link
@@ -416,7 +416,7 @@ async function redirectProtected(req, res) {
   // 4. Create visit
   if (link.user_id) {
     queue.visit.add({
-      headers: req.headers,
+      userAgent: req.headers["user-agent"],
       realIP: req.realIP,
       referrer: req.get("Referrer"),
       link

+ 5 - 2
server/queues/visit.js

@@ -24,9 +24,12 @@ module.exports = function({ data }) {
   const tasks = [];
   
   tasks.push(query.link.incrementVisit({ id:  data.link.id }));
-
+  
   if (data.link.visit_count < getStatsLimit()) {
-    const agent = useragent.parse(data.headers["user-agent"]);
+    // the following line is for backward compatibility
+    // used to send the whole header to get the user agent
+    const userAgent = data.userAgent || data.headers?.["user-agent"];
+    const agent = useragent.parse(userAgent);
     const [browser = "Other"] = browsersList.filter(filterInBrowser(agent));
     const [os = "Other"] = osList.filter(filterInOs(agent));
     const referrer =