mirror of
https://github.com/magefree/mage.git
synced 2026-09-11 11:58:30 +02:00
Page:
Parse mtgsalvation spoiler data
Pages
AI Players
Changelog 1.4.52‐V5‐beta8
Changelog 1.4.52‐V5‐beta9
Changelog 1.4.52‐V6‐beta1
Changelog 1.4.52‐V6‐beta2
Changelog 1.4.52‐V6‐beta3
Changelog 1.4.52‐V6‐beta4
Changelog 1.4.52‐V6‐beta5
Changelog 1.4.52‐V6‐beta6
Changelog 1.4.52‐V6‐beta7
Changelog 1.4.52‐V6‐beta8
Changelog 1.4.52‐V6‐beta9
Changelog 1.4.52‐V7‐beta1
Changelog 1.4.52‐V7‐beta2
Changelog 1.4.52‐V7‐beta3
Changelog 1.4.52‐V7‐beta4
Changelog 1.4.52‐V7‐beta5
Changelog 1.4.52‐V7‐beta6
Changelog 1.4.52‐V7‐beta7
Changelog 1.4.52‐V7‐beta8
Changelog 1.4.52‐V7‐beta9
Changelog 1.4.52‐V8‐beta1
Changelog for next release
Code Templates
Creating a new release for xmage
DEv Release 2014_09_04 and older
Dev Release 2014_09_13
Dev Release 2014_09_26
Dev Release 2014_10_05
Dev Release 2014_10_18
Dev Release 2014_11_01
Dev Release 2014_11_08
Dev Release 2014_11_29
Dev Release 2015_02_07
Dev Release 2015_03_14
Developer Getting Started
Developer HOWTO Guides
Development HOWTO Guides
Development Testing Tools
Development Workflow
Home
Hosting an XMage server
Image test
Implementing Double Faced Cards
List of cards that will not be implemented on Xmage
Older Releases
Parse mtgsalvation spoiler data
Project Overview
Release 1.4.0
Release 1.4.1
Release 1.4.10
Release 1.4.11
Release 1.4.12
Release 1.4.13
Release 1.4.14
Release 1.4.15
Release 1.4.16
Release 1.4.17
Release 1.4.18
Release 1.4.19
Release 1.4.2
Release 1.4.20
Release 1.4.21
Release 1.4.22
Release 1.4.23
Release 1.4.24
Release 1.4.25
Release 1.4.26
Release 1.4.27
Release 1.4.28
Release 1.4.29
Release 1.4.3
Release 1.4.30
Release 1.4.31
Release 1.4.32
Release 1.4.33
Release 1.4.34
Release 1.4.35
Release 1.4.36
Release 1.4.37
Release 1.4.38
Release 1.4.39
Release 1.4.4
Release 1.4.40
Release 1.4.41
Release 1.4.42
Release 1.4.43
Release 1.4.44
Release 1.4.45
Release 1.4.46
Release 1.4.47
Release 1.4.48
Release 1.4.49
Release 1.4.5
Release 1.4.50
Release 1.4.53
Release 1.4.54
Release 1.4.55
Release 1.4.56
Release 1.4.57
Release 1.4.58
Release 1.4.59
Release 1.4.6
Release 1.4.60
Release 1.4.61
Release 1.4.7
Release 1.4.8
Release 1.4.9
Release changes
Server configuration
Set implementation list
Setting up your Development Environment
Supported deck formats
No results
2
Parse mtgsalvation spoiler data
LevelX2 edited this page 2016-07-05 22:52:39 +02:00
Code to parse a http://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); })();