Skip to content

Instantly share code, notes, and snippets.

@chapel
Created October 18, 2010 21:31
Show Gist options
  • Save chapel/633111 to your computer and use it in GitHub Desktop.
Save chapel/633111 to your computer and use it in GitHub Desktop.
function parseGame(page) {
var players = page.GameDetails.Players,
count = players.length,
gameId = page.GameDetails.GameId,
i = 0,
req = 'http://couchdb:5984/games/';
data = {"players": []};
data.date = new Date(parseInt(page.GameDetails.GameTimestamp.substr(6)));
console.log(count);
//players.some(function(player) {
for (var i = 0; i<players.length; i++) {
var gamertag = players[i].PlayerDetail.gamertag,
rating = players[i].Rating,
standing = players[i].IndividualStandingWithNoRegardForTeams;
getPlayer(gamertag, function(cur, past) {
data.players[i] = {"gamertag": gamertag, "rating": rating, "standing": standing, "curArenaDiv": cur.division, "curArenaPer": cur.division_percentile, "pastArenaDiv": past.division, "pastArenaPer": past.division_percentile};
if (i >= players.length) {
httpPut(req+gameId, JSON.stringify(data), function(ok) {
console.log('wrote '+gameId);
});
return true;
}
});
}
//});
}
function getPlayer(gamertag, cb) {
console.log('getPlayer');
var url = 'http://www.bungie.net/api/reach/reachapijson.svc/player/details/byplaylist/apikey/';
httpGet(url+gamertag, function(playerData) {
var cur = {"division": 0, "division_percentile": 0},
past = {"division": 0, "division_percentile": 0};
if (!playerData.CurrentSeasonArenaStatistics.division) cur.division = playerData.CurrentSeasonArenaStatistics[0].division;
else cur.division = playerData.CurrentSeasonArenaStatistics.division;
if (!playerData.CurrentSeasonArenaStatistics.division_percentile) cur.division_percentile = playerData.CurrentSeasonArenaStatistics[0].division_percentile;
else cur.division_percentile = playerData.CurrentSeasonArenaStatistics.division_percentile;
if (!cur.division_percentile) cur.division_percentile = 0;
if (playerData.PriorSeasonArenaStatistics.length == 0) past.division = 0, past.division_percentile = 0;
else {
if (!playerData.PriorSeasonArenaStatistics.division) past.division = playerData.PriorSeasonArenaStatistics[0].division;
else past.division = playerData.PriorSeasonArenaStatistics.division;
if (!playerData.PriorSeasonArenaStatistics.division_percentile) past.division_percentile = playerData.PriorSeasonArenaStatistics[0].division_percentile;
else past.division_percentile = playerData.PriorSeasonArenaStatistics.division_percentile;
if (!past.division_percentile) past.division_percentile = 0;
}
cb(cur, past);
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment