Esempio n. 1
0
 function getTime($keyconnexion, $idtorrentfilm)
 {
     \model\simple\Utilisateur::authentificationDistante($keyconnexion);
     if (!\config\Conf::$user["user"]) {
         throw new \Exception("Non User");
     }
     $tf = \model\mysql\Torrentserie::getTorrentSerieParId($idtorrentfilm);
     $tf->mediainfo = json_decode($tf->mediainfo);
     if (is_null($tf)) {
         throw new \Exception("Id incorrect");
     }
     if ($tf->fini === "0") {
         $cmds = array("d.name", "d.down.rate", "d.size_chunks", "d.completed_chunks", "d.chunk_size");
         $req = new \model\xmlrpc\rXMLRPCRequest($tf->scgi);
         foreach ($cmds as $v) {
             $req->addCommand(new \model\xmlrpc\rXMLRPCCommand($tf->scgi, $v, $tf->hash));
         }
         if ($req->success()) {
             $tf->nomtorrent = $req->val[0];
             $get_completed_chunks = $req->val[3];
             $get_size_chunks = $req->val[2];
             $get_chunk_size = $req->val[4];
             $tf->timerestant = $req->val[1] > 0 ? floor(($get_size_chunks - $get_completed_chunks) * $get_chunk_size / $req->val[1]) : -1;
             //Eta 9 (Temps restant en seconde)
         }
     }
     $this->set("file", $tf);
 }
