0,0 → 1,1009 |
<?php |
|
/************************************************************* |
* TorrentFlux - PHP Torrent Manager |
* www.torrentflux.com |
**************************************************************/ |
/* |
This file is part of TorrentFlux. |
|
TorrentFlux is free software; you can redistribute it and/or modify |
it under the terms of the GNU General Public License as published by |
the Free Software Foundation; either version 2 of the License, or |
(at your option) any later version. |
|
TorrentFlux is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
GNU General Public License for more details. |
|
You should have received a copy of the GNU General Public License |
along with TorrentFlux; if not, write to the Free Software |
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
*/ |
|
|
include_once("config.php"); |
include_once("functions.php"); |
|
$messages = ""; |
|
// set refresh option into the session cookie |
if(array_key_exists("pagerefresh", $_GET)) |
{ |
if($_GET["pagerefresh"] == "false") |
{ |
$_SESSION['prefresh'] = false; |
header("location: index.php"); |
exit(); |
} |
|
if($_GET["pagerefresh"] == "true") |
{ |
$_SESSION["prefresh"] = true; |
header("location: index.php"); |
exit(); |
} |
} |
// Check to see if QManager is running if not Start it. |
if (checkQManager() == 0 ) |
{ |
if ($cfg["AllowQueing"]) |
{ |
if (is_dir($cfg["path"]) && is_writable($cfg["path"])) |
{ |
AuditAction($cfg["constants"]["QManager"], "QManager Not Running"); |
sleep(2); |
startQManager($cfg["maxServerThreads"],$cfg["maxUserThreads"],$cfg["sleepInterval"]); |
sleep(2); |
} |
else |
{ |
AuditAction($cfg["constants"]["error"], "Error starting Queue Manager -- TorrentFlux settings are not correct (path is not valid)"); |
if (IsAdmin()) |
{ |
header("location: admin.php?op=configSettings"); |
exit(); |
} |
else |
{ |
$messages .= "<b>Error</b> TorrentFlux settings are not correct (path is not valid) -- please contact an admin.<br>"; |
} |
} |
} |
} |
|
$torrent = getRequestVar('torrent'); |
|
if(!empty($torrent)) |
{ |
include_once("AliasFile.php"); |
|
if ($cfg["enable_file_priority"]) |
{ |
include_once("setpriority.php"); |
// Process setPriority Request. |
setPriority($torrent); |
} |
|
$spo = getRequestVar('setPriorityOnly'); |
if (!empty($spo)){ |
// This is a setPriortiyOnly Request. |
|
}else |
{ |
// if we are to start a torrent then do so |
|
// check to see if the path to the python script is valid |
if (!is_file($cfg["btphpbin"])) |
{ |
AuditAction($cfg["constants"]["error"], "Error Path for ".$cfg["btphpbin"]." is not valid"); |
if (IsAdmin()) |
{ |
header("location: admin.php?op=configSettings"); |
exit(); |
} |
else |
{ |
$messages .= "<b>Error</b> TorrentFlux settings are not correct (path to python script is not valid) -- please contact an admin.<br>"; |
} |
} |
|
$command = ""; |
|
$rate = getRequestVar('rate'); |
if (empty($rate)) |
{ |
if ($rate != 0) |
{ |
$rate = $cfg["max_upload_rate"]; |
} |
} |
$drate = getRequestVar('drate'); |
if (empty($drate)) |
{ |
if ($drate != 0) |
{ |
$drate = $cfg["max_download_rate"]; |
} |
} |
$superseeder = getRequestVar('superseeder'); |
if (empty($superseeder)) |
{ |
$superseeder = "0"; // should be 0 in most cases |
} |
$runtime = getRequestVar('runtime'); |
if (empty($runtime)) |
{ |
$runtime = $cfg["torrent_dies_when_done"]; |
} |
|
$maxuploads = getRequestVar('maxuploads'); |
if (empty($maxuploads)) |
{ |
if ($maxuploads != 0) |
{ |
$maxuploads = $cfg["max_uploads"]; |
} |
} |
$minport = getRequestVar('minport'); |
if (empty($minport)) |
{ |
$minport = $cfg["minport"]; |
} |
$maxport = getRequestVar('maxport'); |
if (empty($maxport)) |
{ |
$maxport = $cfg["maxport"]; |
} |
$rerequest = getRequestVar("rerequest"); |
if (empty($rerequest)) |
{ |
$rerequest = $cfg["rerequest_interval"]; |
} |
$sharekill = getRequestVar('sharekill'); |
|
if ($runtime == "True" ) |
$sharekill = "-1"; |
|
if (empty($sharekill)) |
{ |
if ($sharekill != "0") |
{ |
$sharekill = $cfg["sharekill"]; |
} |
} |
if ($cfg["AllowQueing"]) |
{ |
if(IsAdmin()) |
{ |
$queue = getRequestVar('queue'); |
if($queue == 'on') |
{ |
$queue = "1"; |
}else |
{ |
$queue = "0"; |
} |
} |
else |
{ |
$queue = "1"; |
} |
} |
|
$torrent = urldecode($torrent); |
$alias = getAliasName($torrent); |
$owner = getOwner($torrent); |
|
// The following lines of code were suggested by Jody Steele jmlsteele@stfu.ca |
// This is to help manage user downloads by their user names |
//if the user's path doesnt exist, create it |
if (!is_dir($cfg["path"]."/".$owner)) |
{ |
if (is_writable($cfg["path"])) |
{ |
mkdir($cfg["path"]."/".$owner, 0777); |
} |
else |
{ |
AuditAction($cfg["constants"]["error"], "Error -- " . $cfg["path"] . " is not writable."); |
if (IsAdmin()) |
{ |
header("location: admin.php?op=configSettings"); |
exit(); |
} |
else |
{ |
$messages .= "<b>Error</b> TorrentFlux settings are not correct (path is not writable) -- please contact an admin.<br>"; |
} |
} |
} |
|
// create AliasFile object and write out the stat file |
$af = new AliasFile($cfg["torrent_file_path"].$alias.".stat", $owner); |
|
if ($cfg["AllowQueing"]) |
{ |
if($queue == "1") |
{ |
$af->QueueTorrentFile(); // this only writes out the stat file (does not start torrent) |
} |
else |
{ |
$af->StartTorrentFile(); // this only writes out the stat file (does not start torrent) |
} |
} |
else |
{ |
$af->StartTorrentFile(); // this only writes out the stat file (does not start torrent) |
} |
|
if (usingTornado()) |
{ |
$command = $runtime." ".$sharekill." ".$cfg["torrent_file_path"].$alias.".stat ".$owner." --responsefile '".$cfg["torrent_file_path"].$torrent."' --display_interval 5 --max_download_rate ". $drate ." --max_upload_rate ".$rate." --max_uploads ".$maxuploads." --minport ".$minport." --maxport ".$maxport." --rerequest_interval ".$rerequest." --super_seeder ".$superseeder; |
|
if(file_exists($cfg["torrent_file_path"].$alias.".prio")) { |
$priolist = explode(',',file_get_contents($cfg["torrent_file_path"].$alias.".prio")); |
$priolist = implode(',',array_slice($priolist,1,$priolist[0])); |
$command .= " --priority ".$priolist; |
} |
|
$command .= " ".$cfg["cmd_options"]." > /dev/null &"; |
|
if ($cfg["AllowQueing"] && $queue == "1") |
{ |
// This file is being queued. |
} |
else |
{ |
// This flie is being started manually. |
|
if (! array_key_exists("pythonCmd", $cfg)) |
{ |
insertSetting("pythonCmd","/usr/bin/python"); |
} |
|
if (! array_key_exists("debugTorrents", $cfg)) |
{ |
insertSetting("debugTorrents", "0"); |
} |
|
if (!$cfg["debugTorrents"]) |
{ |
$pyCmd = $cfg["pythonCmd"] . " -OO"; |
}else{ |
$pyCmd = $cfg["pythonCmd"]; |
} |
|
$command = "cd " . $cfg["path"] . $owner . "; HOME=".$cfg["path"]."; export HOME; nohup " . $pyCmd . " " .$cfg["btphpbin"] . " " . $command; |
} |
|
} |
else |
{ |
// Must be using the Original BitTorrent Client |
// This is now being required to allow Queing functionality |
//$command = "cd " . $cfg["path"] . $owner . "; nohup " . $cfg["btphpbin"] . " ".$runtime." ".$sharekill." ".$cfg["torrent_file_path"].$alias.".stat ".$owner." --responsefile \"".$cfg["torrent_file_path"].$torrent."\" --display_interval 5 --max_download_rate ". $drate ." --max_upload_rate ".$rate." --max_uploads ".$maxuploads." --minport ".$minport." --maxport ".$maxport." --rerequest_interval ".$rerequest." ".$cfg["cmd_options"]." > /dev/null &"; |
$messages .= "<b>Error</b> BitTornado is only supported Client at this time.<br>"; |
} |
|
// write the session to close so older version of PHP will not hang |
session_write_close("TorrentFlux"); |
|
if($af->running == "3") |
{ |
writeQinfo($cfg["torrent_file_path"]."queue/".$alias.".stat",$command); |
AuditAction($cfg["constants"]["queued_torrent"], $torrent."<br>Die:".$runtime.", Sharekill:".$sharekill.", MaxUploads:".$maxuploads.", DownRate:".$drate.", UploadRate:".$rate.", Ports:".$minport."-".$maxport.", SuperSeed:".$superseeder.", Rerequest Interval:".$rerequest); |
AuditAction($cfg["constants"]["queued_torrent"], $command); |
} |
else |
{ |
// The following command starts the torrent running! w00t! |
$result = exec($command); |
|
AuditAction($cfg["constants"]["start_torrent"], $torrent."<br>Die:".$runtime.", Sharekill:".$sharekill.", MaxUploads:".$maxuploads.", DownRate:".$drate.", UploadRate:".$rate.", Ports:".$minport."-".$maxport.", SuperSeed:".$superseeder.", Rerequest Interval:".$rerequest); |
|
// slow down and wait for thread to kick off. |
// otherwise on fast servers it will kill stop it before it gets a chance to run. |
sleep(1); |
} |
|
if ($messages == "") |
{ |
if (array_key_exists("closeme",$_POST)) |
{ |
?> |
<script language="JavaScript"> |
window.opener.location.reload(true); |
window.close(); |
</script> |
<?php |
exit(); |
} |
else |
{ |
header("location: index.php"); |
exit(); |
} |
} |
else |
{ |
AuditAction($cfg["constants"]["error"], $messages); |
} |
} |
} |
|
|
// Do they want us to get a torrent via a URL? |
$url_upload = getRequestVar('url_upload'); |
|
if(! $url_upload == '') |
{ |
$arURL = explode("/", $url_upload); |
$file_name = urldecode($arURL[count($arURL)-1]); // get the file name |
$file_name = str_replace(array("'",","), "", $file_name); |
$file_name = stripslashes($file_name); |
$ext_msg = ""; |
|
// Check to see if url has something like ?passkey=12345 |
// If so remove it. |
if( ( $point = strrpos( $file_name, "?" ) ) !== false ) |
{ |
$file_name = substr( $file_name, 0, $point ); |
} |
|
$ret = strrpos($file_name,"."); |
if ($ret === false) |
{ |
$file_name .= ".torrent"; |
} |
else |
{ |
if(!strcmp(strtolower(substr($file_name, strlen($file_name)-8, 8)), ".torrent") == 0) |
{ |
$file_name .= ".torrent"; |
} |
} |
|
$url_upload = str_replace(" ", "%20", $url_upload); |
|
// This is to support Sites that pass an id along with the url for torrent downloads. |
$tmpId = getRequestVar("id"); |
if(!empty($tmpId)) |
{ |
$url_upload .= "&id=".$tmpId; |
} |
|
// Call fetchtorrent to retrieve the torrent file |
$output = FetchTorrent( $url_upload ); |
|
if (array_key_exists("save_torrent_name",$cfg)) |
{ |
if ($cfg["save_torrent_name"] != "") |
{ |
$file_name = $cfg["save_torrent_name"]; |
} |
} |
|
$file_name = cleanFileName($file_name); |
|
// if the output had data then write it to a file |
if ((strlen($output) > 0) && (strpos($output, "<br />") === false)) |
{ |
if (is_file($cfg["torrent_file_path"].$file_name)) |
{ |
// Error |
$messages .= "<b>Error</b> with (<b>".$file_name."</b>), the file already exists on the server.<br><center><a href=\"".$_SERVER['PHP_SELF']."\">[Refresh]</a></center>"; |
$ext_msg = "DUPLICATE :: "; |
} |
else |
{ |
// open a file to write to |
$fw = fopen($cfg["torrent_file_path"].$file_name,'w'); |
fwrite($fw, $output); |
fclose($fw); |
} |
} |
else |
{ |
$messages .= "<b>Error</b> Getting the File (<b>".$file_name."</b>), Could be a Dead URL.<br><center><a href=\"".$_SERVER['PHP_SELF']."\">[Refresh]</a></center>"; |
} |
|
if ($messages == "") |
{ |
AuditAction($cfg["constants"]["url_upload"], $file_name); |
header("location: index.php"); |
exit(); |
} |
else |
{ |
// there was an error |
AuditAction($cfg["constants"]["error"], $cfg["constants"]["url_upload"]." :: ".$ext_msg.$file_name); |
} |
} |
|
// Handle the file upload if there is one |
if(!empty($_FILES['upload_file']['name'])) |
{ |
$file_name = stripslashes($_FILES['upload_file']['name']); |
$file_name = str_replace(array("'",","), "", $file_name); |
$file_name = cleanFileName($file_name); |
$ext_msg = ""; |
|
if($_FILES['upload_file']['size'] <= 1000000 && |
$_FILES['upload_file']['size'] > 0) |
{ |
if (ereg(getFileFilter($cfg["file_types_array"]), $file_name)) |
{ |
//FILE IS BEING UPLOADED |
if (is_file($cfg["torrent_file_path"].$file_name)) |
{ |
// Error |
$messages .= "<b>Error</b> with (<b>".$file_name."</b>), the file already exists on the server.<br><center><a href=\"".$_SERVER['PHP_SELF']."\">[Refresh]</a></center>"; |
$ext_msg = "DUPLICATE :: "; |
} |
else |
{ |
if(move_uploaded_file($_FILES['upload_file']['tmp_name'], $cfg["torrent_file_path"].$file_name)) |
{ |
chmod($cfg["torrent_file_path"].$file_name, 0644); |
|
AuditAction($cfg["constants"]["file_upload"], $file_name); |
|
header("location: index.php"); |
} |
else |
{ |
$messages .= "<font color=\"#ff0000\" size=3>ERROR: File not uploaded, file could not be found or could not be moved:<br>".$cfg["torrent_file_path"] . $file_name."</font><br>"; |
} |
} |
} |
else |
{ |
$messages .= "<font color=\"#ff0000\" size=3>ERROR: The type of file you are uploading is not allowed.</font><br>"; |
} |
} |
else |
{ |
$messages .= "<font color=\"#ff0000\" size=3>ERROR: File not uploaded, check file size limit.</font><br>"; |
} |
|
if($messages != "") |
{ |
// there was an error |
AuditAction($cfg["constants"]["error"], $cfg["constants"]["file_upload"]." :: ".$ext_msg.$file_name); |
} |
} // End File Upload |
|
|
// if a file was set to be deleted then delete it |
$delfile = getRequestVar('delfile'); |
if(! $delfile == '') |
{ |
$alias_file = getRequestVar('alias_file'); |
if (($cfg["user"] == getOwner($delfile)) || IsAdmin()) |
{ |
@unlink($cfg["torrent_file_path"].$delfile); |
@unlink($cfg["torrent_file_path"].$alias_file); |
// try to remove the QInfo if in case it was queued. |
@unlink($cfg["torrent_file_path"]."queue/".$alias_file.".Qinfo"); |
|
// try to remove the pid file |
@unlink($cfg["torrent_file_path"].$alias_file.".pid"); |
@unlink($cfg["torrent_file_path"].getAliasName($delfile).".prio"); |
|
AuditAction($cfg["constants"]["delete_torrent"], $delfile); |
|
header("location: index.php"); |
exit(); |
} |
else |
{ |
AuditAction($cfg["constants"]["error"], $cfg["user"]." attempted to delete ".$delfile); |
} |
} |
|
// Did the user select the option to kill a running torrent? |
$kill = getRequestVar('kill'); |
if(! $kill == '') |
{ |
include_once("AliasFile.php"); |
include_once("RunningTorrent.php"); |
|
$kill_torrent = getRequestVar('kill_torrent'); |
$alias_file = getRequestVar('alias_file'); |
// We are going to write a '0' on the front of the stat file so that |
// the BT client will no to stop -- this will report stats when it dies |
$the_user = getOwner($kill_torrent); |
// read the alias file |
// create AliasFile object |
$af = new AliasFile($cfg["torrent_file_path"].$alias_file, $the_user); |
if($af->percent_done < 100) |
{ |
// The torrent is being stopped but is not completed dowloading |
$af->percent_done = ($af->percent_done + 100)*-1; |
$af->running = "0"; |
$af->time_left = "Torrent Stopped"; |
} |
else |
{ |
// Torrent was seeding and is now being stopped |
$af->percent_done = 100; |
$af->running = "0"; |
$af->time_left = "Download Succeeded!"; |
} |
|
// see if the torrent process is hung. |
if (!is_file($cfg["torrent_file_path"].$alias_file.".pid")) |
{ |
$runningTorrents = getRunningTorrents(); |
foreach ($runningTorrents as $key => $value) |
{ |
$rt = new RunningTorrent($value); |
if ($rt->statFile == $alias_file) { |
AuditAction($cfg["constants"]["error"], "Posible Hung Process " . $rt->processId); |
// $result = exec("kill ".$rt->processId); |
} |
} |
} |
|
// Write out the new Stat File |
$af->WriteFile(); |
|
AuditAction($cfg["constants"]["kill_torrent"], $kill_torrent); |
$return = getRequestVar('return'); |
if (!empty($return)) |
{ |
sleep(3); |
$result = exec("kill ".$kill); |
// try to remove the pid file |
@unlink($cfg["torrent_file_path"].$alias_file.".pid"); |
header("location: ".$return.".php?op=queueSettings"); |
exit(); |
} |
else |
{ |
header("location: index.php"); |
exit(); |
} |
} |
|
// Did the user select the option to remove a torrent from the Queue? |
if(isset($_REQUEST["dQueue"])) |
{ |
$alias_file = getRequestVar('alias_file'); |
$QEntry = getRequestVar('QEntry'); |
|
// Is the Qinfo file still there? |
if (file_exists($cfg["torrent_file_path"]."queue/".$alias_file.".Qinfo")) |
{ |
// Yes, then delete it and update the stat file. |
include_once("AliasFile.php"); |
// We are going to write a '2' on the front of the stat file so that |
// it will be set back to New Status |
$the_user = getOwner($QEntry); |
// read the alias file |
// create AliasFile object |
$af = new AliasFile($cfg["torrent_file_path"].$alias_file, $the_user); |
|
if($af->percent_done > 0 && $af->percent_done < 100) |
{ |
// has downloaded something at some point, mark it is incomplete |
$af->running = "0"; |
$af->time_left = "Torrent Stopped"; |
} |
|
if ($af->percent_done == 0 || $af->percent_done == "") |
{ |
$af->running = "2"; |
$af->time_left = ""; |
} |
|
if ($af->percent_done == 100) |
{ |
// Torrent was seeding and is now being stopped |
$af->running = "0"; |
$af->time_left = "Download Succeeded!"; |
} |
|
// Write out the new Stat File |
$af->WriteFile(); |
|
// Remove Qinfo file. |
@unlink($cfg["torrent_file_path"]."queue/".$alias_file.".Qinfo"); |
|
AuditAction($cfg["constants"]["unqueued_torrent"], $QEntry); |
} |
else |
{ |
// torrent has been started... try and kill it. |
AuditAction($cfg["constants"]["unqueued_torrent"], $QEntry . "has been started -- TRY TO KILL IT"); |
header("location: index.php?alias_file=".$alias_file."&kill=true&kill_torrent=".urlencode($QEntry)); |
exit(); |
} |
|
header("location: index.php"); |
exit(); |
} |
|
$drivespace = getDriveSpace($cfg["path"]); |
|
|
/************************************************************ |
|
************************************************************/ |
?> |
<html> |
<head> |
<title><?php echo $cfg["pagetitle"] ?></title> |
<link rel="icon" href="images/favicon.ico" type="image/x-icon" /> |
<link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" /> |
<LINK REL="StyleSheet" HREF="themes/<?php echo $cfg["theme"] ?>/style.css" TYPE="text/css"> |
<META HTTP-EQUIV="Pragma" CONTENT="no-cache; charset=<?php echo _CHARSET ?>"> |
<?php |
if(!isset($_SESSION['prefresh']) || ($_SESSION['prefresh'] == true)) |
{ |
echo "<meta http-equiv=\"REFRESH\" content=\"".$cfg["page_refresh"].";URL=index.php\">"; |
} |
?> |
<div id="overDiv" style="position:absolute;visibility:hidden;z-index:1000;"></div> |
<script language="JavaScript"> |
var ol_closeclick = "1"; |
var ol_close = "<font color=#ffffff><b>X</b></font>"; |
var ol_fgclass = "fg"; |
var ol_bgclass = "bg"; |
var ol_captionfontclass = "overCaption"; |
var ol_closefontclass = "overClose"; |
var ol_textfontclass = "overBody"; |
var ol_cap = " Torrent Status"; |
</script> |
<script src="overlib.js" type="text/javascript"></script> |
<script language="JavaScript"> |
function ShowDetails(name_file) |
{ |
window.open (name_file,'_blank','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,width=430,height=225') |
} |
function StartTorrent(name_file) |
{ |
myWindow = window.open (name_file,'_blank','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,width=700,height=530') |
} |
function ConfirmDelete(file) |
{ |
return confirm("<?php echo _ABOUTTODELETE ?>: " + file) |
} |
</script> |
</head> |
|
<body topmargin="8" bgcolor="<?php echo $cfg["main_bgcolor"] ?>"> |
|
<div align="center"> |
|
<?php |
if ($messages != "") |
{ |
?> |
<table border="1" cellpadding="10" bgcolor="#ff9b9b"> |
<tr> |
<td><div align="center"><?php echo $messages ?></div></td> |
</tr> |
</table><br><br> |
<?php |
} |
?> |
<table border="0" cellpadding="0" cellspacing="0" width="760"> |
<tr> |
<td> |
<table border="1" bordercolor="<?php echo $cfg["table_border_dk"] ?>" cellpadding="4" cellspacing="0" width="100%"> |
<tr> |
<td colspan="2" background="themes/<?php echo $cfg["theme"] ?>/images/bar.gif"> |
<?php DisplayTitleBar($cfg["pagetitle"]); ?> |
</td> |
</tr> |
<tr> |
<td bgcolor="<?php echo $cfg["table_header_bg"] ?>"> |
<table width="100%" cellpadding="3" cellspacing="0" border="0"> |
<tr> |
<form name="form_file" action="index.php" method="post" enctype="multipart/form-data"> |
<td> |
<?php echo _SELECTFILE ?>:<br> |
<input type="File" name="upload_file" size="40"> |
<input type="Submit" value="<?php echo _UPLOAD ?>"> |
</td> |
</form> |
</tr> |
<tr> |
<form name="form_url" action="index.php" method="post"> |
<td> |
<hr> |
<?php echo _URLFILE ?>:<br> |
<input type="text" name="url_upload" size="50"> |
<input type="Submit" value="<?php echo _GETFILE ?>"> |
</td> |
</form> |
</tr> |
<?php |
if ($cfg["enable_search"]) |
{ |
?> |
<tr> |
<form name="form_search" action="torrentSearch.php" method="get"> |
<td> |
<hr> |
Torrent <?php echo _SEARCH ?>:<br> |
<input type="text" name="searchterm" size="30" maxlength="50"> |
<?php |
echo buildSearchEngineDDL($cfg["searchEngine"]) |
?> |
<input type="Submit" value="<?php echo _SEARCH ?>"> |
</td> |
</form> |
</tr> |
<?php |
} |
?> |
</table> |
|
</td> |
<td bgcolor="<?php echo $cfg["table_data_bg"] ?>" width="310" valign="top"> |
<table width="100%" cellpadding="1" border="0"> |
<tr> |
<td valign="top"> |
<b><?php echo _TORRENTLINKS ?>:</b><br> |
<?php |
$arLinks = GetLinks(); |
foreach($arLinks as $link) |
{ |
$arURL = parse_url($link); |
echo "<a href=\"".$link."\" target=\"_blank\"><img src=\"images/arrow.gif\" width=9 height=9 title=\"".$link."\" border=0 align=\"baseline\">".$arURL['host']."</a><br>\n"; |
} |
|
echo "</ul></td>"; |
|
$arUsers = GetUsers(); |
$arOnlineUsers = array(); |
$arOfflineUsers = array(); |
|
for($inx = 0; $inx < count($arUsers); $inx++) |
{ |
if(IsOnline($arUsers[$inx])) |
{ |
array_push($arOnlineUsers, $arUsers[$inx]); |
} |
else |
{ |
array_push($arOfflineUsers, $arUsers[$inx]); |
} |
} |
|
echo "<td bgcolor=\"".$cfg["table_data_bg"]."\" valign=\"top\">"; |
echo "<b>"._ONLINE.":</b><br>"; |
|
for($inx = 0; $inx < count($arOnlineUsers); $inx++) |
{ |
echo "<a href=\"message.php?to_user=".$arOnlineUsers[$inx]."\">"; |
echo "<img src=\"images/user.gif\" width=17 height=14 title=\"\" border=0 align=\"bottom\">". $arOnlineUsers[$inx]; |
echo "</a><br>\n"; |
} |
|
// Does the user want to see offline users? |
if ($cfg["hide_offline"] == false) |
{ |
echo "<b>"._OFFLINE.":</b></br>"; |
// Show offline users |
|
for($inx = 0; $inx < count($arOfflineUsers); $inx++) |
{ |
echo "<a href=\"message.php?to_user=".$arOfflineUsers[$inx]."\">"; |
echo "<img src=\"images/user_offline.gif\" width=17 height=14 title=\"\" border=0 align=\"bottom\">".$arOfflineUsers[$inx]; |
echo "</a><br>\n"; |
} |
} |
|
echo "</td>"; |
?> |
</tr> |
</table> |
</td> |
</tr> |
<tr> |
<td bgcolor="<?php echo $cfg["table_header_bg"] ?>" colspan="2"> |
<?php |
displayDriveSpaceBar($drivespace); |
?> |
</td> |
</tr> |
<tr> |
<td bgcolor="<?php echo $cfg["table_data_bg"] ?>" colspan="2"> |
<div align="center"> |
<font face="Arial" size="2"> |
<a href="readrss.php"> |
<img src="images/download_owner.gif" width="16" height="16" border="0" title="RSS Torrents" align="absmiddle">RSS Torrents</a> |
| |
<a href="drivespace.php"> |
<img src="images/hdd.gif" width="16" height="16" border="0" title="<?php echo $drivespace ?>% Used" align="absmiddle"><?php echo _DRIVESPACE ?></a> |
| |
<a href="who.php"> |
<img src="images/who.gif" width="16" height="16" title="" border="0" align="absmiddle"><?php echo _SERVERSTATS ?></a> |
| |
<a href="all_services.php"> |
<img src="images/all.gif" width="16" height="16" title="" border="0" align="absmiddle"><?php echo _ALL ?></a> |
| |
<a href="dir.php"> |
<img src="images/folder.gif" width="16" height="16" title="" border="0" align="absmiddle"><?php echo _DIRECTORYLIST ?></a> |
| |
<a href="dir.php?dir=<?php echo $cfg["user"] ?>"><img src="images/folder.gif" width="16" height="16" title="My Directory" border="0" align="absmiddle">My Directory</a> |
</font> |
</div> |
</td> |
</tr> |
</table> |
<?php |
getDirList($cfg["torrent_file_path"]); |
?> |
<tr><td bgcolor="<?php echo $cfg["table_header_bg"] ?>" colspan="6"> |
|
<table width="100%" border="0" cellpadding="0" cellspacing="0"> |
<tr> |
<td valign="top"> |
|
<div align="center"> |
|
<table> |
<tr> |
<td><img src="images/properties.png" width="18" height="13" title="<?php echo _TORRENTDETAILS ?>"></td> |
<td class="tiny"><?php echo _TORRENTDETAILS ?> </td> |
<td><img src="images/run_on.gif" width="16" height="16" title="<?php echo _RUNTORRENT ?>"></td> |
<td class="tiny"><?php echo _RUNTORRENT ?> </td> |
<td><img src="images/kill.gif" width="16" height="16" title="<?php echo _STOPDOWNLOAD ?>"></td> |
<td class="tiny"><?php echo _STOPDOWNLOAD ?> </td> |
<?php |
if ($cfg["AllowQueing"]) |
{ |
?> |
<td><img src="images/queued.gif" width="16" height="16" title="<?php echo _DELQUEUE ?>"></td> |
<td class="tiny"><?php echo _DELQUEUE ?> </td> |
<?php |
} |
?> |
<td><img src="images/seed_on.gif" width="16" height="16" title="<?php echo _SEEDTORRENT ?>"></td> |
<td class="tiny"><?php echo _SEEDTORRENT ?> </td> |
<td><img src="images/delete_on.gif" width="16" height="16" title="<?php echo _DELETE ?>"></td> |
<td class="tiny"><?php echo _DELETE ?></td> |
<?php |
if ($cfg["enable_torrent_download"]) |
{ |
?> |
<td> <img src="images/down.gif" width="9" height="9" title="<?php echo _DELQUEUE ?>"></td> |
<td class="tiny">Download Torrent</td> |
<?php |
} |
?> |
</tr> |
</table> |
|
|
<table width="100%" cellpadding="5"> |
<tr> |
<td width="33%"> |
<div class="tiny"> |
<?php |
if(checkQManager() > 0) |
{ |
echo "<img src=\"images/green.gif\" align=\"absmiddle\" title=\"Queue Manager Running\" align=\"absmiddle\"> Queue Manager Running<br>"; |
echo "<strong>".strval(getRunningTorrentCount())."</strong> torrent(s) running and <strong>".strval(getNumberOfQueuedTorrents())."</strong> queued.<br>"; |
echo "Total torrents server will run: <strong>".$cfg["maxServerThreads"]."</strong><br>"; |
echo "Total torrents a user may run: <strong>".$cfg["maxUserThreads"]."</strong><br>"; |
echo "* Torrents are queued when limits are met.<br>"; |
} |
else |
{ |
echo "<img src=\"images/black.gif\" title=\"Queue Manager Off\" align=\"absmiddle\"> Queue Manager Off<br><br>"; |
} |
?> |
</div> |
</td> |
<td width="33%" valign="bottom"> |
<div align="center" class="tiny"> |
<?php |
|
if(!isset($_SESSION['prefresh']) || ($_SESSION['prefresh'] == true)) |
{ |
echo "*** "._PAGEWILLREFRESH." ".$cfg["page_refresh"]." "._SECONDS." ***<br>"; |
echo "<a href=\"".$_SERVER['PHP_SELF']."?pagerefresh=false\"><font class=\"tiny\">"._TURNOFFREFRESH."</font></a>"; |
} |
else |
{ |
echo "<a href=\"".$_SERVER['PHP_SELF']."?pagerefresh=true\"><font class=\"tiny\">"._TURNONREFRESH."</font></a>"; |
} |
|
|
if($drivespace >= 98) |
{ |
|
echo "\n\n<script language=\"JavaScript\">\n alert(\""._WARNING.": ".$drivespace."% "._DRIVESPACEUSED."\")\n </script>"; |
} |
|
if (!array_key_exists("total_download",$cfg)) $cfg["total_download"] = 0; |
if (!array_key_exists("total_upload",$cfg)) $cfg["total_upload"] = 0; |
|
|
?> |
</div> |
</td> |
<td valign="top" width="33%" align="right"> |
|
<table> |
<tr> |
<td class="tiny" align="right"><?php echo _CURRENTDOWNLOAD ?>:</td> |
<td class="tiny"><strong><?php echo number_format($cfg["total_download"], 2); ?></strong> kB/s</td> |
</tr> |
<tr> |
<td class="tiny" align="right"><?php echo _CURRENTUPLOAD ?>:</td> |
<td class="tiny"><strong><?php echo number_format($cfg["total_upload"], 2); ?></strong> kB/s</td> |
</tr> |
<tr> |
<td class="tiny" align="right"><?php echo _FREESPACE ?>:</td> |
<td class="tiny"><strong><?php echo formatFreeSpace($cfg["free_space"]) ?></strong></td> |
</tr> |
<tr> |
<td class="tiny" align="right"><?php echo _SERVERLOAD ?>:</td> |
<td class="tiny"> |
<?php |
if ($cfg["show_server_load"] && isFile($cfg["loadavg_path"])) |
{ |
$loadavg_array = explode(" ", exec("cat ".$cfg["loadavg_path"])); |
$loadavg = $loadavg_array[2]; |
echo "<strong>".$loadavg."</strong>"; |
} |
else |
{ |
echo "<strong>n/a</strong>"; |
} |
?> |
</td> |
</tr> |
</table> |
|
</td> |
</tr> |
</table> |
|
|
|
|
|
</div> |
|
</td> |
</tr> |
</table> |
|
|
|
</td></tr> |
</table> |
|
<?php |
echo DisplayTorrentFluxLink(); |
// At this point Any User actions should have taken place |
// Check to see if the user has a force_read message from an admin |
if (IsForceReadMsg()) |
{ |
// Yes, then warn them |
?> |
<script language="JavaScript"> |
if (confirm("<?php echo _ADMINMESSAGE ?>")) |
{ |
document.location = "readmsg.php"; |
} |
</script> |
<?php |
} |
?> |
|
</td> |
</tr> |
</table> |
</body> |
</html> |