Subversion Repositories svnkaklik

Rev

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 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
*/

class RunningTorrent
{
    var $statFile = "";
    var $torrentFile = "";
    var $filePath = "";
    var $torrentOwner = "";
    var $processId = "";
    var $args = "";

    function RunningTorrent( $psLine )
    {
        global $cfg;
        if (strlen($psLine) > 0)
        {
            while (strpos($psLine,"  ") > 0)
            {
                $psLine = str_replace("  ",' ',trim($psLine));
            }

            $arr = split(' ',$psLine);

            $this->processId = $arr[0];

            foreach($arr as $key =>$value)
            {
                if ($key == 0)
                {
                    $startArgs = false;
                }
                if ($value == $cfg["btphpbin"])
                {
                    $offset = 2;
                    if(!strpos($arr[$key+$offset],"/",1) > 0)
                    {
                        $offset += 1;
                    }
                    if(!strpos($arr[$key+$offset],"/",1) > 0)
                    {
                        $offset += 1;
                    }
                    $this->filePath = substr($arr[$key+$offset],0,strrpos($arr[$key+$offset],"/")+1);
                    $this->statFile = str_replace($this->filePath,'',$arr[$key+$offset]);
                    $this->torrentOwner = $arr[$key+$offset+1];
                }
                if ($value == '--display_interval')
                {
                    $startArgs = true;
                }
                if ($startArgs)  
                {  
                    if (!empty($value))  
                    {  
                        if (strpos($value,"-",1) > 0)  
                        {  
                            if(array_key_exists($key+1,$arr))
                            {
                                if(strpos($value,"priority") > 0)
                                {
                                    $this->args .= "\n file ".$value." set";
                                }
                                else
                                {
                                    $this->args .= $value.":".$arr[$key+1].",";  
                                }
                            }
                            else
                            {
                                $this->args .= "";
                            }
                        }  
                    }  
                } 
                if ($value == '--responsefile')
                {
                    $this->torrentFile = str_replace($this->filePath,'',$arr[$key+1]);
                }
            }
            $this->args = str_replace("--","",$this->args);
            $this->args = substr($this->args,0,strlen($this->args));
        }
    }

    //----------------------------------------------------------------
    // Private Function to put the variables into a string for writing to file
    function BuildAdminOutput()
    {
        $output = "<tr>";
        $output .= "<td><div class=\"tiny\">";
        $output .= $this->torrentOwner;
        $output .= "</div></td>";
        $output .= "<td><div align=center><div class=\"tiny\" align=\"left\">";
        $output .= str_replace(array(".stat"),"",$this->statFile);
        $output .= "<br>".$this->args."</div></td>";
        $output .= "<td><a href=\"index.php?alias_file=".$this->statFile;
        $output .= "&kill=".$this->processId;
        $output .= "&kill_torrent=".urlencode($this->torrentFile);
        $output .= "&return=admin\">";
        $output .= "<img src=\"images/kill.gif\" width=16 height=16 title=\""._FORCESTOP."\" border=0></a></td>";
        $output .= "</tr>";
        $output .= "\n";

        return $output;

    }
}

?>