Blame | Last modification | View Log | Download
<?php/************************************************************** TorrentFlux - PHP Torrent Manager* www.torrentflux.com**************************************************************//*This file is part of TorrentFlux.TorrentFlux is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe 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 ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with TorrentFlux; if not, write to the Free SoftwareFoundation, 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 cookieif(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 validif (!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 itif (!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 hangsession_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><?phpexit();}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 fileif ((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 errorAuditAction($cfg["constants"]["error"], $cfg["constants"]["url_upload"]." :: ".$ext_msg.$file_name);}}// Handle the file upload if there is oneif(!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 UPLOADEDif (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 errorAuditAction($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 ?>"><?phpif(!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"><?phpif ($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><?phpif ($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"><?phpecho 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 usersfor($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"><?phpdisplayDriveSpaceBar($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><?phpgetDirList($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><?phpif ($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><?phpif ($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"><?phpif(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"><?phpif(!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"><?phpif ($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><?phpecho DisplayTorrentFluxLink();// At this point Any User actions should have taken place// Check to see if the user has a force_read message from an adminif (IsForceReadMsg()){// Yes, then warn them?><script language="JavaScript">if (confirm("<?php echo _ADMINMESSAGE ?>")){document.location = "readmsg.php";}</script><?php}?></td></tr></table></body></html>