Преглед на файлове

use cf-ipcountry header for country and use geoip-lite as a backup method

Pouria Ezzati преди 1 година
родител
ревизия
d7ad5062f7
променени са 2 файла, в които са добавени 4 реда и са изтрити 3 реда
  1. 2 0
      server/handlers/links.handler.js
  2. 2 3
      server/queues/visit.js

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

@@ -525,6 +525,7 @@ async function redirect(req, res, next) {
     queue.visit.add({
       userAgent: req.headers["user-agent"],
       ip: req.ip,
+      country: req.get("cf-ipcountry"),
       referrer: req.get("Referrer"),
       link
     });
@@ -556,6 +557,7 @@ async function redirectProtected(req, res) {
     queue.visit.add({
       userAgent: req.headers["user-agent"],
       ip: req.ip,
+      country: req.get("cf-ipcountry"),
       referrer: req.get("Referrer"),
       link
     });

+ 2 - 3
server/queues/visit.js

@@ -33,10 +33,9 @@ module.exports = function({ data }) {
   const [os = "Other"] = osList.filter(filterInOs(agent));
   const referrer =
   data.referrer && removeWww(URL.parse(data.referrer).hostname);
-  const location = geoip.lookup(data.ip);
-  const country = location && location.country;
-
   
+  const country = data.country || geoip.lookup(data.ip)?.country;
+
   tasks.push(
     query.visit.add({
       browser: browser.toLowerCase(),