<?php
require ("config.php");
require_once ("funcsv2.php");
//Check session
session_start();

if (!$_SESSION['admin_logged_in'])
{
	//check fails
	header("Location: authenticate.php?status=session");
	exit();
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
	<title>Tracker User Statistics</title>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	<link rel="stylesheet" href="./css/style.css" type="text/css" />
</head>
<body>
<h1>Tracker User Statistics</h1>

<form action="<?php echo htmlentities($_SERVER['PHP_SELF']);?>" method="POST">
Filename Search:<input type="text" name="filename_search" size="40"<?php if (isset($_POST["filename_search"]))echo " value=\"" . filterData($_POST["filename_search"]) . "\"";?>>
<input type="submit" value="Search">
</form>
<br>

<?php
require_once ("config.php");
require_once ("funcsv2.php");

//connect to database and grab each torrent in database
if ($GLOBALS["persist"])
	$db = mysql_pconnect($dbhost, $dbuser, $dbpass) or die(errorMessage() . "Tracker error: can't connect to database - " . mysql_error() . "</p>");
else
	$db = mysql_connect($dbhost, $dbuser, $dbpass) or die(errorMessage() . "Tracker error: can't connect to database - " . mysql_error() . "</p>");
mysql_select_db($database) or die(errorMessage() . "Tracker error: can't open database $database - " . mysql_error() . "</p>");

//Display search information
if (isset($_POST["filename_search"]) && $_POST["filename_search"] != "")
{
	echo "<h2 align=\"center\">Search Results:</h2>";
	$query = "SELECT * FROM ".$prefix."summary LEFT JOIN ".$prefix."namemap ON ".$prefix."summary.info_hash = ".$prefix."namemap.info_hash WHERE ".$prefix."namemap.filename REGEXP \"$_POST[filename_search]\" ORDER BY ".$prefix."namemap.filename";
}
else //display everything
{
	$scriptname = htmlentities($_SERVER['PHP_SELF']) . "?";
	
	if (!isset($_GET["activeonly"])) 
		echo "<a href=\"$scriptname" . "activeonly=yes\">Show only torrents with seeders/leechers</a>\n";
	else
	{
		echo "<a href=\"$scriptname\">Show all torrents</a>\n";
		$scriptname = $scriptname . "activeonly=yes&";	
	}

	if (isset($_GET["activeonly"]))
		$where = " WHERE leechers+seeds > 0";
	else
		$where = " ";
	
	$query = "SELECT COUNT(*) FROM ".$prefix."summary $where";
	$results = mysql_query($query);
	$res = mysql_result($results,0,0);
	
	echo "<p align='center'>Page: \n";
	$count = 0;
	$page = 1;
	while($count < $res)
	{
		if (isset($_GET["page_number"]) && $page == $_GET["page_number"])
			echo "<b><a href=\"$scriptname" . "page_number=$page\">($page)</a></b>-\n";
		else if (!isset($_GET["page_number"]) && $page == 1)
			echo "<b><a href=\"$scriptname" . "page_number=$page\">($page)</a></b>-\n";
		else
			echo "<a href=\"$scriptname" . "page_number=$page\">$page</a>-\n";
		$page++;
		$count = $count + ($GLOBALS["statspagelimitspecify"]);
	}
	echo "</p>\n";
	
	if (!isset($_GET["page_number"]))
		$query = "SELECT * FROM ".$prefix."summary LEFT JOIN ".$prefix."namemap ON ".$prefix."summary.info_hash = ".$prefix."namemap.info_hash $where ORDER BY ".$prefix."namemap.filename LIMIT 0,${GLOBALS['statspagelimitspecify']}";
	else
	{
		$page_limit = ($_GET["page_number"] - 1) * ($GLOBALS["statspagelimitspecify"]);
		$query = "SELECT * FROM ".$prefix."summary LEFT JOIN ".$prefix."namemap ON ".$prefix."summary.info_hash = ".$prefix."namemap.info_hash $where ORDER BY ".$prefix."namemap.filename LIMIT $page_limit,${GLOBALS['statspagelimitspecify']}";
	}
}

$results = mysql_query($query) or die(errorMessage() . "Can't do SQL query - " . mysql_error() . "</p>");

while ($data = mysql_fetch_row($results))
{
	$xhash = "x" . $data[0];
	$query2 = "SELECT * FROM ".$prefix."$xhash";
	$results2 = mysql_query($query2) or die(errorMessage() . "Can't do SQL query - " . mysql_error() . "</p>");

	if (mysql_num_rows($results2) == 0 && isset($_GET["activeonly"]))
		break;
	else
	{
		echo "<hr><table>\n";
		echo "<tr><th>Info Hash</th><th>Filename</th><th>URL</th><th>File Size</th><th>Publication Date</th></tr>\n";
		echo "<tr><td>" . $data[0] . "</td><td>" . $data[12] . "</td><td>\n";
		if (Substr($data[13], 0, 7) == "http://")
			echo "<a href=\"" . $data[13] . "\">" . $data[13] . "</a>\n";
		else
			echo $data[13];
		echo "</td><td>" . bytesToString($data[14]) . "</td>\n";
		echo "<td>" . $data[15] . "</td></tr>\n";
		echo "</table>\n";
	}

	echo "<table>\n";
	echo "<tr><th class=\"subheader\">IP Address</th><th class=\"subheader\">Data Left to Download</th><th class=\"subheader\" width=200>Percent Finished</th><th class=\"subheader\">Port</th><th class=\"subheader\">Last Update</th><th class=\"subheader\">NAT User</th></tr>\n";
	while ($data2 = mysql_fetch_row($results2))
	{
		//grab information on each user
		echo "<tr><td>" . $data2[2] . "</td>\n";
		echo "<td>" . bytesToString($data2[1]) . "</td>\n";

		//calculate percent done for user
		$percent_done = 1.00;
		if ($data2[1] != 0) //only run calculation if they are still downloading
		{
			$size_in_bytes = $data[14];
			if ($size_in_bytes == 0) //thou shalt not divide by zero
				$percent_done = 0;
			else
				$percent_done = round(($size_in_bytes - $data2[1]) / $size_in_bytes, 3);
		}

		?>
		<td>
		<table class="percentages" cellspacing="0">
		<tr>
		<td align="right" class="percent" width="<?php echo round($percent_done * 200, 0); ?>" height="15">
		<?php if ($percent_done > .5) echo $percent_done * 100 . "%"; ?>
		</td>
		<td align="left" class="percentleft" width="<?php echo 200 - round($percent_done * 200, 0); ?>" height="15">
		<?php if ($percent_done <= .5) echo $percent_done * 100 . "%"; ?>		
		</td>
		</tr>
		</table>
		</td>
		<?php
		echo "<td>" . $data2[3] . "</td>\n"; //port
		echo "<td>" . date('g:ia m-d-Y', $data2[5]) . "</td>\n"; //last time check-in
		echo "<td>" . $data2[7] . "</td>\n"; //NAT user
		echo "</tr>\n";
	}
	echo "</table><br>\n";
}
echo "<hr>";
if (!isset($_POST["filename_search"]))
{
	echo "<p align='center'>Page: \n";
	$count = 0;
	$page = 1;
	while($count < $res)
	{
	if (isset($_GET["page_number"]) && $page == $_GET["page_number"])
		echo "<b><a href=\"$scriptname" . "page_number=$page\">($page)</a></b>-\n";
	else if (!isset($_GET["page_number"]) && $page == 1)
		echo "<b><a href=\"$scriptname" . "page_number=$page\">($page)</a></b>-\n";
	else
		echo "<a href=\"$scriptname" . "page_number=$page\">$page</a>-\n";
	$page++;
	$count = $count + ($GLOBALS["statspagelimitspecify"]);
	}
	echo "</p>\n";
}
?>

<a href="admin.php"><img src="images/admin.png" border="0" class="icon" alt="Admin Page" title="Admin Page" /></a><a href="admin.php">Return to Admin Page</a>
</body>
</html>