magarena/scripts/fix_rarity.scala

71 lines
1.6 KiB
Scala
Raw Permalink Normal View History

2011-11-03 22:26:18 -07:00
import scala.xml.pull._
import scala.xml._
import scala.io.Source
/*
reads the metadata for cards
<metalist>
2013-07-17 05:57:34 -07:00
<card name="A Display of My Dark Power">
2011-11-03 22:26:18 -07:00
<instance>
2013-07-17 05:57:34 -07:00
<set>Archenemy</set>
2011-11-03 22:26:18 -07:00
<rarity>C</rarity>
<number>8</number>
<artist>Jim Nelson</artist>
</instance>
</card>
...
</metalist>
*/
/*
Reads cards.txt and fix rarity
>Scion of the Wild
url=http://magiccards.info/10e/en/295.html
image=http://magiccards.info/scans/en/10e/295.jpg
value=3
rarity=R
type=Creature
subtype=Avatar
color=g
converted=3
cost={1}{G}{G}
timing=smain
*/
2013-07-17 05:57:34 -07:00
Console.err.println("loading meta.xml from " + args(0))
val meta = XML.load(args(0))
2011-11-03 22:26:18 -07:00
2013-07-17 05:57:34 -07:00
var name2card = new scala.collection.mutable.HashMap[String, Node]()
2011-11-03 22:26:18 -07:00
Console.err.println("reading rarity from meta.xml")
for (card <- meta \ "card") {
2013-07-17 05:57:34 -07:00
val name_node = card \ "@name"
val name = name_node.text
name2card += (name -> card)
2011-11-03 22:26:18 -07:00
}
var curr_name = ""
2013-07-17 05:57:34 -07:00
for (line <- Source.stdin.getLines) {
//Console.println(line)
//card name
if (line startsWith "name=") {
curr_name = line.substring(5);
//rarity char
} else if (line startsWith "rarity=") {
2011-11-03 22:26:18 -07:00
val curr_rarity = line charAt 7
2013-07-17 05:57:34 -07:00
if (!name2card.contains(curr_name)) {
2011-11-03 22:26:18 -07:00
Console.err.println(curr_name + " NOT FOUND in meta.xml");
} else {
2013-07-17 05:57:34 -07:00
if ((name2card(curr_name) \\ "rarity").exists(x => x.text.charAt(0) == curr_rarity)) {
//Console.err.println("found")
2011-11-03 22:26:18 -07:00
} else {
2013-07-17 06:00:32 -07:00
Console.out.println(curr_name + "'s rarity should not be " + curr_rarity)
2011-11-03 22:26:18 -07:00
}
}
2013-07-17 05:57:34 -07:00
}
2011-11-03 22:26:18 -07:00
}