%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /www/varak.net/www.varak.net/sig/
Upload File :
Create Path :
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);
		}
	}
}
?>

Zerion Mini Shell 1.0