Example #1
0
            $match_flip = $matches_flip[1];
            // 0 is french version
            $text = mv2txt($match_flip['text']);
            if (count($matches_pt) > 1) {
                // Multiple P/T found, first is day, other are night
                $text = $matches_pt[1]['pow'] . '/' . $matches_pt[1]['tou'] . "\n" . $text;
            }
            $card->flip($match_flip['name'], $match_flip['type'], $text);
        }
        // Face down
        $nbmoon = preg_match_all($reg_moon, $html, $matches_moon, PREG_SET_ORDER);
        if ($nbmoon > 0) {
            $match_moon = $matches_moon[1];
            // 0 is french version
            $nbcolor = preg_match_all('#<img  height=10 src=graph/manas/l(?<color>.).gif>#', $match_moon['colors'], $matches_colors, PREG_SET_ORDER);
            $ci = '';
            if ($nbcolor > 0) {
                foreach ($matches_colors as $color) {
                    $ci .= $color['color'];
                }
            } else {
                echo 'Color not found<br>';
            }
            $text = mv2txt($match_moon['text']);
            if (isset($matches_moon[1]['pt'])) {
                $text = $matches_moon[1]['pow'] . '/' . $matches_moon[1]['tou'] . "\n" . $text;
            }
            $card->transform(card_name_sanitize($match_moon['name']), $ci, $match_moon['type'], $text, card_image_url($mv_ext_name . '/' . $mv_card_id . 'f'));
        }
    }
}
Example #2
0
            $node = $node->nextSibling;
        } while ($node->nodeName == 'img');
        // Text & PT : managed in sun face text & PT managements
        if ($trpt != '') {
            $trtext = $trpt . "\n" . $trtext;
        }
        // Image
        if (preg_match('#if \\(bflst==1\\) \\{document\\["BIGflippic"\\].src="(.*?)";bflst=2;\\}#', $card_html, $matches)) {
            $trimg = $matches[1];
        }
        if (strpos($trimg, 'FR')) {
            $frtrimg = $trimg;
            $trimg = str_replace('FR', '', $trimg);
        }
        // Import
        $card->transform(card_name_sanitize($trname), $trcolor, $trtypes, $trtext, $base_url . $trimg);
        if ($frtrimg != null) {
            $card->addlangimg('fr', $frtrimg);
        }
    }
}
function mv_planeswalker($text_nodes, $text_idx)
{
    $text = $text_nodes->item($text_idx)->C14N();
    $text = mv2txt($text) . "\n";
    if (preg_match_all('/\\s*([+|-]?\\d*)\\s*(.*?)\\n/', $text, $matches, PREG_SET_ORDER)) {
        $text = '';
        foreach ($matches as $match) {
            $text .= $match[1] . ': ' . $match[2] . "\n";
        }
    }
Example #3
0
<?php

if (array_key_exists('name', $_GET)) {
    include '../lib.php';
    include '../includes/db.php';
    include '../includes/card.php';
    $connec = card_connect();
    $query = query("SELECT * FROM card WHERE `name`='" . mysql_real_escape_string(card_name_sanitize($_GET['name'])) . "'", 'Card search', $connec);
    if ($card = mysql_fetch_object($query)) {
        $id = $card->id;
    } else {
        die('{"name": "' . $_GET['name'] . '"}');
    }
    if (array_key_exists('lang', $_GET) && $_GET['lang'] != 'en') {
        if ($lang = query_oneshot("SELECT * FROM cardname WHERE `lang` = '" . $_GET['lang'] . "' AND `card_id` = '{$id}'", 'Card language', $connec)) {
            $card->card_name = $lang->card_name;
        }
    }
    $query = query("SELECT extension.id, extension.se, extension.name, card_ext.nbpics FROM card_ext, extension WHERE card_ext.card = '{$id}' AND card_ext.ext = extension.id AND card_ext.nbpics > 0 ORDER BY extension.priority DESC", 'Card\' extension', $connec);
    $ext = array();
    while ($obj = mysql_fetch_object($query)) {
        $ext[] = $obj;
    }
    $card->ext = $ext;
    die(json_encode($card));
} else {
    die('No ID in param');
}
Example #4
0
 function addcard($card_url, $rarity, $oldname, $cost, $types, $text, $url, $multiverseid = '')
 {
     // Name checking
     $name = card_name_sanitize($oldname);
     $text = card_text_sanitize($text);
     $types = preg_replace('#\\s+#', ' ', $types);
     $cost = strtoupper($cost);
     if ($name == '') {
         return $this->adderror('Empty name', $card_url);
     }
     // Searching in already imported cards
     foreach ($this->cards as $card) {
         if ($card->name == $name) {
             $log = '';
             foreach (array('rarity', 'name', 'cost', 'types', 'text') as $val) {
                 if (trim(${$val}) != $card->{$val}) {
                     $log .= ' - ' . $val . ' : ' . $card->{$val} . ' -> ' . ${$val} . "\n";
                     //$card->{$val} = $$val ;
                 }
             }
             if ($log != '') {
                 // For Planeshift from MCI, has 3 promos as "special" rarity in list
                 echo 'Card already parsed with different data (ignored) : ' . $name . "\n" . $log . "\n";
             } else {
                 if ($card->addimage($url)) {
                     $card->nbimages++;
                 }
                 $card->addurl($card_url);
             }
             return $card;
         }
     }
     // Else it's a new card
     $card = new ImportCard($this, $card_url, $rarity, $name, $cost, $types, $text, $url, $multiverseid);
     $this->cards[] = $card;
     return $card;
 }
Example #5
0
function card_search($get, $connec = null)
{
    $data = new stdClass();
    if (isset($get['page'])) {
        $data->page = intval($get['page']);
        unset($get['page']);
    } else {
        $data->page = 1;
    }
    if (isset($get['limit'])) {
        $data->limit = intval($get['limit']);
        unset($get['limit']);
    } else {
        $data->limit = 30;
    }
    $get['name'] = card_name_sanitize($get['name']);
    $from = ($data->page - 1) * $data->limit;
    $where = '';
    if (isset($get['ext']) && $get['ext'] != '') {
        $select = 'SELECT `card`.*, `extension`.`se` FROM `card` LEFT JOIN `card_ext` ON `card`.`id` = `card_ext`.`card` LEFT JOIN `extension` ON `card_ext`.`ext` = `extension`.`id`';
        $where .= 'AND ( `extension`.`se` = \'' . $get['ext'] . '\' OR `extension`.`sea` = \'' . $get['ext'] . '\' )';
        // OR `extension`.`name` LIKE \''.$get['ext'].'%\' ;
        unset($get['ext']);
    } else {
        $select = 'SELECT * FROM `card` ';
        $where = '';
    }
    $order = ' ORDER BY `card`.`name`';
    if (isset($get['lang'])) {
        if ($get['lang'] != 'en') {
            $data->lang = $get['lang'];
            $select .= ' LEFT JOIN `cardname`
			ON `card`.`id` = `cardname`.`card_id`';
            $get['card_name'] = $get['name'];
            // Search in lang table
            $where .= ' AND `cardname`.`lang` = "' . $data->lang . '"';
            $order = ' ORDER BY `cardname`.`card_name`';
            unset($get['name']);
            // Search only in lang table
        }
        unset($get['lang']);
    }
    // Search part of word
    $query = $select . get2where($get, 'LIKE', '%', '%', 'card') . $where . $order;
    $result = query($query, 'Card listing', $connec);
    $data->num_rows = mysql_num_rows($result);
    $data->cards = array();
    while ($from > 0 && ($obj = mysql_fetch_object($result))) {
        $from--;
    }
    while (($obj = mysql_fetch_object($result)) && count($data->cards) < $data->limit) {
        $query = "SELECT extension.id, extension.se, extension.name, card_ext.nbpics\n\t\t\t\tFROM card_ext, extension\n\t\t\t\tWHERE\n\t\t\t\t\tcard_ext.nbpics != 0 AND\n\t\t\t\t\tcard_ext.card = '" . $obj->id . "' AND\n\t\t\t\t\tcard_ext.ext = extension.id\n\t\t\t\tORDER BY extension.priority DESC";
        $result2 = query($query, 'Card\' extension', $connec);
        $obj->ext = array();
        while ($obj_ext = mysql_fetch_object($result2)) {
            $obj->ext[] = $obj_ext;
        }
        $data->cards[] = $obj;
    }
    return $data;
}
Example #6
0
    }
} else {
    if ($apply) {
        $query = query("INSERT INTO extension (`se`, `name`) VALUES ('{$ext}', '" . $cards[0] . "')");
    }
    $ext_id = mysql_insert_id();
}
?>
  <table>
   <tr>
    <th>Name</th>
    <th>Action</th>
   </tr>
