%PDF- %PDF-
Direktori : /www/varak.net/www.varak.net/sig/ |
Current File : /www/varak.net/www.varak.net/sig/_armory.php |
<? include_once("_db.php"); //echo ini_get("allow_url_fopen"); //$txt = ini_set("allow_url_fopen", "On"); //file_put_contents("ahoj.txt", $txt); include_once("func.php"); define("USE_CURL", false); if(preg_match("/MSIE/i", $_SERVER["HTTP_USER_AGENT"]) && preg_match("/create_sig/i", $_SERVER["REQUEST_URI"]) && @$_REQUEST["loc"]) { } else { header("content-type: text/html; charset=utf8"); } function getGuildMembers($base_url, $realm, $guild, $minLevel, $clsFilter = false) { $url = $base_url . "/guild-info.xml?r=" . urlencode(stripslashes($realm)) . "&n=" . urlencode(stripslashes($guild)) . "&p=1"; $xml = getArmoryDataXML($url); $node = $xml->xpath("/page/guildInfo/guild/members"); $attr = attribs($node[0]); $maxPages = $attr["maxPage"]; $cList = getCharacterList($xml, $minLevel, $clsFilter); for($i=2; $i<=$maxPages; $i++) { $url = $base_url . "/guild-info.xml?r=" . urlencode(stripslashes($realm)) . "&n=" . urlencode(stripslashes($guild)) . "&p=$i"; $xml = getArmoryDataXML($url); $cList = array_merge($cList, getCharacterList($xml, $minLevel, $clsFilter)); } return $cList; } function getTeamInfo($base_url, $realm, $teamSize, $teamName) { $url = $base_url . "/team-info.xml?r=" . urlencode(stripslashes($realm)) . "&ts=" . $teamSize . "&t=" . urlencode(stripslashes($teamName)); $xml = getArmoryDataXML($url); $n = $xml->xpath("/page/teamInfo/arenaTeam"); return attribs($n[0]); } function getTeamMembers($base_url, $realm, $teamSize, $teamName) { $url = $base_url . "/team-info.xml?r=" . urlencode(stripslashes($realm)) . "&ts=" . $teamSize . "&t=" . urlencode(stripslashes($teamName)); $xml = getArmoryDataXML($url); $n = $xml->xpath("/page/teamInfo/arenaTeam/members/character"); $chars = array(); foreach($n as $char) { $a = attribs($char); $chars[$a["name"]] = $char; } return array_values($chars); } function getTeamEmblem($base_url, $realm, $teamSize, $teamName) { $url = $base_url . "/team-info.xml?r=" . urlencode(stripslashes($realm)) . "&ts=" . $teamSize . "&t=" . urlencode(stripslashes($teamName)); $xml = getArmoryDataXML($url); $n = $xml->xpath("/page/teamInfo/arenaTeam/emblem"); $b = $n[0]; return $b; } function getCachedXML($url) { //$max_age = 1; $max_age = 60 * 60 * 11.5; // 11.5 hours to allow for Coralization race conditions $db = getDBCacheConnection(); $result = mysql_query("select * from cache where hash = '" . md5($url) . "'", $db); file_put_contents("pom2.txt", $url); //$result = mysql_query("select * from cache where hash = 'f5f0709b1c0bda560bda2daf0dd28ed3'", $db); if(mysql_num_rows($result) == 0) return false; $row = mysql_fetch_assoc($result); if(time() - strtotime($row["updated_at"]) > $max_age) return false; $data = @gzuncompress($row["data"]); return $data; } function setCachedXML($url, $xml) { $db = getDBCacheConnection(); $result = mysql_query("select * from cache where hash = '" . md5($url) . "'", $db); $mu = md5($url); $md = mysql_real_escape_string(gzcompress($xml, 9)); file_put_contents("./xml/$mu.xml", $xml); if(mysql_num_rows($result) == 0) { $sql = "insert into cache (hash, data, updated_at) values ('$mu', '$md', NOW())"; } else { $sql = "update cache set data = '$md', updated_at = NOW() where hash = '$mu'"; } mysql_query($sql, $db); return; } function getArmoryDataXML($url) { global $xmlDataCache; file_put_contents("pom.txt", $url); // $url="data.xml"; if(!$xmlDataCache[$url]) { $data = getCachedXML($url); if(!$data) { $f = ""; if(USE_CURL) { $ch = curl_init(); $timeout = 30; // set to zero for no timeout $useragent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1"; curl_setopt ($ch, CURLOPT_URL, $url); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); curl_setopt ($ch, CURLOPT_USERAGENT, $useragent); $f = curl_exec($ch); curl_close($ch); } else { file_put_contents("url.txt", $url); download_file($url, "temp.xml"); $f = file_get_contents("temp.xml"); //$f = file_get_contents($url); } $xml = simplexml_load_string($f); if($xml) setCachedXML($url, $f); } else { $xml = @simplexml_load_string($data); if(!$xml) { //$f = file_get_contents($url); download_file($url, "temp.xml"); $f = file_get_contents("temp.xml"); setCachedXML($url, $f); $xml = simplexml_load_string($f); } } $xmlDataCache[$url] = $xml; } return $xmlDataCache[$url]; } function attribs($node) { $attribs = array(); if(!$node) { throw new Exception("Unable to get node attributes; this likely means that we were unable to retrieve data for the entered realm/guild from the Armory. Please check your input and/or try again later."); } foreach($node->attributes() as $key => $attrib) { $attribs[$key] = (string)$attrib; } return $attribs; } function getCharacterList($xml, $minLevel, $class) { $cList = array(); $characters = $xml->xpath("/page/guildInfo/guild/members/character"); if(sizeof($characters) == 0) { echo "<font style='color: #f00; font-weight: bold;'>Warning! No characters found!</font><p />"; } foreach($characters as $character) { $attribs = attribs($character); if((int)($attribs["level"]) >= $minLevel) { if (!$class || $class == $attribs["class"]) { $cList[] = array($attribs["name"], $attribs["level"], $attribs["class"]); } } } return $cList; } function killCacheEntry($url) { $db = getDBCacheConnection(); $key = md5($url); $sql = "delete from cache where hash = '$key'"; mysql_query($sql, $db); } function getCharacterData($base_url, $realm, $name) { $url = $base_url . "/character-sheet.xml?r=" . urlencode(stripslashes($realm)) . "&n=" . urlencode(stripslashes($name)); return getArmoryDataXML($url); } function getCharacterRep($base_url, $realm, $name) { $url = $base_url . "/character-reputation.xml?r=" . urlencode(stripslashes($realm)) . "&n=" . urlencode(stripslashes($name)); return getArmoryDataXML($url); } function logReferer($output) { return; $db = getDBCacheConnection(); $url = preg_replace("/(sid|jsessionid)=[0-9A-F]{32}/i", "", @$_SERVER["HTTP_REFERER"]); $hash = md5($url); $url = mysql_real_escape_string($url); $output = mysql_real_escape_string($output); if(!preg_match("/tachyonsix\.com/i", @$_SERVER["HTTP_REFERER"]) && strlen(@$_SERVER["HTTP_REFERER"]) > 0) { $sql = "select id from referrer_log where referrer_hash = '$hash' and app = '$output'"; $result = mysql_query($sql, $db); if(mysql_num_rows($result) == 0) { $sql = "insert into referrer_log (referrer_url, referrer_hash, hits, created_at, updated_at, app) values (\"$url\", \"$hash\", 1, NOW(), NOW(), '$output')"; mysql_query($sql, $db); } else { $row = mysql_fetch_assoc($result); $id = $row["id"]; $sql = "update referrer_log set hits = hits + 1, updated_at = NOW() where id = '$id'"; mysql_query($sql, $db); } } } ?>