UNPKG

mtgtop8

Version:

Get events and decks data from mtgtop8.com

67 lines (54 loc) 1.71 kB
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(); }); })(); });