<?php 
for ($i = 0; $i < count($cards); $i++) {
    $name = mysql_real_escape_string(card_name_sanitize($cards[$i]));
    $log = '<tr title="' . $name . '">';
    $log = '<td>' . $name . '</td>';
    $qs = query("SELECT id FROM card WHERE `name` = '{$name}'");
    if ($arr = mysql_fetch_array($qs)) {
        $card_id = $arr['id'];
    } else {
        $masterlog .= 'Card not found : ' . $name;
        break;
    }
    $query = query("SELECT * FROM card_ext WHERE `card` = '{$card_id}' AND `ext` = '{$ext_id}' ;");
    $log .= '<td>';
    if ($res = mysql_fetch_object($query)) {
    } else {
        if ($apply) {
            query("INSERT INTO card_ext (`card`, `ext`, `rarity`, `nbpics`) VALUES ('{$card_id}', '{$ext_id}', 'C', '0') ;");
Example #7
0
function card_search($get, $connec = null)
{
    $data = new stdClass();
    if (isset($get['page'])) {
        $data->page = intval($get['page']);
        unset($get['page']);
    } else {
        $data->page = 1;
    }
    if (isset($get['limit'])) {
        $data->limit = intval($get['limit']);
        unset($get['limit']);
    } else {
        $data->limit = 30;
    }
    $firstresult = ($data->page - 1) * $data->limit;
    $get['name'] = card_name_sanitize($get['name']);
    // Start to build query
    $select = '`card`.*';
    $from = '`card`';
    $where = '';
    $order = '`card`.`name`';
    // Special fields that modify query instead of just beeing searched
    if (isset($get['ext']) && $get['ext'] != '') {
        $select .= ', `extension`.`se`';
        $from .= 'LEFT JOIN `card_ext` ON `card`.`id` = `card_ext`.`card` LEFT JOIN `extension` ON `card_ext`.`ext` = `extension`.`id`';
        $where .= 'AND ( `extension`.`se` = \'' . $get['ext'] . '\' OR `extension`.`sea` = \'' . $get['ext'] . '\' )';
        unset($get['ext']);
    }
    if (isset($get['lang'])) {
        if ($get['lang'] != 'en') {
            $data->lang = $get['lang'];
            $select .= ', `cardname`.`card_name` ';
            $from .= ' LEFT JOIN `cardname` ON `card`.`id` = `cardname`.`card_id`';
            $where .= ' AND `cardname`.`lang` = "' . $get['lang'] . '"';
            $where .= ' AND `cardname`.`card_name` LIKE "%' . $get['name'] . '%"';
            unset($get['name']);
            // Don't search that name in card table, it has been searched in lang table
            $order = '`cardname`.`card_name`';
        }
        unset($get['lang']);
    }
    // Normal fields
    $where .= get2where($get, 'LIKE', '%', '%', 'card');
    // Parts acquired, merge and query
    $query = "SELECT {$select} FROM {$from} WHERE 1 {$where} ORDER BY {$order}";
    $result = query($query, 'Card listing', $connec);
    $data->num_rows = mysql_num_rows($result);
    $data->cards = array();
    while ($firstresult > 0 && ($obj = mysql_fetch_object($result))) {
        $firstresult--;
    }
    while (($obj = mysql_fetch_object($result)) && count($data->cards) < $data->limit) {
        $query = "SELECT extension.id, extension.se, extension.name, card_ext.nbpics\n\t\t\t\tFROM card_ext, extension\n\t\t\t\tWHERE\n\t\t\t\t\tcard_ext.nbpics != 0 AND\n\t\t\t\t\tcard_ext.card = '" . $obj->id . "' AND\n\t\t\t\t\tcard_ext.ext = extension.id\n\t\t\t\tORDER BY extension.priority DESC";
        $result2 = query($query, 'Card\' extension', $connec);
        $obj->ext = array();
        while ($obj_ext = mysql_fetch_object($result2)) {
            $obj->ext[] = $obj_ext;
        }
        $data->cards[] = $obj;
    }
    return $data;
}
Example #8
0
 static function get($name, $ext = '')
 {
     $name = card_name_sanitize($name);
     // Parse image number
     $pic_num = 0;
     if (preg_match('/(.*) \\((\\d*)\\)/', $name, $matches)) {
         $name = $matches[1];
         // Remove it from name
         $pic_num = intval($matches[2]);
     }
     // Search in cache
     foreach (Card::$cache as $card) {
         if ($card->name == $name) {
             return $card->extend($ext, $pic_num);
         }
     }
     // Search in DB
     global $db_cards;
     $name = $db_cards->escape($name);
     $cards = $db_cards->select("SELECT * FROM `card` WHERE `name` LIKE '{$name}'");
     if (count($cards) > 1) {
         // Multiple cards found, bug
         echo count($cards) . " cards found : {$name}\n";
     } else {
         if (count($cards) == 0) {
             echo "Card not found : [{$name}]\n";
             return null;
         }
     }
     $card_obj = new Card($cards[0]);
     Card::$cache[] = $card_obj;
     return $card_obj->extend($ext, $pic_num);
 }