mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-14 21:27:23 +01:00
use ip-lookup-api to determine users country
This commit is contained in:
@@ -2,6 +2,8 @@
|
||||
import nconf from 'nconf';
|
||||
import Amplitude from 'amplitude';
|
||||
import useragent from 'useragent';
|
||||
import { lookup } from 'ip-location-api'
|
||||
import { createHash } from 'crypto';
|
||||
import {
|
||||
omit,
|
||||
toArray,
|
||||
@@ -56,7 +58,7 @@ function _lookUpItemName (itemKey) {
|
||||
return itemName;
|
||||
}
|
||||
|
||||
function _formatUserData (user) {
|
||||
function _formatUserData (user, ipaddress) {
|
||||
const properties = {};
|
||||
|
||||
if (user.stats) {
|
||||
@@ -103,6 +105,12 @@ function _formatUserData (user) {
|
||||
properties.loginIncentives = user.loginIncentives;
|
||||
}
|
||||
|
||||
if (ipaddress) {
|
||||
const location = lookup(ipaddress);
|
||||
properties.country = location.country;
|
||||
properties.region = location.region1;
|
||||
}
|
||||
|
||||
return properties;
|
||||
}
|
||||
|
||||
@@ -156,7 +164,7 @@ function _formatDataForAmplitude (data) {
|
||||
};
|
||||
|
||||
if (data.user) {
|
||||
ampData.user_properties = _formatUserData(data.user);
|
||||
ampData.user_properties = _formatUserData(data.user, data.ipaddress);
|
||||
}
|
||||
|
||||
const itemName = _lookUpItemName(data.itemKey);
|
||||
@@ -260,7 +268,7 @@ async function updateUserData (data) {
|
||||
return null;
|
||||
}
|
||||
const toUpdate = {
|
||||
..._formatUserData(user),
|
||||
..._formatUserData(user, data.ipaddress),
|
||||
...properties,
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user