public function __construct(SetDB $setDB, ArtDB $artDB) { global $config; $this->setDB = $setDB; $this->artDB = $artDB; // Load english cards. echo 'Loading card data'; $file = fopen_utf8('data/cards.csv', 'r'); if (!$file) { error('Unable to open file: data/cards.csv'); } $i = 0; while (($row = fgetcsv($file, 6000, ',')) !== FALSE) { if ($i++ % 400 == 0) { echo '.'; } $card = CardDB::rowToCard($row); // Ignore cards with an unknown set. $card->set = $setDB->normalize($card->set); if (!$card->set) { continue; } $title = strtolower($card->title); if (!@$this->titleToCards[$title]) { $this->titleToCards[$title] = array(); } $this->titleToCards[(string) $title][] = $card; } fclose($file); echo "\n"; // Load foreign card data. $language = strtolower($config['output.language']); if ($language && $language != 'english') { echo "Loading {$language} card data"; $file = fopen_utf8("data/cards-{$language}.csv", 'r'); if (!$file) { error("Unable to open file: data/cards-{$language}.csv"); } $i = 0; while (($row = fgetcsv($file, 6000, ',')) !== FALSE) { if ($i++ % 400 == 0) { echo '.'; } // Overwrite some of the english card values with the foreign values. $englishTitle = strtolower($row[0]); $cards = @$this->titleToCards[(string) $englishTitle]; if (!$cards) { //print_r($row); echo "\nError matching card data for card: {$row['0']}"; continue; // Skip errors } foreach ($cards as $card) { CardDB::applyLanguageRowToCard($row, $card); } } fclose($file); echo "\n"; if (!$config['output.english.flavor.text']) { echo "Loading {$language} card flavor data"; $file = fopen_utf8("data/cards-{$language}-flavor.csv", 'r'); if (!$file) { echo "\nNo localized flavor for language: {$language}"; } else { $i = 0; while (($row = fgetcsv($file, 6000, ',')) !== FALSE) { if ($i++ % 400 == 0) { echo '.'; } // Overwrite some of the english card values with the foreign values. $englishTitle = strtolower($row[0]); $cards = @$this->titleToCards[(string) $englishTitle]; if (!$cards) { //print_r($row); echo "\nError matching card flavor for card: {$row['0']}"; continue; // Skip errors. } // Find the card from needed edition and apply localized flavor. foreach ($cards as $card) { if ($card->set == $setDB->normalize($row[1])) { $card->flavor = $row[2]; break; } } } fclose($file); echo "\n"; } } } }
while (!feof($schemesFile)) { fwrite($cardsFile, fgets($schemesFile)); } fclose($schemesFile); // Copy planes. echo "Copying Sorcerer's Apprentice Cards...\n"; $sorcFile = fopen_utf8('misc/import/sorcerersApprentice.csv', 'rb'); if (!$sorcFile) { error('Unable to read Sorcerer\'s Apprentice Cards CSV file.'); } while (!feof($sorcFile)) { fwrite($cardsFile, fgets($sorcFile)); } fclose($sorcFile); // Write masterbase. $masterBase = new MasterBase($files[0]); $cards = $masterBase->cards; foreach ($cards as $card) { writeCsvRow($cardsFile, CardDB::cardToRow($card)); } fclose($cardsFile); echo "\n" . count($cards) . " cards processed.\n"; echo "Temporary file complete.\n"; if (file_exists('data/cards.csv')) { echo "Backing up file \"data/cards.csv\" to \"data/cards.csv.bak\"...\n"; @unlink('data/cards.csv.bak'); @rename('data/cards.csv', 'data/cards.csv.bak'); } echo "Moving temporary file to \"data/cards.csv\"...\n"; rename('data/cards.csv.temp', 'data/cards.csv'); echo "Import complete.\n";
array_slice($argv, 1), 'Drag and drop an MWS masterbase CSV file here and press enter...' ); echo 'Enter the name of the language: '; $language = strtolower(trim(fgets(STDIN))); echo "Creating temporary file: data/cards-$language.csv.temp\n"; $cardsFile = fopen_utf8("data/cards-$language.csv.temp", 'w+'); if (!$cardsFile) error("Unable to write CSV file: data/cards-$language.csv.temp"); // Write masterbase. $masterBase = new MasterBase($files[0]); $cards = $masterBase->cards; foreach ($cards as $card) writeCsvRow($cardsFile, CardDB::cardToLanguageRow($card)); fclose($cardsFile); echo "\n" . count($cards) . " cards processed.\n"; echo "Temporary file complete.\n"; if (file_exists("data/cards-$language.csv")) { echo "Backing up file \"data/cards-$language.csv\" to \"data/cards-$language.csv.bak\"...\n"; @unlink("data/cards-$language.csv.bak"); @rename("data/cards-$language.csv", "data/cards-$language.csv.bak"); } echo "Moving temporary file to \"data/cards-$language.csv\"...\n"; rename("data/cards-$language.csv.temp", "data/cards-$language.csv");