function download() { // Dirs $begin = microtime(true); global $base_image_dir; $dir = $base_image_dir . 'HIRES/' . $this->dbcode . '/'; if (!rmkdir($dir)) { return false; } $tkdir = $base_image_dir . 'HIRES/TK/' . $this->dbcode . '/'; if (!rmkdir($tkdir)) { return false; } $oldumask = umask(022); // Card images echo count($this->cards) . ' cards to download to ' . $dir . "\n"; foreach ($this->cards as $card) { echo $card->name . ' : '; if ($card->secondname != '') { if (count($card->images) < 2) { die('2 images expected for tranfsorm'); } $path = $dir . card_img_by_name($card->name, 1, 1); cache_get($card->images[0], $path, true, true); $path = $dir . card_img_by_name($card->secondname, 1, 1); cache_get($card->images[1], $path, true, true); echo "\n"; // Languages foreach ($card->langs as $lang => $images) { $nbimages = count($images['images']); if ($nbimages < 1) { continue; } if ($nbimages < 2) { echo '2 images expected for tranfsorm translation' . "\n"; } $langdir = $base_image_dir . strtoupper($lang) . '/' . $this->dbcode . '/'; echo " - {$lang} : "; $path = $langdir . card_img_by_name($card->name, 1, 1); cache_get($image, $path, true, true); $path = $langdir . card_img_by_name($card->secondname, 1, 1); cache_get($image, $path, true, true); echo "\n"; } } else { foreach ($card->images as $i => $image) { $path = $dir . card_img_by_name($card->name, $i + 1, count($card->images)); cache_get($image, $path, true, true); } echo "\n"; // Languages foreach ($card->langs as $lang => $images) { if (count($images['images']) < 1) { continue; } echo " - {$lang} : "; $langdir = $base_image_dir . strtoupper($lang) . '/' . $this->dbcode . '/'; foreach ($images['images'] as $i => $image) { $path = $langdir . card_img_by_name($card->name, $i + 1, count($card->images)); cache_get($image, $path, true, true); } echo "\n"; } } } // Token images echo "\n" . count($this->tokens) . ' tokens to download to ' . $tkdir . "\n"; foreach ($this->tokens as $token) { echo $token['type'] . ' : '; $name = $token['type']; // Manage multiple tokens with the same name $same = array_filter($this->tokens, function ($tk) use($token) { return tokenpath($tk) == tokenpath($token); }); if (count($same) > 1) { if (!isset($multiple)) { $multiple = array(); } if (!isset($multiple[$name])) { $multiple[$name] = 1; } else { $multiple[$name]++; } $name .= $multiple[$name]; } // Token is an emblem if (preg_match('/Emblem (.*)/', $name, $matches)) { $found = false; foreach ($this->cards as $card) { // Search which planeswalker it is for if (split(' ', $card->types)[0] != 'Planeswalker') { // Only parse planeswalker, with information aviable continue; } $attrs = $card->attrs(); // Check card subtype if (isset($attrs->subtypes) && count($attrs->subtypes) > 0 && $attrs->subtypes[0] == strtolower($matches[1])) { $found = true; $name = 'Emblem.' . $attrs->subtypes[0]; break; } // Check transform subtype if (isset($attrs->transformed_attrs) && $attrs->transformed_attrs->subtypes[0] == strtolower($matches[1])) { $found = true; $name = 'Emblem.' . $attrs->transformed_attrs->subtypes[0]; break; } } if (!$found) { // No planeswalker found, don't DL echo "Planeswalker not found for emblem\n"; continue; } } cache_get($token['image_url'], $tkdir . tokenpath($token, $name), true, true); echo "\n"; } umask($oldumask); echo "\n" . 'Finished in ' . (microtime(true) - $begin) . ' (think about thumbnailing)'; return true; }
} else { if ($ext[$i]['nbpics'] == 1) { $imgurl = $cardimages_default . '/' . $ext[$i]['se'] . '/' . addslashes(card_img_by_name($card_bdd['name'])); if (isset($json->transformed_attrs->name)) { $imgurl .= "', '" . $cardimages_default . '/' . $ext[$i]['se'] . '/' . addslashes(card_img_by_name($json->transformed_attrs->name)); } echo ' <li><a href="extension.php?ext=' . $ext[$i]['se'] . '" onmouseover="javascript:setimage(\'' . $imgurl . '\')">' . $ext[$i]['name'] . '</a> (' . $ext[$i]['rarity'] . ')' . "\n"; echo ' </li>'; if (!isset($firstimgurl)) { $firstimgurl = $imgurl; } } else { echo ' <li><a href="extension.php?ext=' . $ext[$i]['se'] . '">' . $ext[$i]['name'] . '</a> (' . $ext[$i]['rarity'] . ')' . "\n"; echo ' <ul>' . "\n"; for ($j = 1; $j <= $ext[$i]['nbpics']; $j++) { $imgurl = $cardimages_default . '/' . $ext[$i]['se'] . '/' . addslashes(card_img_by_name($card_bdd['name'], $j, $ext[$i]['nbpics'])); echo ' <li><a onmouseover="javascript:setimage(\'' . $imgurl . '\')">' . $j . '</a></li>' . "\n"; if (!isset($firstimgurl)) { $firstimgurl = $imgurl; } } echo ' </ul>' . "\n"; echo ' </li>' . "\n"; } } } ?> </ul> <script type="text/javascript"> setimage('<?php echo $firstimgurl;
$images = $exts[$arr['se']]; $nbimages = count($images, true); while (count($cards) > 0) { $card = array_shift($cards); for ($i = 1; $i <= $card['nbpics']; $i++) { $cardimg = card_img_by_name($card['name'], $i, $card['nbpics']); if (array_key_exists($cardimg, $images)) { unset($images[$cardimg]); $fs = filesize($url . $arr['se'] . '/' . $cardimg); $filesizes[] = $fs / 1024; $foldersize += $fs; } else { // Dual cards have an image for each face, do the same on both if (preg_match('/(.*) \\((.*)\\)/', $card['name'], $regs)) { $card1 = card_img_by_name($regs[1]); $card2 = card_img_by_name($regs[2]); if (array_key_exists($card1, $images) && array_key_exists($card2, $images)) { $nbimages--; // 2 images for 1 card, let's pretend having only 1 image unset($images[$card1]); unset($images[$card2]); } else { $unimagedcards[] = $card['name']; } } else { $unimagedcards[] = $card['name']; } } } } } else {