mirror of
https://github.com/ENSL/ensl_gathers.git
synced 2024-11-26 22:31:08 +00:00
Add stats wrapper
This commit is contained in:
parent
6e30e52ac2
commit
65e1efa3a5
2 changed files with 188 additions and 0 deletions
104
lib/hive/stats_wrapper.js
Normal file
104
lib/hive/stats_wrapper.js
Normal file
|
@ -0,0 +1,104 @@
|
|||
"use strict";
|
||||
|
||||
// UserStatistics constructor parses Hive 1 and Hive 2 responses into
|
||||
// unified statistical interface
|
||||
|
||||
// StatAttributes outlines required parameters and how to extract them
|
||||
// from V1 or V2 api responses. Also provides default value as fallback
|
||||
const StatAttributes = {
|
||||
steamId: {
|
||||
v1: "steamId",
|
||||
v2: "steamid",
|
||||
default: 0
|
||||
},
|
||||
assists: {
|
||||
v1: "assists",
|
||||
v2: null,
|
||||
default: 0
|
||||
},
|
||||
deaths: {
|
||||
v1: "deaths",
|
||||
v2: null,
|
||||
default: 0
|
||||
},
|
||||
kills: {
|
||||
v1: "kills",
|
||||
v2: null,
|
||||
default: 0
|
||||
},
|
||||
level: {
|
||||
v1: "level",
|
||||
v2: "level",
|
||||
default: 0
|
||||
},
|
||||
loses: {
|
||||
v1: "loses",
|
||||
v2: "loses",
|
||||
default: 0
|
||||
},
|
||||
playTime: {
|
||||
v1: "playTime",
|
||||
v2: "time_played",
|
||||
default: 0
|
||||
},
|
||||
score: {
|
||||
v1: "score",
|
||||
v2: "score",
|
||||
default: 0
|
||||
},
|
||||
wins: {
|
||||
v1: "wins",
|
||||
v2: null,
|
||||
default: 0
|
||||
},
|
||||
reinforcedTier: {
|
||||
v1: "reinforcedTier",
|
||||
v2: "reinforced_tier",
|
||||
default: null
|
||||
},
|
||||
badges: {
|
||||
v1: "badges",
|
||||
v2: "badges",
|
||||
default: []
|
||||
},
|
||||
skill: {
|
||||
v1: "skill",
|
||||
v2: "skill",
|
||||
default: 0
|
||||
},
|
||||
pid: {
|
||||
v1: null,
|
||||
v2: "pid",
|
||||
default: 0
|
||||
},
|
||||
"marine_playtime": {
|
||||
v1: null,
|
||||
v2: "marine_playtime",
|
||||
default: 0
|
||||
},
|
||||
"alien_playtime": {
|
||||
v1: null,
|
||||
v2: "alien_playtime",
|
||||
default: 0
|
||||
},
|
||||
"commander_time": {
|
||||
v1: null,
|
||||
v2: "commander_time",
|
||||
default: 0
|
||||
}
|
||||
};
|
||||
|
||||
function UserStatisticsWrapper (apiResponse) {
|
||||
for (let attr in StatAttributes) {
|
||||
let adapter = StatAttributes[attr];
|
||||
this[attr] = apiResponse[adapter.v1] ||
|
||||
apiResponse[adapter.v2] ||
|
||||
adapter.default;
|
||||
}
|
||||
// New skill type appears to be Number, revert to string for now
|
||||
if (typeof this["skill"] === "number") {
|
||||
this["skill"] = Math.round(this["skill"]).toString();
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = UserStatisticsWrapper;
|
84
lib/hive/user_stats.js
Normal file
84
lib/hive/user_stats.js
Normal file
|
@ -0,0 +1,84 @@
|
|||
"use strict";
|
||||
|
||||
// UserStatistics constructor parses Hive 1 and Hive 2 responses into
|
||||
// unified statistical interface
|
||||
|
||||
// StatAttributes outlines required parameters and how to extract them
|
||||
// from V1 or V2 api responses. Also provides default value as fallback
|
||||
const StatAttributes = {
|
||||
steamId: {
|
||||
v1: "steamId",
|
||||
v2: "steamid",
|
||||
default: 0
|
||||
},
|
||||
assists: {
|
||||
v1: "assists",
|
||||
v2: null,
|
||||
default: 0
|
||||
},
|
||||
deaths: {
|
||||
v1: "deaths",
|
||||
v2: null,
|
||||
default: 0
|
||||
},
|
||||
kills: {
|
||||
v1: "kills",
|
||||
v2: null,
|
||||
default: 0
|
||||
},
|
||||
level: {
|
||||
v1: "level",
|
||||
v2: "level",
|
||||
default: 0
|
||||
},
|
||||
loses: {
|
||||
v1: "loses",
|
||||
v2: "loses",
|
||||
default: 0
|
||||
},
|
||||
playTime: {
|
||||
v1: "playTime",
|
||||
v2: "time_played",
|
||||
default: 0
|
||||
},
|
||||
score: {
|
||||
v1: "score",
|
||||
v2: "score",
|
||||
default: 0
|
||||
},
|
||||
wins: {
|
||||
v1: "wins",
|
||||
v2: null,
|
||||
default: 0
|
||||
},
|
||||
reinforcedTier: {
|
||||
v1: "reinforcedTier",
|
||||
v2: "reinforced_tier",
|
||||
default: null
|
||||
},
|
||||
badges: {
|
||||
v1: "badges",
|
||||
v2: "badges",
|
||||
default: []
|
||||
},
|
||||
skill: {
|
||||
v1: "skill",
|
||||
v2: "skill",
|
||||
default: 0
|
||||
}
|
||||
};
|
||||
|
||||
function UserStatisticsWrapper (apiResponse) {
|
||||
for (let attr in StatAttributes) {
|
||||
let adapter = StatAttributes[attr];
|
||||
this[attr] = apiResponse[adapter.v1] ||
|
||||
apiResponse[adapter.v2] ||
|
||||
adapter.default;
|
||||
}
|
||||
// New skill type appears to be Number, revert to string for now
|
||||
if (typeof this["skill"] === "number") {
|
||||
this["skill"] = this["skill"].toString();
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = UserStatisticsWrapper;
|
Loading…
Reference in a new issue