Explorar el Código

first tracking work

tags/v0.3.2.12
Big Bad Waffle hace 4 años
padre
commit
3e49ac6225
Se han modificado 6 ficheros con 92 adiciones y 4 borrados
  1. +3
    -0
      src/server/components/auth.js
  2. +12
    -0
      src/server/components/stats.js
  3. +28
    -3
      src/server/package-lock.json
  4. +2
    -1
      src/server/package.json
  5. +34
    -0
      src/server/security/ga.js
  6. +13
    -0
      src/server/world/atlas.js

+ 3
- 0
src/server/components/auth.js Ver fichero

@@ -8,6 +8,7 @@ let loginRewards = require('../config/loginRewards');
let mail = require('../mail/mail');
let scheduler = require('../misc/scheduler');
let spirits = require('../config/spirits');
let ga = require('../security/ga');

module.exports = {
type: 'auth',
@@ -285,6 +286,8 @@ module.exports = {
this.username = msg.data.username;
cons.logOut(this.obj);

this.gaTracker = ga.connect(this.username);

await this.getSkins();

this.accountInfo = await io.getAsync({


+ 12
- 0
src/server/components/stats.js Ver fichero

@@ -333,6 +333,18 @@ module.exports = {
},

kill: function (target) {
//Analytics Tracking
process.send({
method: 'track',
serverId: this.obj.serverId,
obj: {
category: 'combat',
action: 'kill',
label: target.name,
value: 1
}
});

if (target.player)
return;



+ 28
- 3
src/server/package-lock.json Ver fichero

@@ -976,9 +976,9 @@
}
},
"lodash": {
"version": "4.17.11",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
"integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
"version": "4.17.15",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
"integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
},
"lodash.noop": {
"version": "3.0.1",
@@ -1869,6 +1869,31 @@
}
}
},
"universal-analytics": {
"version": "0.4.20",
"resolved": "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.20.tgz",
"integrity": "sha512-gE91dtMvNkjO+kWsPstHRtSwHXz0l2axqptGYp5ceg4MsuurloM0PU3pdOfpb5zBXUvyjT4PwhWK2m39uczZuw==",
"requires": {
"debug": "^3.0.0",
"request": "^2.88.0",
"uuid": "^3.0.0"
},
"dependencies": {
"debug": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"requires": {
"ms": "^2.1.1"
}
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}
}
},
"unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",


+ 2
- 1
src/server/package.json Ver fichero

@@ -11,7 +11,8 @@
"less-middleware": "^3.1.0",
"rethinkdb": "^2.3.3",
"socket.io": "^2.2.0",
"sqlite3": "^4.0.6"
"sqlite3": "^4.0.6",
"universal-analytics": "^0.4.20"
},
"devDependencies": {}
}

+ 34
- 0
src/server/security/ga.js Ver fichero

@@ -0,0 +1,34 @@
const ua = require('universal-analytics');

//eslint-disable-next-line no-process-env
const analyticsId = process.env.ISLEWARD_GOOGLE_ANALYTICS_ID;

const tracker = {
id: null,
ga: null,

init: function (userId) {
this.id = userId;
this.ga = ua(analyticsId, userId, { strictCidFormat: false });
},

track: function ({ category, action, label, value }) {
this.ga.event(category, action, label, value).send();
}
};

const fakeTracker = {
track: function () {}
};

module.exports = {
connect: function (id) {
if (!analyticsId)
return fakeTracker;

const builtTracker = extend({}, tracker);
builtTracker.init(id);

return builtTracker;
}
};

+ 13
- 0
src/server/world/atlas.js Ver fichero

@@ -161,15 +161,27 @@ module.exports = {
}
});
},

event: function (thread, message) {
objects.sendEvent(message);
},

events: function (thread, message) {
objects.sendEvents(message);
},

object: function (thread, message) {
objects.updateObject(message);
},

track: function (thread, message) {
let player = objects.objects.find(o => o.id === message.serverId);
if (!player)
return;

player.auth.gaTracker.track(message.obj);
},

callDifferentThread: function (thread, message) {
let obj = connections.players.find(p => (p.name === message.playerName));
if (!obj)
@@ -184,6 +196,7 @@ module.exports = {
args: message.data.args
});
},

rezone: function (thread, message) {
let obj = message.args.obj;
obj.destroyed = false;


Cargando…
Cancelar
Guardar