PHP Code:
<?php
//
//
//
//
error_reporting(E_ALL ^ E_NOTICE);
// register_globals on *fix*
if (!ini_get("register_globals")) {
import_request_variables('GPC');
}
//If running on a windows server you "may" have to use absolute paths here
require_once("mysql.php"); //Get MYSQL Connection Info
require_once("config.php"); //Get Site Settings and Vars ($site_config)
require("tzs.php"); // Get Timezones
require("ctracker.php");
function dbconn($autoclean = false) {
global $mysql_host, $mysql_user, $mysql_pass, $mysql_db, $THEME, $LANGUAGE, $site_config;
if (!ob_get_level()) {
if (extension_loaded('zlib') && !ini_get('zlib.output_compression'))
ob_start('ob_gzhandler');
else
ob_start();
}
header("Content-Type: text/html;charset=$site_config[CHARSET]");
if (!function_exists("mysql_connect"))
die("MySQL support not available.");
if (!@mysql_connect($mysql_host, $mysql_user, $mysql_pass))
{
die("<br /><br /><center><img src=\"http://bvlist.com/images/mysqlerror.png\" border=\"0\" alt=\"Powered by h-tracker.org\"><br /><br /><strong>There seems to be a problem with the MySQL server,<br><font color=red>" . mysql_error() ."</font><br>We should be back shortly.</strong></center>");
}
mysql_select_db($mysql_db)
or die("<br /><br /><center><img src=\"http://bvlist.com/images/mysqlerror.png\" border=\"0\" alt=\"Powered by h-tracker.org\"><br /><br /><strong>There seems to be a problem with the MySQL server,<br><font color=red>" . mysql_error() ."</font><br>Check your settings.</strong></center>");
unset($mysql_pass); //security
userlogin(); //Get user info
//Get language and theme
$CURUSER = $GLOBALS["CURUSER"];
if ($CURUSER) {
$ss_a = @mysql_fetch_array(@mysql_query("SELECT uri FROM stylesheets WHERE id=$CURUSER[stylesheet]"));
if ($ss_a)
$THEME = $ss_a["uri"];
else {
$ss_a = @mysql_fetch_array(@mysql_query("select uri from stylesheets where id=$site_config[default_theme]"));
$THEME = $ss_a['uri'];
}
$lng_a = @mysql_fetch_array(@mysql_query("select uri from languages where id=$CURUSER[language]"));
if ($lng_a)
$LANGUAGE = $lng_a["uri"];
else {
$lng_a = @mysql_fetch_array(@mysql_query("select uri from languages where id=$site_config[default_language]"));
$LANGUAGE = $lng_a['uri'];
}
}else{//not logged in so get default theme/language
$ss_a = mysql_fetch_array(mysql_query("select uri from stylesheets where id='" . $site_config['default_theme'] . "'")) or die(mysql_error());
if ($ss_a)
$THEME = $ss_a["uri"];
$lng_a = mysql_fetch_array(mysql_query("select uri from languages where id='" . $site_config['default_language'] . "'")) or die(mysql_error());
if ($lng_a)
$LANGUAGE = $lng_a["uri"];
}
require_once("languages/$LANGUAGE");
if ($autoclean)
autoclean();
}
// Main Cleanup
function autoclean() {
global $site_config;
require_once("cleanup.php");
$now = gmtime();
$res = mysql_query("SELECT last_time FROM tasks WHERE task='cleanup'");
$row = mysql_fetch_array($res);
if (!$row) {
mysql_query("INSERT INTO tasks (task, last_time) VALUES ('cleanup',$now)");
return;
}
$ts = $row[0];
if ($ts + $site_config["autoclean_interval"] > $now)
return;
mysql_query("UPDATE tasks SET last_time=$now WHERE task='cleanup' AND last_time = $ts");
if (!mysql_affected_rows())
return;
do_cleanup();
}
// IP Validation
function validip($ip)
{
if (!empty($ip) && $ip == long2ip(ip2long($ip)))
{
$reserved_ips = array (
array('0.0.0.0','2.255.255.255'),
array('10.0.0.0','10.255.255.255'),
array('127.0.0.0','127.255.255.255'),
array('169.254.0.0','169.254.255.255'),
array('172.16.0.0','172.31.255.255'),
array('192.0.2.0','192.0.2.255'),
array('192.168.0.0','192.168.255.255'),
array('255.255.255.0','255.255.255.255')
);
foreach ($reserved_ips as $r)
{
$min = ip2long($r[0]);
$max = ip2long($r[1]);
if ((ip2long($ip) >= $min) && (ip2long($ip) <= $max)) return false;
}
return true;
}
else return false;
}
function getip() {
if (isset($_SERVER)) {
if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && validip($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif (isset($_SERVER['HTTP_CLIENT_IP']) && validip($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
} else {
if (getenv('HTTP_X_FORWARDED_FOR') && validip(getenv('HTTP_X_FORWARDED_FOR'))) {
$ip = getenv('HTTP_X_FORWARDED_FOR');
} elseif (getenv('HTTP_CLIENT_IP') && validip(getenv('HTTP_CLIENT_IP'))) {
$ip = getenv('HTTP_CLIENT_IP');
} else {
$ip = getenv('REMOTE_ADDR');
}
}
return $ip;
}
function userlogin() {
global $CURUSER;
unset($GLOBALS["CURUSER"]);
$ip = getip(); //GET USERS IP
//Check IP bans
$nip = ip2long($ip);
$res = mysql_query("SELECT * FROM bans WHERE $nip >= first AND $nip <= last") or die(mysql_error());
if (mysql_num_rows($res) > 0) {
$row = mysql_fetch_array($res);
header("HTTP/1.0 403 Forbidden");
echo "<html><head><title>Forbidden</title></head><body><h1>Forbidden</h1>Unauthorized IP address.<br />".
"Reason for banning: $row[comment]</body></html>";
die;
}
//Check The Cookie and get CURUSER details
if (empty($_COOKIE["uid"]) || empty($_COOKIE["pass"]))
return;
$id = 0 + $_COOKIE["uid"]; //Get User ID from cookie
if (!$id)
return;
//Get User Details And Permissions
$res = mysql_query("SELECT * FROM users INNER JOIN groups ON users.class=groups.group_id WHERE users.id = $id AND users.enabled='yes' AND users.status = 'confirmed'") or die(mysql_error());
$row = mysql_fetch_array($res);
if (!$row)
return;
//Check PW in cookie matches DB (after adding secret to the hash)
$sec = hash_pad($row["secret"]);
if ($_COOKIE["pass"] != md5($sec . $row["password"] . $sec))
return;
mysql_query("UPDATE users SET last_access='" . get_date_time() . "', ip=".sqlesc($ip)." WHERE id=" . $row["id"]) or die(mysql_error());
$GLOBALS["CURUSER"] = $row;
unset($row);
}
function logincookie($id, $password, $secret, $updatedb = 1, $expires = 0x7fffffff) {
$md5 = md5($secret . $password . $secret);
setcookie("uid", $id, $expires, "/");
setcookie("pass", $md5, $expires, "/");
if ($updatedb)
mysql_query("UPDATE users SET last_login = '".get_date_time()."' WHERE id = $id");
}
function logoutcookie() {
setcookie("uid", "null", time(), "/");
setcookie("pass", "null", time(), "/");
}
function stdhead($title = "") {
global $site_config, $CURUSER, $THEME, $LANGUAGE; //Define globals
//require_once("cleanup.php"); //temp cleanup linkage :D
//docleanup();//TEMP CLEANUP CALL
//site online check
if (!$site_config["SITE_ONLINE"]){
if ($CURUSER["level"]!=="Administrator") {
echo '<BR><BR><BR><CENTER>'. stripslashes($site_config["OFFLINEMSG"]) .'</CENTER><BR><BR>';
die;
}else{
echo '<BR><BR><BR><CENTER><B><FONT COLOR=RED>SITE OFFLINE, ADMIN ONLY VIEWING! DO NOT LOGOUT</FONT></B><BR>If you logout please edit backend/config.php and set SITE_ONLINE to true </CENTER><BR><BR>';
}
}
//end check
if (!$CURUSER)
guestadd();
if ($title == "")
$title = $site_config['SITENAME'];
else
$title = $site_config['SITENAME']. " : ". htmlspecialchars($title);
require_once("themes/" . $THEME . "/block.php");
require_once("themes/" . $THEME . "/header.php");
}
function stdfoot() {
global $site_config, $CURUSER, $THEME, $LANGUAGE;
require_once("themes/" . $THEME . "/footer.php");
mysql_close();
}
//POLL MULTICOLOR BY HACK346
function get_poolsleft($i)
{
global $site_config, $THEME;
if ($i == 0 || $i == 5 || $i == 10 || $i == 15) return "<img src=".$site_config['SITEURL']."/themes/$THEME/images/polls/bar1-l.png border=\"0\">";
if ($i == 1 || $i == 6 || $i == 11 || $i == 16) return "<img src=".$site_config['SITEURL']."/themes/$THEME/images/polls/bar2-l.png border=\"0\">";
if ($i == 2 || $i == 7 || $i == 12 || $i == 17) return "<img src=".$site_config['SITEURL']."/themes/$THEME/images/polls/bar3-l.png border=\"0\">";
if ($i == 3 || $i == 8 || $i == 13 || $i == 18) return "<img src=".$site_config['SITEURL']."/themes/$THEME/images/polls/bar4-l.png border=\"0\">";
if ($i == 4 || $i == 9 || $i == 14 || $i == 19) return "<img src=".$site_config['SITEURL']."/themes/$THEME/images/polls/bar5-l.png border=\"0\">";
return "";
}
function get_poolsmiddle($i)
{
global $site_config, $THEME;
if ($i == 0 || $i == 5 || $i == 10 || $i == 15) return "<img src=".$site_config['SITEURL']."/themes/$THEME/images/polls/bar1.png border=\"0\"";
if ($i == 1 || $i == 6 || $i == 11 || $i == 16) return "<img src=".$site_config['SITEURL']."/themes/$THEME/images/polls/bar2.png border=\"0\"";
if ($i == 2 || $i == 7 || $i == 12 || $i == 17) return "<img src=".$site_config['SITEURL']."/themes/$THEME/images/polls/bar3.png border=\"0\"";
if ($i == 3 || $i == 8 || $i == 13 || $i == 18) return "<img src=".$site_config['SITEURL']."/themes/$THEME/images/polls/bar4.png border=\"0\"";
if ($i == 4 || $i == 9 || $i == 14 || $i == 19) return "<img src=".$site_config['SITEURL']."/themes/$THEME/images/polls/bar5.png border=\"0\"";
return "";
}
function get_poolsright($i)
{
global $site_config, $THEME;
if ($i == 0 || $i == 5 || $i == 10 || $i == 15) return "<img src=".$site_config['SITEURL']."/themes/$THEME/images/polls/bar1-r.png border=\"0\">";
if ($i == 1 || $i == 6 || $i == 11 || $i == 16) return "<img src=".$site_config['SITEURL']."/themes/$THEME/images/polls/bar2-r.png border=\"0\">";
if ($i == 2 || $i == 7 || $i == 12 || $i == 17) return "<img src=".$site_config['SITEURL']."/themes/$THEME/images/polls/bar3-r.png border=\"0\">";
if ($i == 3 || $i == 8 || $i == 13 || $i == 18) return "<img src=".$site_config['SITEURL']."/themes/$THEME/images/polls/bar4-r.png border=\"0\">";
if ($i == 4 || $i == 9 || $i == 14 || $i == 19) return "<img src=".$site_config['SITEURL']."/themes/$THEME/images/polls/bar5-r.png border=\"0\">";
return "";
}
function leftblocks() {
global $site_config, $CURUSER, $THEME, $LANGUAGE; //Define globals
$res=mysql_query("SELECT * FROM blocks WHERE position='left' AND enabled=1 ORDER BY sort");
$i=0;
$blocks=array();
while($result=mysql_fetch_array($res)){
if($result["position"]) {
$block=$result["name"];
$blocks[$i++]=$block;
}
}
foreach ($blocks as $blockfilename){
echo"<div id=\"ka".$result['id']."\" style=\"display: block;\">\n";
include("blocks/".$blockfilename."_block.php");
echo"</div>";
}
}
function rightblocks() {
global $site_config, $CURUSER, $THEME, $LANGUAGE; //Define globals
$res=mysql_query("SELECT * FROM blocks WHERE position='right' AND enabled=1 ORDER BY sort");
$i=0;
$blocks=array();
while($result=mysql_fetch_array($res)){
if($result["position"]) {
$block=$result["name"];
$blocks[$i++]=$block;
}
}
foreach ($blocks as $blockfilename){
include("blocks/".$blockfilename."_block.php");
}
}
function middleblocks() {
global $site_config, $CURUSER, $THEME, $LANGUAGE; //Define globals
$res=mysql_query("SELECT * FROM blocks WHERE position='middle' AND enabled=1 ORDER BY sort");
$i=0;
$blocks=array();
while($result=mysql_fetch_array($res)){
if($result["position"]) {
$block=$result["name"];
$blocks[$i++]=$block;
}
}
foreach ($blocks as $blockfilename){
include("blocks/".$blockfilename."_block.php");
}
}
function show_error_msg($title, $message, $wrapper = "1") {
if ($wrapper=="1") {
stdhead($title);
//echo "<b>DEBUG: stdhead Wrapper ON/Kill php gen further</b>";//remove later
}
begin_frame("<div class=error>". htmlspecialchars($title) ."</div>");
print("<CENTER><B>" . stripslashes(sqlesc($message)) . "</B></CENTER>\n");
end_frame();
if ($wrapper=="1"){
stdfoot();
die();
}
}
function show_success_msg($title, $message, $wrapper = "1") {
if ($wrapper=="1") {
stdhead($title);
//echo "<b>DEBUG: stdhead Wrapper ON/Kill php gen further</b>";//remove later
}
begin_frame("<div class=success>". htmlspecialchars($title) ."</div>");
print("<p><CENTER><B>" . stripslashes(sqlesc($message)) . "</B></CENTER></p>\n");
end_frame();
if ($wrapper=="1"){
stdfoot();
die();
}
}
//calculate health
// New (hack346 21/Jan/2009 @ 11:26)
function health($leechers, $seeders) {
if (($leechers == 0 && $seeders == 0) || ($leechers > 0 && $seeders == 0))
return $health0 = "<span><em style=\"left:3%\"></em></span><br>0%";
elseif ($seeders > $leechers)
return $health10 = "<span><em style=\"left:100%\"></em></span><br>100%";
$ratio = $seeders / $leechers * 100;
if ($ratio > 0 && $ratio < 15)
return $health1= "<stan><em style=\"left:10%\">10%</em></span><br>10%";
elseif ($ratio >= 15 && $ratio < 25)
return $health2 = "<span><em style=\"left:20%\">20%</em></span><br>20%";
elseif ($ratio >= 25 && $ratio < 35)
return $health3 = "<span><em style=\"left:30%\">30%</em></span><br>30%";
elseif ($ratio >= 35 && $ratio < 45)
return $health4 = "<span><em style=\"left:40%\">40%</em></span><br>40%";
elseif ($ratio >= 45 && $ratio < 55)
return $health5 = "<span><em style=\"left:50%\">50%</em></span><br>50%";
elseif ($ratio >= 55 && $ratio < 65)
return $health6 = "<span><em style=\"left:60%\">60%</em></span><br>60%";
elseif ($ratio >= 65 && $ratio < 75)
return $health7 = "<span><em style=\"left:70%\">70%</em></span><br>70%";
elseif ($ratio >= 75 && $ratio < 85)
return $health8 = "<span><em style=\"left:80%\">80%</em></span><br>80%";
elseif ($ratio >= 85 && $ratio < 95)
return $health9 = "<span><em style=\"left:90%\">90%</em></span><br>90%";
else
return $health10 = "<span><em style=\"left:100%\">100%</em></span><br>100%";
}
//secure vars
function sqlesc($x) {
if (get_magic_quotes_gpc()) {
$x = stripslashes($x);
}
if (!is_numeric($x)) {
$x = "'".mysql_real_escape_string($x)."'";
}
return $x;
}
function unesc($x) {
if (get_magic_quotes_gpc())
return stripslashes($x);
return $x;
}
function mkglobal($vars) {
if (!is_array($vars))
$vars = explode(":", $vars);
foreach ($vars as $v) {
if (isset($_GET[$v]))
$GLOBALS[$v] = stripslashes($_GET[$v]);
elseif (isset($_POST[$v]))
$GLOBALS[$v] = stripslashes($_POST[$v]);
else
return 0;
}
return 1;
}
function hash_pad($hash) {
return str_pad($hash, 20);
}
function hash_where($name, $hash) {
$shhash = preg_replace('/ *$/s', "", $hash);
return "($name = " . sqlesc($hash) . " OR $name = " . sqlesc($shhash) . ")";
}
function file_ungzip($fromFile){
$zp = @gzopen($fromFile, "r");
while(!@gzeof($zp)) { $string .= @gzread($zp, 4096); }
@gzclose($zp);
return $string;
}
function mksize($bytes) {
if ($bytes < 1000 * 1024)
return number_format($bytes / 1024, 2) . " KB";
if ($bytes < 1000 * 1048576)
return number_format($bytes / 1048576, 2) . " MB";
if ($bytes < 1000 * 1073741824)
return number_format($bytes / 1073741824, 2) . " GB";
return number_format($bytes / 1099511627776, 2) . " TB";
}
function escape_url($url) {
$ret = '';
for($i = 0; $i < strlen($url); $i+=2)
$ret .= '%'.$url[$i].$url[$i + 1];
return $ret;
}
function torrent_scrape_url($scrape, $hash) {
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, $scrape.'?info_hash='.escape_url($hash));
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$fp = curl_exec($ch);
curl_close($ch);
$ret = array();
if(!$fp) {
$ret['seeds'] = -1;
$ret['peers'] = -1;
}else{
$stats = BDecode($fp);
$binhash = addslashes(pack("H*", $hash));
$seeds = $stats['files'][$binhash]['complete'];
$peers = $stats['files'][$binhash]['incomplete'];
$downloaded = $stats['files'][$binhash]['downloaded'];
$ret['seeds'] = $seeds;
$ret['peers'] = $peers;
$ret['downloaded'] = $downloaded;
}
return $ret;
}
function mkprettytime($s) {
if ($s < 0)
$s = 0;
$t = array();
foreach (array("60:sec","60:min","24:hour","0:day") as $x) {
$y = explode(":", $x);
if ($y[0] > 1) {
$v = $s % $y[0];
$s = floor($s / $y[0]);
}
else
$v = $s;
$t[$y[1]] = $v;
}
if ($t["day"])
return $t["day"] . "d " . sprintf("%02d:%02d:%02d", $t["hour"], $t["min"], $t["sec"]);
if ($t["hour"])
return sprintf("%d:%02d:%02d", $t["hour"], $t["min"], $t["sec"]);
return sprintf("%d:%02d", $t["min"], $t["sec"]);
}
function gmtime() {
return strtotime(get_date_time());
}
function loggedinonly() {
global $CURUSER;
if (!$CURUSER) {
header("Refresh: 0; url=account-login.php?returnto=" . urlencode($_SERVER["REQUEST_URI"]));
exit();
}
$wherethisuser = where ($_SERVER["SCRIPT_FILENAME"],$CURUSER["id"]);
}
function validfilename($name) {
return preg_match('/^[^\0-\x1f:\\\\\/?*\xff#<>|]+$/si', $name);
}
function validemail($email) {
// return preg_match('/^[\w.-]+@([\w.-]+\.)+[a-z]{2,6}$/is', $email);
return preg_match('/^([a-z0-9._-](\+[a-z0-9])*)+@[a-z0-9.-]+\.[a-z]{2,6}$/i', $email);
}
function urlparse($m) {
$t = $m[0];
if (preg_match(',^\w+://,', $t))
return "<a href=\"$t\">$t</a>";
return "<a href=\"http://$t\">$t</a>";
}
function parsedescr($d, $html) {
if (!$html)
{
$d = htmlspecialchars($d);
$d = str_replace("\n", "\n<br />", $d);
}
return $d;
}
function mksecret($len = 20) {
$ret = "";
for ($i = 0; $i < $len; $i++)
$ret .= chr(mt_rand(0, 255));
return $ret;
}
function deletetorrent($id) {
global $site_config;
$row = @mysql_fetch_array(@mysql_query("SELECT image1,image2 FROM torrents WHERE id=$id"));
foreach(explode(".","peers.comments.ratings") as $x)
mysql_query("DELETE FROM $x WHERE torrent = $id");
if (file_exists("".$site_config["torrent_dir"]."/$id.torrent"))
unlink("".$site_config["torrent_dir"]."/$id.torrent");
if ($row["image1"]) {
$img1 = "".$site_config["torrent_dir"]."/images/".$row["image1"]."";
$del = unlink($img1);
}
if ($row["image2"]) {
$img2 = "".$site_config["torrent_dir"]."/images/".$row["image2"]."";
$del = unlink($img2);
}
mysql_query("DELETE FROM torrents WHERE id = $id");
}
function deleteaccount($userid) {
mysql_query("DELETE FROM users WHERE id = $userid");
mysql_query("DELETE FROM warnings WHERE userid = $userid");
mysql_query("DELETE FROM ratings WHERE user = $userid");
}
function genrelist() {
$ret = array();
$res = mysql_query("SELECT id, name, parent_cat FROM categories ORDER BY parent_cat ASC, sort_index ASC");
while ($row = mysql_fetch_array($res))
$ret[] = $row;
return $ret;
}
function langlist() {
$ret = array();
$res = mysql_query("SELECT id, name, image FROM torrentlang ORDER BY sort_index, id");
while ($row = mysql_fetch_array($res))
$ret[] = $row;
return $ret;
}
function agelist() {
$ret = array();
$res = mysql_query("SELECT id, name, image FROM torrentage ORDER BY sort_index, id");
while ($row = mysql_fetch_array($res))
$ret[] = $row;
return $ret;
}
function is_valid_id($id){
return is_numeric($id) && ($id > 0) && (floor($id) == $id);
}
function sql_timestamp_to_unix_timestamp($s){
return mktime(substr($s, 11, 2), substr($s, 14, 2), substr($s, 17, 2), substr($s, 5, 2), substr($s, 8, 2), substr($s, 0, 4));
}
function write_log($text){
$text = sqlesc($text);
$added = sqlesc(get_date_time());
mysql_query("INSERT INTO log (added, txt) VALUES($added, $text)") or sqlerr();
}
function get_elapsed_time($ts){
$mins = floor((gmtime() - $ts) / 60);
$hours = floor($mins / 60);
$mins -= $hours * 60;
$days = floor($hours / 24);
$hours -= $days * 24;
$weeks = floor($days / 7);
$days -= $weeks * 7;
$t = "";
if ($weeks > 0)
return "$weeks wk" . ($weeks > 1 ? "s" : "");
if ($days > 0)
return "$days day" . ($days > 1 ? "s" : "");
if ($hours > 0)
return "$hours hr" . ($hours > 1 ? "s" : "");
if ($mins > 0)
return "$mins min" . ($mins > 1 ? "s" : "");
return "< 1 min";
}
function hex2bin($hexdata) {
$bindata = "";
for ($i=0;$i<strlen($hexdata);$i+=2) {
$bindata.=chr(hexdec(substr($hexdata,$i,2)));
}
return $bindata;
}
function guestadd() {
$ip = $_SERVER["REMOTE_ADDR"];
$sql = mysql_query("SELECT time FROM guests WHERE ip='$ip'");
$ctime = gmtime();
if (mysql_fetch_row($sql))
{
@mysql_query("UPDATE guests SET ip='$ip', time='$ctime' WHERE ip='$ip'");
} else {
@mysql_query("INSERT INTO guests (ip, time) VALUES ('$ip', '$ctime')");
}
}
function getguests() {
$ip = $_SERVER["REMOTE_ADDR"];
$past = gmtime()-2400;
@mysql_query("DELETE FROM guests WHERE time < $past");
$guests = number_format(get_row_count("guests"));
return $guests;
}
function time_ago($addtime) {
$addtime = get_elapsed_time(sql_timestamp_to_unix_timestamp($addtime));
return $addtime;
}
function CutName ($vTxt, $Car) {
while(strlen($vTxt) > $Car) {
return substr($vTxt, 0, $Car) . "...";
} return $vTxt;
}
function searchfield($s) {
return preg_replace(array('/[^a-z0-9]/si', '/^\s*/s', '/\s*$/s', '/\s+/s'), array(" ", "", "", " "), $s);
}
function get_row_count($table, $suffix = "") {
if ($suffix)
$suffix = " $suffix";
($r = mysql_query("SELECT COUNT(*) FROM $table$suffix")) or die(mysql_error());
($a = mysql_fetch_row($r)) or die(mysql_error());
return $a[0];
}
function sqlerr($query = "") {
stdhead();
begin_frame("MYSQL Error");
print("<BR><b>MySQL error occured</b>.\n<br />Query: " . $query . "<br />\nError: (" . mysql_errno() . ") " . mysql_error());
end_frame();
stdfoot();
die;
}
function get_dt_num(){
return gmdate("YmdHis");
}
function get_date_time($timestamp = 0){
if ($timestamp)
return date("Y-m-d H:i:s", $timestamp);
else
return gmdate("Y-m-d H:i:s");
}
// Convert UTC to user's timezone
function utc_to_tz ($timestamp=0) {
GLOBAL $CURUSER;
if (!is_numeric($timestamp))
$timestamp = sql_timestamp_to_unix_timestamp($timestamp);
if ($timestamp == 0)
$timestamp = gmtime();
$timestamp = $timestamp + ($CURUSER['tzoffset']*60);
return date("Y-m-d H:i:s", $timestamp);
}
function utc_to_tz_time ($timestamp=0) {
GLOBAL $CURUSER;
if (!is_numeric($timestamp))
$timestamp = sql_timestamp_to_unix_timestamp($timestamp);
if ($timestamp == 0)
$timestamp = gmtime();
$timestamp = $timestamp + ($CURUSER['tzoffset']*60);
return $timestamp;
}
function encodehtml($s, $linebreaks = true) {
$s = str_replace("<", "<", str_replace("&", "&", $s));
if ($linebreaks)
$s = nl2br($s);
return $s;
}
function format_urls($s){
return preg_replace(
"/(\A|[^=\]'\"a-zA-Z0-9])((http|ftp|https|ftps|irc):\/\/[^<>\s]+)/i",
"\\1<a href=http://anonym.to/?\\2 target=_blank>\\2</a>", $s);
}
function format_comment($text)
{
global $site_config, $smilies, $privatesmilies;
$s = $text;
$s = htmlspecialchars($s);
$s = stripslashes($s);
$s = format_urls($s);
// [*]
$s = preg_replace("/\[\*\]/", "<li>", $s);
// [b]Bold[/b]
$s = preg_replace("/\[b\]((\s|.)+?)\[\/b\]/", "<b>\\1</b>", $s);
// [i]Italic[/i]
$s = preg_replace("/\[i\]((\s|.)+?)\[\/i\]/", "<i>\\1</i>", $s);
// [u]Underline[/u]
$s = preg_replace("/\[u\]((\s|.)+?)\[\/u\]/", "<u>\\1</u>", $s);
// [u]Underline[/u]
$s = preg_replace("/\[u\]((\s|.)+?)\[\/u\]/i", "<u>\\1</u>", $s);
// [img]http://www/image.gif[/img]
$s = preg_replace("/\[img\](http:\/\/[^\s'\"<>]+(\.gif|\.jpg|\.png|\.bmp|\.jpeg))\[\/img\]/i", "<a href=\"\\1\" rel=\"ibox\"><IMG border=\"0\" src=\"\\1\" width=120 title=\"Click to enlarge\"></a>", $s);
// [img=http://www/image.gif]
$s = preg_replace("/\[img=(http:\/\/[^\s'\"<>]+(\.gif|\.jpg|\.png|\.bmp|\.jpeg))\]/i", "<a href=\"\\1\" rel=\"ibox\"><IMG border=\"0\" src=\"\\1\" width=120 title=\"Click to enlarge\"></a>", $s);
// [color=blue]Text[/color]
$s = preg_replace(
"/\[color=([a-zA-Z]+)\]((\s|.)+?)\[\/color\]/i",
"<font color=\\1>\\2</font>", $s);
// [color=#ffcc99]Text[/color]
$s = preg_replace(
"/\[color=(#[a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9])\]((\s|.)+?)\[\/color\]/i",
"<font color=\\1>\\2</font>", $s);
// [url=http://www.example.com]Text[/url]
$s = preg_replace(
"/\[url=((http|ftp|https|ftps|irc):\/\/[^<>\s]+?)\]((\s|.)+?)\[\/url\]/i",
"<a href=http://anonym.to/?\\1 target=_blank>\\3</a>", $s);
// [url]http://www.example.com[/url]
$s = preg_replace(
"/\[url\]((http|ftp|https|ftps|irc):\/\/[^<>\s]+?)\[\/url\]/i",
"<a href=http://anonym.to/?\\1 target=_blank>\\1</a>", $s);
// [size=4]Text[/size]
$s = preg_replace(
"/\[size=([1-7])\]((\s|.)+?)\[\/size\]/i",
"<font size=\\1>\\2</font>", $s);
// [font=Arial]Text[/font]
$s = preg_replace(
"/\[font=([a-zA-Z ,]+)\]((\s|.)+?)\[\/font\]/i",
"<font face=\"\\1\">\\2</font>", $s);
//<<<@!2!@>>>
$s = preg_replace(
"/\<<<@!3!@>>>
$s = preg_replace(
"/\[quote=(.+?)\]\s*((\s|.)+?)\s*\[\/quote\]\s*/i",
"<p class=sub><b>\\1 wrote:</b></p><table class=main border=1 cellspacing=0 cellpadding=10><tr><td style='border: 1px black dotted'>\\2</td></tr></table><br />", $s);
//[code]Text[/code ]
$s = preg_replace(
"/\[code\]\s*((\s|.)+?)\s*\[\/code\]\s*/i",
"<p><b>Code:</b></p><table class=main border=1 cellspacing=0 cellpadding=10><tr><td style='border: 1px black dotted'>\\1</td></tr></table><br />", $s);
//[marqueeleft]Text[/marqueeleft]
$s = preg_replace(
"/\[marqueeleft\]\s*((\s|.)+?)\s*\[\/marqueeleft\]\s*/i",
"<div class=marqueetop>Message</div><table class=marquee cellspacing=0 cellpadding=0><tr><td><marquee onmouseover=this.stop() onmouseout=this.start() behavior=scroll scrollamount=1 width=100% direction=left loop=true >\\1</marquee></td></tr></table><br />", $s);
//[marqueeright]Text[/marqueeright]
$s = preg_replace(
"/\[marqueeright\]\s*((\s|.)+?)\s*\[\/marqueeright\]\s*/i",
"<div class=marqueetop>Message</div><table class=marquee cellspacing=0 cellpadding=0><tr><td><marquee onmouseover=this.stop() onmouseout=this.start() behavior=scroll scrollamount=1 width=100% direction=right loop=true >\\1</marquee></td></tr></table><br />", $s);
//[marqueeup]Text[/marqueeup]
$s = preg_replace(
"/\[marqueeup\]\s*((\s|.)+?)\s*\[\/marqueeup\]\s*/i",
"<div class=marqueetop>Message</div><table class=marquee cellspacing=0 cellpadding=0><tr><td><marquee onmouseover=this.stop() onmouseout=this.start() behavior=scroll scrollamount=1 width=100% direction=up loop=true >\\1</marquee></td></tr></table><br />", $s);
//[marqueedown]Text[/marqueedown]
$s = preg_replace(
"/\[marqueedown\]\s*((\s|.)+?)\s*\[\/marqueedown\]\s*/i",
"<div class=marqueetop>Message</div><table class=marquee cellspacing=0 cellpadding=0><tr><td><marquee onmouseover=this.stop() onmouseout=this.start() behavior=scroll scrollamount=1 width=100% direction=down loop=true >\\1</marquee></td></tr></table><br />", $s);
// [codebox]Some long text[/codebox ]
$s = preg_replace(
'/\[codebox\]\s*((\s|.)+?)\s*\[\/codebox\]\s*/i',
'<div class="codetop">CODEBOX</div><div class="codemain" style="OVERFLOW: auto; WHITE-SPACE: pre; width: 99%; HEIGHT: 200px">\\1</div>', $s );
//[blink]Text[/blink]
$s = preg_replace("/\[blink\]((\s|.)+?)\[\/blink\]/", "<blink>\\1</blink>", $s);
//[center]Text[/center]
$s = preg_replace("/\[center\]((\s|.)+?)\[\/center\]/", "<center>\\1</center>", $s);
//[left]Text[/left]
$s = preg_replace("/\[left\]((\s|.)+?)\[\/left\]/", "<div align=left>\\1</div>", $s);
//[right]Text[/right]
$s = preg_replace("/\[right\]((\s|.)+?)\[\/right\]/", "<div align=right>\\1</div>", $s);
//[video]http://somesite.com/test.divx[/video]
$s = preg_replace("/\[video\]((www.|http:\/\/|https:\/\/)[^\s]+(\.divx))\[\/video\]/i",
"<param name=filename value=\\1/><embed width=470 height=310 src=\\1></embed>", $s);
//[video]http://somesite.com/test.avi[/video]
$s = preg_replace("/\[video\]((www.|http:\/\/|https:\/\/)[^\s]+(\.avi))\[\/video\]/i",
"<object classid=\"clsid:67DABFBF-D0AB-41fa-9C46-CC0F21721616\" width=\"470\" height=\"310\" codebase=\"http://go.divx.com/plugin/DivXBrowserPlugin.cab\"><param name=\"autoPlay\" value=\"false\" /><param name=\"custommode\" value=\"Stage6\" /><param name=\"mode\" value=\"null\" /><param name=\"autoPlay\" value=\"false\" /><param name=\"allowContextMenu\" value=\"false\" /><param name=\"src\" value=\"\\1\" /><embed type=\"video/divx\" src=\"\\1\" custommode=\"Stage6\" width=\"470\" height=\"310\" mode=\"null\" autoPlay=\"false\" allowContextMenu=\"false\" pluginspage=\"http://go.divx.com/plugin/download\"></embed></object>", $s);
//[video]http://somesite.com/test.wmv[/video]
$s = preg_replace("/\[video\]((www.|http:\/\/|https:\/\/)[^\s]+(\.wmv))\[\/video\]/i",
"<param name=filename value=\\1/><embed width=470 height=310 src=\\1></embed>", $s);
//[video]http://somesite.com/test.mp4[/video]
$s = preg_replace("/\[video\]((www.|http:\/\/|https:\/\/)[^\s]+(\.mp4))\[\/video\]/i",
"<object id=\"MediaPlayer\" width=\"310\" height=\"280\" classid=\"CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95\" standby=\"Loading Windows Media Player components...\" type=\"application/x-oleobject\" codebase=\"http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,7,1112\"><param name=\"filename\" value=\"\\1\"><param name=\"Showcontrols\" value=\"True\"><param name=\"autoStart\" value=\"True\"><embed type=\"application/x-mplayer2\" src=\"\\1\" name=\"MediaPlayer\" width=\"310\" height=\"280\"> </embed></object>", $s);
//[video]http://somesite.com/test.swf[/video]
$s = preg_replace("/\[video\]((www.|http:\/\/|https:\/\/)[^\s]+(\.swf))\[\/video\]/i",
"<param name=movie value=\\1/><embed width=470 height=310 src=\\1></embed>", $s);
//[video=http://somesite.com/test.swf]
$s = preg_replace("/\[video=((www.|http:\/\/|https:\/\/)[^\s]+(\.swf))\]/i",
"<param name=movie value=\\1/><embed width=470 height=310 src=\\1></embed>", $s);
//[audio]http://somesite.com/file.mp3[/audio]
$s = preg_replace("/\[audio\]((www.|http:\/\/|https:\/\/)[^\s]+(\.mp3))\[\/audio\]/i","<embed autostart=false loop=false controller=true width=220 height=42 src=\\1></embed>", $s);
//[video]YouTube Vids url[/video]
$s = preg_replace("/\[tube\][^\s'\"<>]*youtube.com.*v=([^\s'\"<>]+)\[\/tube\]/ims", "<object width=\"330\" height=\"210\"><param name=\"movie\" value=\"http://www.youtube.com/v/\\1\"></param><embed src=\"http://www.youtube.com/v/\\1\" type=\"application/x-shockwave-flash\" width=\"330\" height=\"210\"></embed></object>", $s);
//[video]Dailymotion Vids url[/video]
$s = preg_replace("/\[video\][^\s'\"<>]*dailymotion.com\/swf\/([^\s'\"<>]+)\[\/video\]/ims", "<object width=\"425\" height=\"356\"><param name=\"movie\" value=\"http://www.dailymotion.com/swf/\\1\"></param><embed src=\"http://www.dailymotion.com/swf/\\1\" type=\"application/x-shockwave-flash\" width=\"500\" height=\"410\"></embed></object>", $s);
// [video]Google Vids url[/video]
$s = preg_replace("/\[gvideo\][^\s'\"<>]*video.google.com.*docid=(-?[0-9]+).*\[\/gvideo\]/ims", "<embed style=\"width:400px; height:310px;\" id=\"VideoPlayback\" align=\"middle\" type=\"application/x-shockwave-flash\" src=\"http://video.google.com/googleplayer.swf?docId=\\1\" allowScriptAccess=\"sameDomain\" quality=\"best\" bgcolor=\"#ffffff\" scale=\"noScale\" wmode=\"window\" salign=\"TL\" FlashVars=\"playerMode=embedded\"> </embed>", $s);
//[hr]
$s = preg_replace("/\[hr\]/i", "<hr>", $s);
//[hr=#ffffff] [hr=red]
$s = preg_replace("/\[hr=((#[a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9])|([a-zA-z]+))\]/i", "<hr color=\"\\1\"/>", $s);
//[swf]http://somesite.com/test.swf[/swf]
$s = preg_replace("/\[swf\]((www.|http:\/\/|https:\/\/)[^\s]+(\.swf))\[\/swf\]/i",
"<param name=movie value=\\1/><embed width=470 height=310 src=\\1></embed>", $s);
//[swf=http://somesite.com/test.swf]
$s = preg_replace("/\[swf=((www.|http:\/\/|https:\/\/)[^\s]+(\.swf))\]/i",
"<param name=movie value=\\1/><embed width=470 height=310 src=\\1></embed>", $s);
// Linebreaks
$s = nl2br($s);
// Maintain spacing
$s = str_replace(" ", " ", $s);
// Smilies
require_once("smilies.php");
reset($smilies);
while (list($code, $url) = each($smilies))
$s = str_replace($code, "<img border=0 src=" . $site_config['SITEURL'] . "/images/smilies/$url>", $s);
reset($privatesmilies);
while (list($code, $url) = each($privatesmilies))
$s = str_replace($code, "<img border=0 src=" . $site_config['SITEURL'] . "/images/smilies/$url>", $s);
$r = mysql_query("SELECT * FROM censor");
while($rr=mysql_fetch_row($r))
$s = preg_replace("/".preg_quote($rr[0])."/i", $rr[1], $s);
return $s;
}
function torrenttable($res) {
global $site_config, $CURUSER, $THEME, $LANGUAGE; //Define globals
if ($site_config["MEMBERSONLY_WAIT"] && $site_config["MEMBERSONLY"] && in_array($CURUSER["class"], explode(",",$site_config["WAIT_CLASS"]))) {
$gigs = $CURUSER["uploaded"] / (1024*1024*1024);
$ratio = (($CURUSER["downloaded"] > 0) ? ($CURUSER["uploaded"] / $CURUSER["downloaded"]) : 0);
if ($ratio < 0 || $gigs < 0) $wait = $site_config["WAITA"];
elseif ($ratio < $site_config["RATIOA"] || $gigs < $site_config["GIGSA"]) $wait = $site_config["WAITA"];
elseif ($ratio < $site_config["RATIOB"] || $gigs < $site_config["GIGSB"]) $wait = $site_config["WAITB"];
elseif ($ratio < $site_config["RATIOC"] || $gigs < $site_config["GIGSC"]) $wait = $site_config["WAITC"];
elseif ($ratio < $site_config["RATIOD"] || $gigs < $site_config["GIGSD"]) $wait = $site_config["WAITD"];
else $wait = 0;
}
// Columns
$cols = explode(",", $site_config["torrenttable_columns"]);
$cols = array_map("strtolower", $cols);
$cols = array_map("trim", $cols);
$colspan = count($cols);
// End
// Expanding Area
$expandrows = array();
if (!empty($site_config["torrenttable_expand"])) {
$expandrows = explode(",", $site_config["torrenttable_expand"]);
$expandrows = array_map("strtolower", $expandrows);
$expandrows = array_map("trim", $expandrows);
}
// End
echo '<table align=center cellpadding="0" cellspacing="0" class="ttable_headinner" width=100%><tr>';
foreach ($cols as $col) {
switch ($col) {
case 'category':
echo "<td class=ttable_head>".TYPE."</td>";
break;
case 'name':
echo "<td class=ttable_head>".NAME."</td>";
break;
case 'uploader':
echo "<td class=ttable_head>".UPLOADER."</td>";
break;
case 'comments':
echo "<td class=ttable_head><img src=\"".$site_config["SITEURL"]."/images/torrent/comments.png\" border=\"0\" alt=\"Comments\"></td>";
break;
case 'nfo':
echo "<td class=ttable_head>NFO</td>";
break;
case 'size':
echo "<td class=ttable_head>".SIZE."</td>";
break;
case 'youtube':
echo "<td class=ttable_head><img src=\"".$site_config["SITEURL"]."/images/torrent/youtube.png\" border=\"0\" alt=\"Youtube trailer\"></td>";
break;
case 'completed':
echo "<td class=ttable_head><img src=\"".$site_config["SITEURL"]."/images/torrent/completed.png\" border=\"0\" alt=\"Snatched\"></td>";
break;
case 'seeders':
echo "<td class=ttable_head><img src=\"".$site_config["SITEURL"]."/images/torrent/seeders.png\" border=\"0\" alt=\"Seeders\"></td>";
break;
case 'leechers':
echo "<td class=ttable_head><img src=\"".$site_config["SITEURL"]."/images/torrent/leechers.png\" border=\"0\" alt=\"Leechers\"></td>";
break;
case 'external':
if ($site_config["ALLOWEXTERNAL"])
echo "<td class=ttable_head><img src=\"".$site_config["SITEURL"]."/images/torrent/trackedby.png\" border=\"0\" alt=\"Local/External\"></td>";
break;
case 'added':
echo "<td class=ttable_head>".DATE_ADDED."</td>";
break;
case 'speed':
echo "<td class=ttable_head>".SPEED."</td>";
break;
case 'wait':
if ($wait)
echo "<td class=ttable_head>".WAIT."</td>";
break;
case 'rating':
echo "<td class=ttable_head>".RATINGS."</td>";
break;
}
}
if ($wait && !in_array("wait", $cols))
echo "<td class=ttable_head>".WAIT."</td>";
echo "</tr>";
while ($row = mysql_fetch_assoc($res)) {
$id = $row["id"];
print("<tr>\n");
$x = 1;
foreach ($cols as $col) {
switch ($col) {
case 'category':
print("<td class=ttable_col$x align=center valign=middle>");
if (!empty($row["cat_name"])) {
print("<a href=\"torrents.php?cat=" . $row["category"] . "\">");
if (!empty($row["cat_pic"]) && $row["cat_pic"] != "")
print("<img border=\"0\"src=\"" . $site_config['SITEURL'] . "/images/categories/" . $row["cat_pic"] . "\" alt=\"" . $row["cat_name"] . "\" />");
else
print($row["cat_parent"].": ".$row["cat_name"]);
print("</a>");
} else
print("-");
print("</td>\n");
break;
case 'name':
$char1 = 35; //cut name length
$smallname = CutName(htmlspecialchars($row["name"]), $char1);
$dispname = "<b>".$smallname."</b>";
$last_access = $CURUSER["last_browse"];
$time_now = gmtime();
if ($last_access > $time_now || !is_numeric($last_access))
$last_access = $time_now;
if (sql_timestamp_to_unix_timestamp($row["added"]) >= $last_access)
$dispname .= "</a><img src='images/new.gif' border='0'>";
if ($row["sticky"] == "yes")
$dispname .= " </a><img src='images/sticky.gif' border='0' alt=Sticky>";
$nuked_res = mysql_query("SELECT nuked FROM torrents WHERE id=$id") or
sqlerr(__FILE__, __LINE__);
$nuked_row = mysql_fetch_assoc($nuked_res);
if ($nuked_row["nuked"] == "yes")
$dispname .= " </a> <img src='images/nuked.gif' border='0' alt=Nuked>";
if ($row["freeleech"] == 1)
$dispname .= " </a><img src='images/free.gif' border='0' alt=Free>";
if ($row["vip"] == y)
$dispname .= " </a><img src='images/vip.gif' border='0' alt=Vip Torrent";
$resdet = mysql_query("SELECT views, hits, tube, times_completed, torrentlang.name AS lang_name, torrentage.name AS age_name, torrentage.image AS age_image FROM torrents LEFT JOIN torrentlang ON torrentlang = torrentlang.id LEFT JOIN torrentage ON torrents.torrentage = torrentage.id WHERE torrents.id = $id") or die(mysql_error());
$rowdet = mysql_fetch_array($resdet);
$bimg = @mysql_fetch_array(@mysql_query("SELECT image1 FROM torrents WHERE id=$id"));
$balon =($bimg["image1"] ? "$site_config[SITEURL]/uploads/images/" . htmlspecialchars($bimg["image1"]) : "http://bvlist.com/images/nocover.jpg");
$descr = "<table width=100% class=ttable_col1 cellspacing=0 cellpadding=5 align=center><tr><td class=ttable_head colspan=2 align=center>$smallname</td></tr><tr valign=top><td align=center><img border=0 width=120 src=$balon></td><td><div align=left><b>Date Added: </b>" . date("d-m-Y", utc_to_tz_time($row["added"])) . "<br /><b>Size: </b>". mksize($row["size"]) . "<br /><b>Snatched: </b>" . $rowdet["times_completed"] . "<br /></div><div align=left><b>Views: </b>" . $rowdet["views"] . "<br /><b>Language: </b>" .$rowdet["lang_name"] ."<br /><b>Hits: </b>" . $rowdet["hits"] . "<br /><b>Seeders: </b><font color=green>" . $row["seeders"] . "</font><br /><b>Leechers: </b><font color=red>" . $row["leechers"] . "</font><br /></div></td></tr></table>";
/// END BALONN MOD ///
print("<td class=ttable_col$x nowrap>".(count($expandrows)?" <a href=\"javascript: klappe_torrent('t".$row['id']."')\"><img border=\"0\" src=\"".$site_config["SITEURL"]."/images/plus.gif\" id=\"pict".$row['id']."\" alt=\"Show/Hide\" class=\"showthecross\"></a>":"")." <a href=\"torrents-details.php?id=$id&hit=1\" onMouseover=\"return overlib('$descr')\"; onMouseout=\"return nd()\">$dispname</td>");
break;
case 'uploader':
echo "<td class=ttable_col$x align=center>";
if (($row["anon"] == "yes" || $row["privacy"] == "strong") && $CURUSER["id"] != $row["owner"] && $CURUSER["edit_torrents"] != "yes")
echo "Anonymous";
elseif ($row["username"])
echo "<a href='account-details.php?id=$row[owner]'>$row[username]</a>";
else
echo "Unknown";
echo "</td>";
break;
case 'comments':
print("<td class=ttable_col$x align=center><font size=1 face=Verdana><a href=comments.php?type=torrent&id=$id>" . $row["comments"] . "</a></td>\n");
break;
case 'nfo':
if ($row["nfo"] == "yes")
print("<td class=ttable_col$x align=center><a href=nfo-view.php?id=$row[id]><img src=" . $site_config['SITEURL'] . "/images/icon_nfo.gif border=0 alt='View NFO'></a></td>");
else
print("<td class=ttable_col$x align=center>-</td>");
break;
case 'size':
print("<td class=ttable_col$x align=center>".mksize($row["size"])."</td>\n");
break;
case 'youtube':
if ($site_config["AGEON"] && $CURUSER["class"] <=3) {
if ($CURUSER["age"] < $rowdet["age_name"]){
$torrentube = "<a href=\"" . $site_config['SITEURL'] . "/images/torrent/novideo.jpg\" rel=\"ibox\"><img src=" . $site_config['SITEURL'] . "/images/torrent/play.png border=0 alt='View Trailer'></a>";
} else{
$torrentube = "<a href=". str_replace("watch?v=", "v/", htmlspecialchars($rowdet["tube"])) ." rel=\"ibox\"><img src=" . $site_config['SITEURL'] . "/images/torrent/play.png border=0 alt='View Trailer'></a>";
}
}else{
$torrentube = "<a href=". str_replace("watch?v=", "v/", htmlspecialchars($rowdet["tube"])) ." rel=\"ibox\"><img src=" . $site_config['SITEURL'] . "/images/torrent/play.png border=0 alt='View Trailer'></a>";
}
if (!empty($rowdet["tube"]))
print("<td class=ttable_col$x align=center>$torrentube</td>");
else
print("<td class=ttable_col$x align=center>-</td>");
break;
case 'completed':
print("<td class=ttable_col$x align=center><font color=blue><B>".number_format($row["times_completed"])."</B></font></td>");
break;
case 'seeders':
print("<td class=ttable_col$x align=center><b><font color=green><B>".number_format($row["seeders"])."</b></font></td>\n");
break;
case 'leechers':
print("<td class=ttable_col$x align=center><font color=red><B>" . $row["leechers"] . "</b></font></td>\n");
break;
case 'external':
if ($site_config["ALLOWEXTERNAL"]){
if ($row["external"]=='yes')
print("<td class=ttable_col$x align=center><img src=\"".$site_config["SITEURL"]."/images/torrent/extern.png\" border=\"0\" alt=\"Extern\"></td>\n");
else
print("<td class=ttable_col$x align=center><img src=\"".$site_config["SITEURL"]."/images/torrent/intern.png\" border=\"0\" alt=\"Local\"></td>\n");
}
break;
case 'added':
print("<td class=ttable_col$x align=center>".date("d-m-Y<\\B\\R>H:i:s", utc_to_tz_time($row['added']))."</td>");
break;
case 'speed':
if ($row["external"] != "yes" && $row["leechers"] >= 1){
$speedQ = mysql_query("SELECT (SUM(downloaded)) / (UNIX_TIMESTAMP('".get_date_time()."') - UNIX_TIMESTAMP(started)) AS totalspeed FROM peers WHERE seeder = 'no' AND torrent = '$id'ORDER BY started ASC") or die(mysql_error());
$a = mysql_fetch_assoc($speedQ);
$totalspeed = mksize($a["totalspeed"]) . "/s";
} else
$totalspeed = "--";
print("<td class=ttable_col$x align=center>$totalspeed</td>");
break;
case 'wait':
if ($wait){
$elapsed = floor((gmtime() - strtotime($row["added"])) / 3600);
if ($elapsed < $wait && $row["external"] != "yes") {
$color = dechex(floor(127*($wait - $elapsed)/48 + 128)*65536);
print("<td class=ttable_col$x align=center><a href=\"faq.php\"><font color=\"$color\">" . number_format($wait - $elapsed) . " h</font></a></td>\n");
} else
print("<td class=ttable_col$x align=center>--</td>\n");
}
break;
case 'rating':
if (!$row["rating"])
$rating = "--";
else
$rating = "<a title='$row[rating]/5'>".ratingpic($row["rating"])."</a>";
//$rating = ratingpic($row["rating"]);
//$srating .= "$rpic (" . $row["rating"] . " out of 5) " . $row["numratings"] . " users have rated this torrent";
print("<td class=ttable_col$x align=center>$rating</td>");
break;
}
if ($x == 2)
$x--;
else
$x++;
}
//Wait Time Check
if ($wait && !in_array("wait", $cols)) {
$elapsed = floor((gmtime() - strtotime($row["added"])) / 3600);
if ($elapsed < $wait && $row["external"] != "yes") {
$color = dechex(floor(127*($wait - $elapsed)/48 + 128)*65536);
print("<td class=ttable_col$x align=center><a href=\"faq.php\"><font color=\"$color\">" . number_format($wait - $elapsed) . " h</font></a></td>\n");
} else
print("<td class=ttable_col$x align=center>--</td>\n");
$colspan++;
if ($x == 2)
$x--;
else
$x++;
}
print("</tr>\n");
//Expanding area
if (count($expandrows)) {
print("<tr><td class=ttable_col$x colspan=$colspan><div id=\"kt".$row['id']."\" style=\"margin-left: 70px; display: none;\">");
print("<table width=97% border=0 cellspacing=0 cellpadding=0>");
foreach ($expandrows as $expandrow) {
switch ($expandrow) {
case 'size':
print("<tr><td><B>".SIZE."</B>: ".mksize($row['size'])."</td></tr>");
break;
case 'speed':
if ($row["external"] != "yes" && $row["leechers"] >= 1){
$speedQ = mysql_query("SELECT (SUM(downloaded)) / (UNIX_TIMESTAMP('".get_date_time()."') - UNIX_TIMESTAMP(started)) AS totalspeed FROM peers WHERE seeder = 'no' AND torrent = '$id'ORDER BY started ASC") or die(mysql_error());
$a = mysql_fetch_assoc($speedQ);
$totalspeed = mksize($a["totalspeed"]) . "/s";
print("<tr><td><B>Speed:</B> $totalspeed</td></tr>");
}
break;
case 'added':
print("<tr><td><B>".DATE_ADDED.":</B> ".date("d-m-Y \\a\\t H:i:s", utc_to_tz_time($row['added']))."</td></tr>");
break;
case 'tracker':
if ($row["external"] == "yes")
print("<tr><td><B>".TRACKER.":</B> ".htmlspecialchars($row["announce"])."</td></tr>");
break;
case 'completed':
print("<tr><td><B>".COMPLETED."</B>: ".$row['times_completed']."</td></tr>");
break;
case 'uploader':
echo"<tr><td><B>".UPLOADER."</B>:";
if (($row["anon"] == "yes" || $row["privacy"] == "strong") && $CURUSER["id"] != $row["owner"] && $CURUSER["edit_torrents"] != "yes")
echo "Anonymous";
elseif ($row["username"])
echo "<a href='account-details.php?id=$row[owner]'>$row[username]</a>";
else
echo "Unknown";
echo "</td></tr>";
break;
case 'health':
print("<tr><td><B>".HEALTH."</B>: <img src=".$site_config["SITEURL"]."/images/health_".health($row["leechers"], $row["seeders"]).".gif></td></tr>\n");
break;
}
}
print("</table></div></td></tr>\n");
}
//End Expanding Area
}
print("</table><BR>\n");
}
function pager($rpp, $count, $href, $opts = array()) {
$pages = ceil($count / $rpp);
if (!$opts["lastpagedefault"])
$pagedefault = 0;
else {
$pagedefault = floor(($count - 1) / $rpp);
if ($pagedefault < 0)
$pagedefault = 0;
}
if (isset($_GET["page"])) {
$page = 0 + $_GET["page"];
if ($page < 0)
$page = $pagedefault;
}
else
$page = $pagedefault;
$pager = "";
$mp = $pages - 1;
$as = " <img src=\"http://bvlist.com/images/torrent/prev.png\" border=\"0\" alt=\"Preview page\">";
if ($page >= 1) {
$pager .= "<a href=\"{$href}page=" . ($page - 1) . "\">";
$pager .= $as;
$pager .= "</a>";
}
else
$pager .= $as;
$pager .= " ";
$as = "<img src=\"http://bvlist.com/images/torrent/next.png\" border=\"0\" alt=\"Next page\"> ";
if ($page < $mp && $mp >= 0) {
$pager .= "<a href=\"{$href}page=" . ($page + 1) . "\">";
$pager .= $as;
$pager .= "</a>";
}
else
$pager .= $as;
if ($count) {
$pagerarr = array();
$dotted = 0;
$dotspace = 3;
$dotend = $pages - $dotspace;
$curdotend = $page - $dotspace;
$curdotstart = $page + $dotspace;
for ($i = 0; $i < $pages; $i++) {
if (($i >= $dotspace && $i <= $curdotend) || ($i >= $curdotstart && $i < $dotend)) {
if (!$dotted)
$pagerarr[] = "...";
$dotted = 1;
continue;
}
$dotted = 0;
$start = $i * $rpp + 1;
$end = $start + $rpp - 1;
if ($end > $count)
$end = $count;
$text = "$start - $end";
if ($i != $page)
$pagerarr[] = "<a href=\"{$href}page=$i\"><b>$text</b></a>";
else
$pagerarr[] = "<b>$text</b>";
}
$pagerstr = join(" | ", $pagerarr);
$pagertop = "<p align=\"center\">$pager<br />$pagerstr</p>\n";
$pagerbottom = "<p align=\"center\">$pagerstr<br />$pager</p>\n";
}
else {
$pagertop = "<p align=\"center\">$pager</p>\n";
$pagerbottom = $pagertop;
}
$start = $page * $rpp;
return array($pagertop, $pagerbottom, "LIMIT $start,$rpp");
}
//Commenttable FIX by hack346
function commenttable($res) {
global $site_config, $CURUSER, $THEME, $LANGUAGE; //Define globals
while ($row = mysql_fetch_assoc($res)) {
$postername = htmlspecialchars($row["username"]);
if ($postername == "") {
$postername = "Deluser";
$title = "Deleted Account";
$avatar = "";
$usersignature = "";
$userdownloaded = "";
$useruploaded = "";
}else {
$privacylevel = $row["privacy"];
$avatar = htmlspecialchars($row["avatar"]);
$class = get_user_class_name($row["class"]);
$title = htmlspecialchars($row["title"]);
$usersignature = stripslashes(format_comment($row["signature"]));
$userdownloaded = mksize($row["downloaded"]);
$useruploaded = mksize($row["uploaded"]);
$gender = htmlspecialchars($row["gender"]);
}
if ($row["downloaded"] > 0)
$userratio = number_format($row["uploaded"] / $row["downloaded"], 2);
else
$userratio = "---";
if (!$avatar)
$avatar = "".$site_config["SITEURL"]."/images/default_avatar.gif";
$commenttext = format_comment($row["text"]);
$type = $_GET["type"];
if(!$type)
$type = "torrent";
print("<table border=0 width=100% cellpadding=4>\n");
print("<tr><td colspan=2 align=right class=table_col1>");
if($CURUSER["edit_torrents"]=="yes" || $CURUSER["edit_forum"]=="yes" || $CURUSER['id'] == $row['user']){
print("[<a href=comments.php?id=" . $row["id"] . "&type=$type&edit=1>edit</a>] ");
}
if($CURUSER["delete_torrents"]=="yes" || $CURUSER["delete_forum"]=="yes"){
print("[<a href=comments.php?id=" . $row["id"] . "&type=$type&delete=1>delete</a>] ");
}
print("[<a href=report.php?comment=" . $row["id"] . ">Report</a>] ");
print("Posted: ".date("d-m-Y \\a\\t H:i:s", utc_to_tz_time($row['added'])));
print("</td></tr>");
if ($row["donated"] > 0) {
$donated = "<img src=images/users/money.png border=0 alt=Donor>";
} else {
$donated = "";
}
if ($privacylevel != "strong" || ($CURUSER["control_panel"] == "yes")) {
print("<tr><td valign=top width=120 align=left class=table_col2><center><b>$postername $donated</b><br><img width=120 height=120 src=$avatar></center><br>Class: $class<center>$title <br>Uploaded: $useruploaded<br>Downloaded: $userdownloaded<br>Ratio: <font color=".get_ratio_color($userratio).">$userratio</font><br>Gender: <img src=".get_user_gender_image($gender)."></td>");
}else{
print("<tr><td valign=top width=120 align=left class=table_col2><center><b>$postername $donated</b><br><img width=120 height=120 src=$avatar></center><br><center><i>$title</i></center><br>Uploaded: ---<br>Downloaded: ---<br>Ratio: ---<br></td>");
}
print("<td valign=top width='75%' class=table_col2>$commenttext");
if($usersignature){
print("<br><div style=\"padding-top:40%;\"><FIELDSET><LEGEND>Signature</LEGEND>$usersignature</FIELDSET></div></td>");
}else{
print("</td>");
}
print("</tr></table><BR>\n");
}
}
function checker(){
GLOBAL $site_config, $THEME;
$file = file_get_contents("themes/$THEME/footer.php");
if(!strpos($file, "license")) {
show_error_msg("Warning!", "Copyright removed or changed ");
}
}
function where ($scriptname = "index", $userid){
if (!is_valid_id($userid))
die;
if (preg_match("/torrents-details/i", $scriptname))
$where = "Browsing Torrents Details...";
elseif (preg_match("/torrents/i", $scriptname))
$where = "Browsing Torrent Lists...";
elseif (preg_match("/account-details/i", $scriptname))
$where = "Browsing Account Details...";
elseif (preg_match("/torrents-upload/i", $scriptname))
$where = "Uploading Torrent..";
elseif (preg_match("/account/i", $scriptname))
$where = "Browsing User Control Panel...";
elseif (preg_match("/torrents-search/i", $scriptname))
$where = "Searching...";
elseif (preg_match("/forums/i", $scriptname))
$where = "Browsing Forums...";
elseif (preg_match("/index/i", $scriptname))
$where = "Browsing Homepage...";
else
$where = "Unknown Location...";
$query = sprintf("UPDATE users SET page=".sqlesc($where)." WHERE id ='%s'",
mysql_real_escape_string($userid));
$result = mysql_query($query);
if (!$result)
die;
else
return $where;
}
function get_user_class_name($i){
$res=mysql_query("SELECT level FROM groups WHERE group_id=".$i."");
$row=mysql_fetch_row($res);
return $row[0];
}
function get_user_class(){
global $CURUSER;
return $CURUSER["class"];
}
function get_user_gender_image($gender)
{
switch ($gender)
{
case Male: return "http://bvlist.com/images/users/male.png alt=\"Male\"";
case Female: return "http://bvlist.com/images/users/female.png alt=\"Female\"";
case '': return "http://bvlist.com/images/users/na.png alt=\"Gender Not Selected\"";
}
return "";
}
function get_user_class_image($class)
{
switch ($class)
{
case 1: return "http://bvlist.com/images/class/user.png";
case 2: return "http://bvlist.com/images/class/power.png";
case 3: return "http://bvlist.com/images/class/vip.png";
case 4: return "http://bvlist.com/images/class/uploader.png";
case 5: return "http://bvlist.com/images/class/mod.png";
case 6: return "http://bvlist.com/images/class/supmod.png";
case 7: return "http://bvlist.com/images/class/admin.png";
}
return "";
}
function get_level_value($level)
{
switch ($level)
{
case yes: return "<img src=images/admin/yes.png alt=\"Yes\">";
case no: return "<img src=images/admin/no.png alt=\"No\">";
}
return "";
}
function reqcommenttable($rows)
{
global $site_config, $CURUSER, $THEME, $LANGUAGE;
$count = 0;
foreach ($rows as $row)
{
$postername = htmlspecialchars($row["username"]);
if ($postername == "") {
$postername = "Deluser";
$title = "Deleted Account";
$avatar = "";
$usersignature = "";
$userdownloaded = "";
$useruploaded = "";
}else {
$privacylevel = $row["privacy"];
$avatar = htmlspecialchars($row["avatar"]);
$class = get_user_class_name($row["class"]);
$title = htmlspecialchars($row["title"]);
$usersignature = stripslashes(format_comment($row["signature"]));
$userdownloaded = mksize($row["downloaded"]);
$useruploaded = mksize($row["uploaded"]);
$gender = htmlspecialchars($row["gender"]);
}
if ($row["downloaded"] > 0)
$userratio = number_format($row["uploaded"] / $row["downloaded"], 2);
else
$userratio = "---";
if (!$avatar)
$avatar = "".$site_config["SITEURL"]."/images/default_avatar.gif";
$text = format_comment($row["text"]);
if ($row["editedby"])
$text .= "<p><font size=1 class=small>Edited by <a
href=userdetails.php?id=$row[editedby]><b>$row[username]</b></a> $row[editedat] GMT</font></p>\n";
print("<table border=0 width=100% cellpadding=4>\n");
print("<tr><td colspan=2 align=right class=table_col1>");
if($CURUSER["edit_torrents"]=="yes" || $CURUSER["class"] >=5 || $CURUSER['id'] == $row['user']){
print("[<a href=reqcomment.php?action=edit&cid=" . $row["id"] . ">edit</a>] ");
}
if($CURUSER["delete_torrents"]=="yes" || $CURUSER["class"] >=5){
print("[<a href=reqcomment.php?action=delete&cid=" . $row["id"] . ">delete</a>] ");
}
print("[<a href=reqcomment.php?action=vieworiginal&cid=" . $row["id"] . ">View original</a>] ");
print("Posted: ".date("d-m-Y \\a\\t H:i:s", utc_to_tz_time($row['added'])));
print("</td></tr>");
if ($row["donated"] > 0) {
$donated = "<img src=images/users/money.png border=0 alt=Donor>";
} else {
$donated = "";
}
if ($privacylevel != "strong" || ($CURUSER["control_panel"] == "yes")) {
print("<tr><td valign=top width=120 align=left class=table_col2><center><b>$postername $donated</b><br><img width=120 height=120 src=$avatar></center><br>Class: $class<center>$title <br>Uploaded: $useruploaded<br>Downloaded: $userdownloaded<br>Ratio: <font color=".get_ratio_color($userratio).">$userratio</font><br>Gender: <img src=".get_user_gender_image($gender)."></td>");
}else{
print("<tr><td valign=top width=120 align=left class=table_col2><center><b>$postername $donated</b><br><img width=120 height=120 src=$avatar></center><br><center><i>$title</i></center><br>Uploaded: ---<br>Downloaded: ---<br>Ratio: ---<br></td>");
}
print("<td valign=top width='75%' class=table_col2>$text");
if($usersignature){
print("<br><div style=\"padding-top:40%;\"><FIELDSET><LEGEND>Signature</LEGEND>$usersignature</FIELDSET></div></td>");
}else{
print("</td>");
}
print("</tr></table><BR>\n");
}
}
function get_ratio_color($ratio) {
if ($ratio < 0.1) return "#ff0000";
if ($ratio < 0.2) return "#ee0000";
if ($ratio < 0.3) return "#dd0000";
if ($ratio < 0.4) return "#cc0000";
if ($ratio < 0.5) return "#bb0000";
if ($ratio < 0.6) return "#aa0000";
if ($ratio < 0.7) return "#990000";
if ($ratio < 0.8) return "#880000";
if ($ratio < 0.9) return "#770000";
if ($ratio < 1) return "#660000";
return "green";
}
function ratingpic($num) {
GLOBAL $site_config;
$r = round($num * 2) / 2;
if ($r != $num) {
$n = $num-$r;
if ($n < .25)
$n = 0;
elseif ($n >= .25 && $n < .75)
$n = .5;
$r += $n;
}
if ($r < 1 || $r > 5)
return;
return "<img src=\"".$site_config["SITEURL"]."/images/rating/$r.gif\" border=\"0\" alt=\"rating: $num/5\" />";
}
function DateDiff ($start, $end) {
if (!is_numeric($start))
$start = sql_timestamp_to_unix_timestamp($start);
if (!is_numeric($end))
$end = sql_timestamp_to_unix_timestamp($end);
return ($end - $start);
}
function autolink($al_url, $al_msg) // create autolink
{
stdhead("Redirecting");
begin_frame("Redirecting");
echo "\n<meta http-equiv=\"refresh\" content=\"2; URL=$al_url\">\n";
echo "<center><b>$al_msg</b>\n";
echo "<p>\n<b><div class=success>Redirecting ...</div></b>\n";
echo "<p>\n[ <a href='$al_url'>Click here if u are not redirected</a> ]</center>\n";
end_frame();
stdfoot();
exit;
}
function classlist() {
$ret = array();
$res = mysql_query("SELECT * FROM groups ORDER BY group_id ASC");
while ($row = mysql_fetch_array($res))
$ret[] = $row;
return $ret;
}
function sql_query($query)
{
++$_SESSION['totalqueries'];
return mysql_query($query);
}
function write_transferlog($text)
{
$text = sqlesc($text);
$added = sqlesc(get_date_time());
mysql_query("INSERT INTO transferlog (added, txt) VALUES($added, $text)") or die(mysql_error());
}
function parked() {
global $CURUSER;
if ($CURUSER["parked"] == "yes")
show_error_msg("Error", "your account is parked.", 1);
}
function license(){
global $GLOBALS, $site_config;
return $license = "<center>Powered by ".$site_config["license"]." v.".$site_config['h-trackerversion']."</center>";
}
function generated(){
global $GLOBALS, $site_config;
$totaltime = array_sum(explode(" ", microtime())) - $GLOBALS['tstart'];
return printf("Page generated in %f", $totaltime);
}
function ads(){
$res = mysql_query("SELECT id, banners, site_url FROM ads WHERE approved = 'yes' ORDER BY RAND()") or die(mysql_error());
while ($row = mysql_fetch_assoc($res)) {
return "<center><a href='".htmlspecialchars($row["site_url"])."'><img src=".htmlspecialchars($row["banners"])." border=0></a></center>";
}
}
?>