summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschneefux <schneefux+commit@schneefux.xyz>2017-04-18 17:24:02 +0200
committerschneefux <schneefux+commit@schneefux.xyz>2017-04-18 17:24:02 +0200
commit2ab4a001b4244cc77d6f7bdaaa6895e82044cc24 (patch)
tree8510906ffbe2952d2ff446b22a6d21fa70ff8cc3
parent26d72ee19e47b15242f79d3d7bcd60cf8539c0cd (diff)
downloadcruncher-2ab4a001b4244cc77d6f7bdaaa6895e82044cc24.tar.gz
cruncher-2ab4a001b4244cc77d6f7bdaaa6895e82044cc24.zip
syntax improvements
-rw-r--r--worker.js29
1 files changed, 15 insertions, 14 deletions
diff --git a/worker.js b/worker.js
index 2f95160..d2d497e 100644
--- a/worker.js
+++ b/worker.js
@@ -2,12 +2,12 @@
/* jshint esnext:true */
"use strict";
-var amqp = require("amqplib"),
+const amqp = require("amqplib"),
Seq = require("sequelize"),
sleep = require("sleep-promise"),
hash = require("object-hash");
-var RABBITMQ_URI = process.env.RABBITMQ_URI,
+const RABBITMQ_URI = process.env.RABBITMQ_URI,
DATABASE_URI = process.env.DATABASE_URI,
CRUNCHERS = process.env.CRUNCHERS || 4; // how many players to crunch concurrently
@@ -50,7 +50,7 @@ var RABBITMQ_URI = process.env.RABBITMQ_URI,
);
return cache;
}
- let player_dimensions = await dimensions_for(
+ const player_dimensions = await dimensions_for(
[model.Series, model.Filter, model.Hero, model.Role,
model.GameMode]),
global_dimensions = await dimensions_for(
@@ -109,7 +109,7 @@ var RABBITMQ_URI = process.env.RABBITMQ_URI,
// SAW x ranked x …
// …
// Vox x ANY x …
- let player_points = calculate_point(cartesian(player_dimensions),
+ const player_points = calculate_point(cartesian(player_dimensions),
"player"),
global_points = calculate_point(cartesian(global_dimensions),
"global");
@@ -125,12 +125,12 @@ var RABBITMQ_URI = process.env.RABBITMQ_URI,
msg.properties.type, player_id);
if (msg.properties.type == "global") {
- let records = await calculate_global_point();
+ const records = await calculate_global_point();
if (records != undefined)
global_records = global_records.concat(records);
}
if (msg.properties.type == "player") {
- let records = await calculate_player_point(player_id);
+ const records = await calculate_player_point(player_id);
if (records != undefined)
player_records = player_records.concat(records);
}
@@ -158,7 +158,7 @@ var RABBITMQ_URI = process.env.RABBITMQ_URI,
}
if (player_records.length > 0) {
- let player = await model.Player.findOne({
+ const player = await model.Player.findOne({
where: { api_id: player_id },
attributes: ["name"]
});
@@ -177,7 +177,7 @@ var RABBITMQ_URI = process.env.RABBITMQ_URI,
console.log("crunching global stats, this could take a while");
await Promise.all(global_points.map(async (tuple) => {
- let where_aggr = tuple[0],
+ const where_aggr = tuple[0],
where_links = tuple[1];
// aggregate participant_stats with our condition
let stats = await aggregate_stats(where_aggr);
@@ -196,10 +196,11 @@ var RABBITMQ_URI = process.env.RABBITMQ_URI,
console.log("crunching player", player_api_id);
await Promise.all(player_points.map(async (tuple) => {
- let where_aggr = tuple[0],
+ const where_aggr = tuple[0],
where_links = tuple[1];
// make it player specific
where_aggr["$participant.player_api_id$"] = player_api_id;
+ where_aggr["final"] = true; // only end of match stats
where_links["player_api_id"] = player_api_id;
// aggregate participant_stats with our condition
let stats = await aggregate_stats(where_aggr);
@@ -215,13 +216,13 @@ var RABBITMQ_URI = process.env.RABBITMQ_URI,
// return aggregated stats based on $where as WHERE clauses
async function aggregate_stats(where) {
// in literals: q -> column name, e -> function or string
- let q = (qry) => seq.dialect.QueryGenerator.quote(qry),
+ const q = (qry) => seq.dialect.QueryGenerator.quote(qry),
e = (qry) => seq.dialect.QueryGenerator.escape(qry);
// alternative for win rate
//[ seq.literal(`${e(seq.fn("sum", seq.cast(seq.col("participant.winner"), "int") ))} / ${e(seq.fn("count", seq.col("participant.id")))}`), "win_rate" ]
- let associations = [ {
+ const associations = [ {
model: model.Participant,
as: "participant",
attributes: [],
@@ -251,16 +252,16 @@ var RABBITMQ_URI = process.env.RABBITMQ_URI,
} ]
} ];
- let played = await model.ParticipantStats.count({
+ const played = await model.ParticipantStats.count({
where: where,
include: associations
});
if (played == 0) return undefined; // not enough data
// short to sum a participant row as player stat with the same name
- let sum = (name) => [ seq.fn("sum", seq.col("participant_stats." + name)), name ];
+ const sum = (name) => [ seq.fn("sum", seq.col("participant_stats." + name)), name ];
- let data = await model.ParticipantStats.findOne({
+ const data = await model.ParticipantStats.findOne({
where: where,
attributes: [
[ seq.fn("count", seq.col("participant.id")), "played" ],