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(); }