summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschneefux <schneefux+commit@schneefux.xyz>2017-08-08 16:09:33 +0200
committerschneefux <schneefux+commit@schneefux.xyz>2017-08-08 16:09:33 +0200
commit053a2a3f09d24784223ef8c7e8aea812df512518 (patch)
treee9a97edc6da4327d07b5bf77d255563a04c6bb22
parent02271d6d72e711201a7a3295a2b28d6427badbb5 (diff)
downloadtelesucker-release/2.16.0.tar.gz
telesucker-release/2.16.0.zip
optimize game phase split, comparing strings instead of datesrelease/2.16.0
-rw-r--r--worker.js36
1 files changed, 20 insertions, 16 deletions
diff --git a/worker.js b/worker.js
index 98c6585..a6cd6d9 100644
--- a/worker.js
+++ b/worker.js
@@ -72,23 +72,27 @@ amqp.connect(RABBITMQ_URI).then(async (rabbit) => {
spawn_time = moment(spawn.time);
const forward_profiler = logger.startTimer();
+
// return telemetry { m_a_id, data, start, end } in an interval
- const gamePhase = (start, end) => { return {
- match_api_id: match_api_id,
- data: telemetry.slice(
- // assumes Telemetry is ordered by timestamp.
- telemetry.findIndex((ev) =>
- moment(ev.time).isSameOrAfter(
- spawn_time.clone().add(start, "seconds")
- ) ),
- telemetry.findIndex((ev) =>
- moment(ev.time).isSameOrAfter(
- spawn_time.clone().add(end, "seconds")
- ) ) // slice does not include end
- ),
- start: start,
- match_start: spawn.time,
- end: end
+ const gamePhase = (start, end) => {
+ let spawn_plus_start = spawn_time.clone()
+ .add(start, "seconds")
+ .format("YYYY-MM-DDTHH:mm:ss") + "+0000",
+ spawn_plus_end = spawn_time.clone()
+ .add(end, "seconds")
+ .format("YYYY-MM-DDTHH:mm:ss") + "+0000";
+ return {
+ match_api_id: match_api_id,
+ data: telemetry.slice(
+ // assumes Telemetry is ordered by timestamp,
+ // assumes it uses the format as above
+ telemetry.findIndex((ev) => !(ev.time<spawn_plus_start)),
+ telemetry.findIndex((ev) => !(ev.time<spawn_plus_end))
+ // slice does not include end
+ ),
+ start: start,
+ match_start: spawn.time,
+ end: end
} };
// split into phases
const phases = [