- Notifications
You must be signed in to change notification settings - Fork822
Parse mtgsalvation spoiler data
LevelX2 edited this pageJul 5, 2016 ·2 revisions
Code to parse ahttp://www.mtgsalvation.com/spoilers site to create the mtg-cards-data.txt format.
Start for example Firefox
Open the web site with the spoiler data (e.g.http://www.mtgsalvation.com/spoilers/172-eldritch-moon)
Copy and paste the script into the firefox firebug console window and set the correct expansion name in the script.
Execute the script
Copy the created data from the console output to the mtg-cards-data.txt file.
(function(){ var x = ''; function printCard(card){ var text = ''; text += card.name + '|Eldritch Moon|'; text += (card.number ? card.number : '') + '|'; text += card.rarity + '|'; text += card.cost + '|'; text += card.type + '|'; text += (card.pt ? card.pt.split('/').join("|") : '|') + '|'; text += card.abilities + '|'; return text; } $.each($('div.t-spoiler-wrapper'), function(index, value) { var $value = $(value); var card = {}; card.name = $value.find('a.j-search-html').text().replace(/Æ/g,"AE"); var findResult = $value.find('span.t-spoiler-artist').text(); if(findResult.length > 0){ var parts = findResult.split('#'); card.number = parts[1].split('/')[0].trim(); } var findResult = $value.find('span.t-spoiler-rarity').find('span:first').attr('class'); if (findResult.substr(findResult.length - 8) == 'uncommon') { card.rarity = 'U'; } else if (findResult.substr(findResult.length - 6) == 'common') { card.rarity = 'C'; } else if (findResult.substr(findResult.length - 4) == 'rare') { card.rarity = 'R'; } else if (findResult.substr(findResult.length - 6) == 'mythic') { card.rarity = 'M'; } else if (findResult.substr(findResult.length - 4) == 'land') { card.rarity = 'L'; } else { card.rarity = '?' + findResult; } var findCosts = $value.find('ul.t-spoiler-mana').find('span').text(); card.cost = ''; $.each(findCosts , function (i, rowValue) { card.cost += '{' + rowValue + '}'; }); card.type = $value.find('span.t-spoiler-type:first').text(); card.pt = $value.find('span.t-spoiler-stat').text().replace(/\*/g,"0"); var abilities = $value.find('div.t-spoiler-ability'); abilities.find('span').replaceWith(function() { return '{' + this.innerHTML + '}' ; }); card.abilities = ''; $.each(abilities.find('p'), function (i, rowValue) { if (i > 0) { card.abilities += '$'; } // rowValue.find('span').replaceWith(function() { return '{' + this.innerHTML + '}' ; }); //text = rowValue.innerHTML.replace(/(\r\n|\n|\r)/gm,""); card.abilities += rowValue.innerHTML.replace(/(\r\n|\n|\r)/gm,"").replace(/(<em>)/g,"<i>").replace(/(<\/em>)/g,"</i>"); }); card.abilities = card.abilities.replace(/Æ/g,"AE").replace(/[\$]+/g,"$"); x += printCard(card) + '\n'; }); console.log(x); })();