65 lines
1.9 KiB
JavaScript
65 lines
1.9 KiB
JavaScript
define(['_'], function(_) {
|
|
var resultParser = {};
|
|
|
|
resultParser._addJSDateToResult = function(res){
|
|
var date = res.date.split('/');
|
|
var time = res.time.split(':');
|
|
res.jsDate = new Date(
|
|
Number(date[0]),
|
|
Number(date[1]) - 1,
|
|
Number(date[2]),
|
|
Number(time[0]),
|
|
Number(time[1])
|
|
);
|
|
return res;
|
|
};
|
|
|
|
resultParser.parseResults = function(rawResults){
|
|
rawResults = _.map(rawResults, resultParser._addJSDateToResult);
|
|
rawResults = _.map(rawResults, resultParser._addCustomStyle);
|
|
return rawResults;
|
|
};
|
|
|
|
resultParser.getNightGames = function(rawResults){
|
|
var ret = {};
|
|
_.each(resultParser.parseResults(rawResults), function(res){
|
|
if(_.has(ret, res.date)){
|
|
ret[res.date].push(res);
|
|
}else{
|
|
ret[res.date] = [res];
|
|
}
|
|
});
|
|
return _.map(ret, function(games, date){
|
|
return {date: date, games: games};
|
|
});
|
|
};
|
|
|
|
resultParser._getAllTeams = function(rawResults){
|
|
var homeTeams = _.map(rawResults, 'home');
|
|
var awayTeams = _.map(rawResults, 'away');
|
|
return _.uniq(_.concat(homeTeams, awayTeams));
|
|
};
|
|
|
|
|
|
|
|
resultParser._getTeamStats = function(rawResults, team){
|
|
var ret = {team: team, gamePlayed: 0};
|
|
_.each(rawResults, function(res){
|
|
if((team != res.home && team != res.away) || !_.isNumber(res.home_points)){
|
|
return;
|
|
}
|
|
ret.gamePlayed += 1;
|
|
});
|
|
return ret;
|
|
};
|
|
|
|
|
|
resultParser.getStats = function(rawResults){
|
|
var allTeams = resultParser._getAllTeams(rawResults);
|
|
var getTeamStats = _.partial(resultParser._getTeamStats, rawResults);
|
|
return _.map(allTeams, getTeamStats);
|
|
};
|
|
|
|
return resultParser;
|
|
});
|