Esempio n. 2
0
 function xmlrpcrxmlrpcrequestall()
 {
     $cmds = array("d.get_hash=", "d.is_open=", "d.is_hash_checking=", "d.is_hash_checked=", "d.get_state=", "d.get_name=", "d.get_size_bytes=", "d.get_completed_chunks=", "d.get_size_chunks=", "d.get_bytes_done=", "d.get_up_total=", "d.get_ratio=", "d.get_up_rate=", "d.get_down_rate=", "d.get_chunk_size=", "d.get_custom1=", "d.get_peers_accounted=", "d.get_peers_not_connected=", "d.get_peers_connected=", "d.get_peers_complete=", "d.get_left_bytes=", "d.get_priority=", "d.get_state_changed=", "d.get_skip_total=", "d.get_hashing=", "d.get_chunks_hashed=", "d.get_base_path=", "d.get_creation_date=", "d.get_tracker_focus=", "d.is_active=", "d.get_message=", "d.get_custom2=", "d.get_free_diskspace=", "d.is_private=", "d.is_multi_file=", "d.get_throttle_name=", "d.get_custom=chk-state", "d.get_custom=chk-time", "d.get_custom=sch_ignore", 'cat="$t.multicall=d.get_hash=,t.get_scrape_complete=,cat={#}"', 'cat="$t.multicall=d.get_hash=,t.get_scrape_incomplete=,cat={#}"', 'cat=$d.views=', "d.get_custom=seedingtime", "d.get_custom=addtime");
     $cmd = new \model\xmlrpc\rXMLRPCCommand("d.multicall", "main");
     $cmd->addParameters(array_map("\\model\\xmlrpc\\rTorrentSettings::getCmd", $cmds));
     $cnt = count($cmd->params) - 1;
     $req = new \model\xmlrpc\rXMLRPCRequest(5001, $cmd);
     $t = null;
     if ($req->success()) {
         $i = 0;
         $tmp = array();
         $status = array('started' => 1, 'paused' => 2, 'checking' => 4, 'hashing' => 8, 'error' => 16);
         while ($i < count($req->val)) {
             $torrent = null;
             $state = 0;
             $is_open = $req->val[$i + 1];
             $is_hash_checking = $req->val[$i + 2];
             $is_hash_checked = $req->val[$i + 3];
             $get_state = $req->val[$i + 4];
             $get_hashing = $req->val[$i + 24];
             $is_active = $req->val[$i + 29];
             $msg = $req->val[$i + 30];
             if ($is_open != 0) {
                 $state |= $status["started"];
                 if ($get_state == 0 || $is_active == 0) {
                     $state |= $status["paused"];
                 }
             }
             if ($get_hashing != 0) {
                 $state |= $status["hashing"];
             }
             if ($is_hash_checking != 0) {
                 $state |= $status["checking"];
             }
             if ($msg != "" && $msg != "Tracker: [Tried all trackers.]") {
                 $state |= $status["error"];
             }
             $torrent[] = $state;
             //state 0
             $torrent[] = $req->val[$i + 5];
             //nom 1
             $torrent[] = $req->val[$i + 6];
             //taille 2
             $get_completed_chunks = $req->val[$i + 7];
             $get_hashed_chunks = $req->val[$i + 25];
             $get_size_chunks = $req->val[$i + 8];
             $chunks_processing = $is_hash_checking == 0 ? $get_completed_chunks : $get_hashed_chunks;
             $done = floor($chunks_processing / $get_size_chunks * 1000);
             $torrent[] = $done;
             // 3
             $torrent[] = $req->val[$i + 9];
             //downloaded 4
             $torrent[] = $req->val[$i + 10];
             //Uploaded 5
             $torrent[] = $req->val[$i + 11];
             //ratio 6
             $torrent[] = $req->val[$i + 12];
             //UL 7
             $torrent[] = $req->val[$i + 13];
             //DL 8
             $get_chunk_size = $req->val[$i + 14];
             $torrent[] = $req->val[$i + 13] > 0 ? floor(($get_size_chunks - $get_completed_chunks) * $get_chunk_size / $req->val[$i + 13]) : -1;
             //Eta 9 (Temps restant en seconde)
             /*$get_peers_not_connected = $req->val[$i+17];
               $get_peers_connected = $req->val[$i+18];
               $get_peers_all = $get_peers_not_connected+$get_peers_connected;*/
             $torrent[] = $req->val[$i + 16];
             //Peer Actual 10
             $torrent[] = $req->val[$i + 19];
             //Seed Actual 11
             $seeds = 0;
             foreach (explode("#", $req->val[$i + 39]) as $k => $v) {
                 $seeds += $v;
             }
             $peers = 0;
             foreach (explode("#", $req->val[$i + 40]) as $k => $v) {
                 $peers += $v;
             }
             $torrent[] = $peers;
             //Peer total 12
             $torrent[] = $seeds;
             //Seed tota 13
             $torrent[] = $req->val[$i + 20];
             //Taille restant 14
             $torrent[] = $req->val[$i + 21];
             //Priority 15 (0 ne pas télécharger, 1 basse, 2 moyenne, 3 haute)
             $torrent[] = $req->val[$i + 22];
             //State change 16 (dernière date de change d'état)
             $torrent[] = $req->val[$i + 23];
             //Skip total 17
             $torrent[] = $req->val[$i + 26];
             //Base Path 18
             $torrent[] = $req->val[$i + 27];
             //Date create 19
             $torrent[] = $req->val[$i + 28];
             //Focus tracker 20
             /*try {
                   torrent.comment = this.getValue(values,31);
                   if(torrent.comment.search("VRS24mrker")==0)
                       torrent.comment = decodeURIComponent(torrent.comment.substr(10));
               } catch(e) { torrent.comment = ''; }*/
             $torrent[] = $req->val[$i + 32];
             //Torrent free diskspace 21
             $torrent[] = $req->val[$i + 33];
             //Torrent is private 22
             $torrent[] = $req->val[$i + 34];
             //Torrent is multifile 23
             $torrent[] = preg_replace("#\n#", "", $req->val[$i + 42]);
             //Torrent seed time 24
             $torrent[] = preg_replace("#\n#", "", $req->val[$i + 43]);
             //Torrent add time 25
             $torrent[] = $msg;
             //Message tracker 26
             $torrent[] = $req->val[$i];
             //Hash 27
             $tmp[$req->val[$i]] = $torrent;
             $i = $i + 44;
         }
         $data = $tmp;
         /*if (isset($_REQUEST["cid"])){
                         if ($anc = MyMemcache::value("listrt".$_REQUEST["cid"])){
                             foreach ($anc as $k=>$v){
                                 if (!isset($tmp[$k]))
                                     $tmp[$k]=false;
                                 foreach($v as $kk=>$vv){
                                     if (isset($tmp[$k][$kk]) && $tmp[$k][$kk] == $vv){
                                         unset($tmp[$k][$kk]);
                                     }
                                 }
                                 if (count($tmp[$k]) ==0)
                                     unset($tmp[$k]);
                             }
                         }
                     }
         
                     $cid = uniqid(sha1(time()).$_COOKIE["login"]);
                     if (!(MyMemcache::value("listrt".$cid,$data,60*5)))
                         trigger_error("Impossible de mettre des données dans le cache");*/
         $t[] = $tmp;
         //$t[]= $cid;
         //$t[]= $_SERVER["HTTP_HOST"];
         //$t[]= disk_total_space(Variable::$documentroot."../rtorrent/data/salorium");
         //$t[]= disk_total_space(Variable::$documentroot."../rtorrent/data/salorium")-disk_free_space(Variable::$documentroot."../rtorrent/data/salorium");
         $cmds = array("get_up_rate", "get_upload_rate", "get_up_total", "get_down_rate", "get_download_rate", "get_down_total");
         $req = new \model\xmlrpc\rXMLRPCRequest(5001);
         foreach ($cmds as $cmd) {
             $req->addCommand(new \model\xmlrpc\rXMLRPCCommand(5001, $cmd));
         }
         if ($req->success()) {
             $t[] = $req->val;
         }
     }
     if (is_null($t)) {
         trigger_error("Impossible de se connecter à rtorrent :(");
     }
     var_dump($t);
 }