mtgtop8
Version:
Get events and decks data from mtgtop8.com
67 lines (54 loc) • 1.71 kB
JavaScript
var mtg = require('./index');
var cards = {};
var cardsCountAgnostic = {};
var cardsCountCentric = {};
var assemble = function(event) {
event.decks.forEach(function(deck) {
var result = parseInt(deck.result);
deck.cards.forEach(function(card) {
cards[card.name] = 1;
cardsCountCentric[card.name] = cardsCountCentric[card.name] || {};
cardsCountCentric[card.name][card.count] = cardsCountCentric[card.name][card.count] || 0;
cardsCountCentric[card.name][card.count] += (8 - result) * event.players * ((100*event.bigstars) || 1) * ((10*event.stars) || 1);
cardsCountAgnostic[card.name] = cardsCountAgnostic[card.name] || 0;
cardsCountAgnostic[card.name] += (8 - result) * event.players * ((100*event.bigstars) || 1) * ((10*event.stars) || 1);
});
});
};
var top = function() {
var countCentric = [];
var countAgnostic = [];
Object.keys(cards).forEach(function(name) {
countAgnostic.push([cardsCountAgnostic[name], name]);
var cardCount = cardsCountCentric[name];
Object.keys(cardCount).forEach(function(count) {
countCentric.push([cardCount[count], count+'-'+name]);
});
});
countCentric.sort(function(a,b) {
return a[0] - b[0];
});
countAgnostic.sort(function(a,b) {
return a[0] - b[0];
});
return {
countCentric: countCentric,
countAgnostic: countAgnostic
};
};
mtg.standardEvents(1, function(err, events) {
if (err) return console.error(err);
var onend = function() {
console.log(top().countCentric);
};
(function next() {
var event = events.pop();
if (!event) return onend();
console.log(event.id);
mtg.event(event.id, function(err, event) {
if (err) return console.error(err);
assemble(event);
next();
});
})();
});