mage/Utils/gen-list-cards-for-set.pl

57 lines
1.1 KiB
Perl
Executable file

#!/usr/bin/perl -w
#author: North
use strict;
my $dataFile = "mtg-cards-data.txt";
my $setsFile = "mtg-sets-data.txt";
my %sets;
my @setCards;
# gets the set name
my $setName = $ARGV[0];
if(!$setName) {
print 'Enter a set name: ';
$setName = <STDIN>;
chomp $setName;
}
open (DATA, $dataFile) || die "can't open $dataFile";
while(my $line = <DATA>) {
my @data = split('\\|', $line);
if ($data[1] eq $setName) {
push(@setCards, \@data);
}
}
close(DATA);
open (DATA, $setsFile) || die "can't open $setsFile";
while(my $line = <DATA>) {
my @data = split('\\|', $line);
$sets{$data[0]}= $data[1];
}
close(DATA);
sub cardSort {
if (@{$a}[2] < @{$b}[2]) { return -1; }
elsif (@{$a}[2] == @{$b}[2]) { return 0;}
elsif (@{$a}[2] > @{$b}[2]) { return 1; }
}
my $toPrint = '';
foreach my $card (sort cardSort @setCards) {
if ($toPrint) {
$toPrint .= "\n";
}
$toPrint .= "@{$card}[2]|@{$card}[0]";
}
open CARD, "> " . lc($sets{$setName}) . ".txt";
print CARD $toPrint;
close CARD;