summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschneefux <schneefux+commit@schneefux.xyz>2017-06-12 16:52:46 +0200
committerschneefux <schneefux+commit@schneefux.xyz>2017-06-12 16:52:46 +0200
commitb29a8f3812de56beb804b8529162034c2db7c60c (patch)
treec5cad608dbb7ea509d3797d2cdb879c268b912df
parent9a3929c7f0f8aa3090ecfcd1cc017af7d7f4d078 (diff)
downloadbridge-b29a8f3812de56beb804b8529162034c2db7c60c.tar.gz
bridge-b29a8f3812de56beb804b8529162034c2db7c60c.zip
call API in distances of 2w
-rw-r--r--server.js56
1 files changed, 37 insertions, 19 deletions
diff --git a/server.js b/server.js
index f43e418..1d3f200 100644
--- a/server.js
+++ b/server.js
@@ -22,7 +22,7 @@ const DATABASE_URI = process.env.DATABASE_URI,
REGIONS = (process.env.REGIONS || "na,eu,sg,sa,ea").split(","),
TOURNAMENT_REGIONS = (process.env.TOURNAMENT_REGIONS || "tournament-na," +
"tournament-eu,tournament-sg,tournament-sa,tournament-ea").split(","),
- GRABSTART = process.env.GRABSTART || "2017-01-01T00:00:00Z",
+ GRABSTART = process.env.GRABSTART || "2017-02-14T00:00:00Z",
BRAWL_RETENTION_DAYS = parseInt(process.env.BRAWL_RETENTION_DAYS) || 3,
PLAYER_PROCESS_QUEUE = process.env.PLAYER_PROCESS_QUEUE || "process",
GRAB_QUEUE = process.env.GRAB_QUEUE || "grab",
@@ -126,26 +126,44 @@ function crunchQueueForCategory(category) {
// request grab jobs for a player's matches
async function grabPlayer(name, region, last_match_created_date, id, category) {
- const payload = {
- "region": region,
- "params": {
- "filter[playerIds]": id,
- "filter[createdAt-start]": last_match_created_date, // ISO8601 string
- "filter[gameMode]": gameModesForCategory(category),
- "sort": "createdAt"
- }
- };
- logger.info("requesting update", { name: name, region: region });
+ const start = new Date(Date.parse(last_match_created_date)),
+ end = new Date(); // today
+ let part_start = start,
+ part_end = start;
- await ch.sendToQueue(grabQueueForCategory(category),
- new Buffer(JSON.stringify(payload)), {
- persistent: true,
- type: "matches",
- headers: { notify: "player." + name }
- });
+ // loop from lmcd forwards, adding 2w until we passed NOW
+ while (part_start < end) {
+ part_end = new Date(part_end.getTime() + (2 * 60*60*24*7*1000)); // add 2w
+ const payload = {
+ "region": region,
+ "params": {
+ "filter[playerIds]": id,
+ "filter[createdAt-start]": part_start.toISOString(),
+ "filter[createdAt-end]": part_end.toISOString(),
+ "filter[gameMode]": gameModesForCategory(category),
+ "sort": "createdAt"
+ }
+ };
+ logger.info("requesting update", {
+ name: name,
+ region: region,
+ start: part_start,
+ end: part_end
+ });
+
+ await ch.sendToQueue(grabQueueForCategory(category),
+ new Buffer(JSON.stringify(payload)), {
+ persistent: true,
+ type: "matches",
+ headers: { notify: "player." + name }
+ });
+
+ part_start = part_end;
+ }
}
// request grab job for multiple players' matches
async function grabPlayers(names, region, grabstart, category) {
+ // TODO MadGlory change, call API in 2w distances
const payload = {
"region": region,
"params": {
@@ -270,7 +288,7 @@ function defaultGrabstartForCategory(category) {
return past.toISOString(); // minimum
}
if (category == "tournament")
- return "2017-01-01T00:00:00Z"; // all
+ return "2017-02-12T00:00:00Z"; // all
if (category == "regular")
return GRABSTART; // as via env var
}
@@ -282,7 +300,7 @@ async function updatePlayer(player, category) {
// if last_update is null, we need that player's full history
let grabstart;
if (player.get("last_update") != null)
- grabstart = player.get("created_at"); // TODO add 1s here!!!
+ grabstart = player.get("created_at");
if (grabstart == undefined) grabstart = defaultGrabstartForCategory(category);
else
// add 1s, because createdAt-start <= x <= createdAt-end