示例#1
0
 function update_schema()
 {
     global $db, $settings;
     $response = cache::get(sprintf('http://api.steampowered.com/IEconItems_440/GetSchema/v0001/?key=%s&format=json&language=en', $settings['api_key']), 60);
     $json = json_decode($response, true);
     $s = $json['result'];
     //print $response;
     $s['items'] = $s['items'];
     $s['attributes'] = $s['attributes'];
     if (!isset($s['items'])) {
         die("FAILED" . PHP_EOL . $response);
     }
     foreach ($s['items'] as $k => $i) {
         //$bits = explode('/',$i['image_url']);
         //$im = $bits[count($bits)-1];
         $s['items'][$k]['quality'] = $i['item_quality'];
         //$s['items'][$k]['image'] = basename($i['image_inventory']).'.png';
         //$s['items'][$k]['image_url'] = sprintf('http://media.steampowered.com/apps/440/icons/%s',$s['items'][$k]['image']);
         //$img = $settings['upload']['folder']['items'].basename($i['image_inventory']).'.png';
         if ($i['image_inventory'] == 'backpack/player/items/crafting/paintcan') {
             $s['items'][$k]['image'] = 'paintcan.png';
             $s['items'][$k]['image_url'] = 'http://media.steampowered.com/apps/440/icons/paintcan.png';
             continue;
         }
         $url = $i['image_url'];
         $name = basename($url);
         if (!strlen($url)) {
             cache::log(sprintf("<i>(ID: %d)</i> <b>%s</b> — no image!", $i['defindex'], substr($i['item_name'], 0, 60)));
             $s['items'][$k]['image_url'] = 'http://tf2stats.net/images/unknown.png';
             $s['items'][$k]['image'] = 'unknown.png';
             continue;
         }
         $s['items'][$k]['image'] = $name;
         $img = $settings['upload']['folder']['items'] . $name;
         if (!file_exists($img)) {
             //printf("<br><b>%s</b> <i>(ID: %d)</i> - Fetching image at %s", $i[ 'item_name' ], $i[ 'defindex' ], $url);
             cache::log(sprintf("<i>(ID: %d)</i> <b>%s</b> — fetching image at \"%s\"", $i['defindex'], $i['item_name'], $url));
             $idata = file_get_contents($url);
             if (!$idata) {
                 cache::log(sprintf("<b>File not found.</b> (<a href=\"%s\">check</a>)\n", $url));
                 //printf('- <b>File not found on server.</b> (<a href="%s">check</a>)', $url);
             } else {
                 file_put_contents($img, $idata);
             }
         }
         if (filesize($img) == 0) {
             cache::log("<b>" . $img . ".</b> failed\n");
             @unlink($img);
         }
         if (!file_exists($img) || filesize($img) == 0) {
             $s['items'][$k]['image_url'] = 'http://tf2stats.net/images/unknown.png';
             $s['items'][$k]['image'] = 'unknown.png';
         }
     }
     foreach ($s['attribute_controlled_attached_particles'] as $i) {
         if (!file_exists($settings['upload']['folder']['effects'] . $i['id'] . '.png')) {
             cache::log("<b>" . $i['name'] . "</b> - particle image doesn't exist! (ID: " . $i['id'] . ")");
         }
     }
     foreach ($s['items'] as $i) {
         $o['items'][$i['defindex']] = $i;
     }
     foreach ($s['attributes'] as $a) {
         $o['attributes'][$a['defindex']] = $a;
     }
     $o['qualities'] = $s['qualities'];
     $o['origins'] = $s['originNames'];
     $o['particles'] = $s['attribute_controlled_attached_particles'];
     $o['kill_eater_ranks'] = $s['kill_eater_ranks'];
     $php = var_export($o, true);
     cache::writeFile('tf2_items_schema.php', sprintf('<?php global $schema; $schema = %s ?>', $php));
     backpack::update_asset_info();
     backpack::update_valve_employees();
 }