function getTorrents() { $auth = $this->config["bittorrent"]["user"] . ":" . $this->config["bittorrent"]["user"]; $result = BittorrentBo::sendCommand("transmission-remote --auth {$auth} -l"); $result = preg_split("/\n/", $result); $torrents = array(); foreach ($result as $index => $line) { $data = preg_split("/[\\s]+/", trim($line)); if (!is_numeric($data[0])) { continue; } // print_r($data); $torrent = array(); // ID Done Have ETA Up Down Ratio Status Name $state = "id"; for ($index = 0; $index < count($data); $index++) { $torrent[$state] = $data[$index]; switch ($state) { case "id": $state = "done"; break; case "done": $state = "have"; break; case "have": if ($torrent["have"] != "None") { $index++; $unit = $data[$index]; $torrent["have_unit"] = $unit; } $state = "eta"; break; case "eta": if ($torrent["eta"] != "Done" && $torrent["eta"] != "Unknown") { $index++; $unit = $data[$index]; $torrent["eta_unit"] = $unit; } $state = "up"; break; case "up": $state = "down"; break; case "down": $state = "ratio"; break; case "ratio": $state = "status"; break; case "status": $state = "name"; break; } } $torrent["up"] *= 1024; $torrent["down"] *= 1024; $torrents[] = $torrent; } return $torrents; }
/* Copyright 2014-2015 Cédric Levieux, Jérémy Collot, ArmagNet This file is part of Parpaing. Parpaing 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 3 of the License, or (at your option) any later version. Parpaing 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 Parpaing. If not, see <http://www.gnu.org/licenses/>. */ session_start(); $path = "../../"; set_include_path(get_include_path() . PATH_SEPARATOR . $path); require_once 'config/config.php'; require_once 'engine/bo/BittorrentBo.' . $config["parpaing"]["dialect"] . '.php'; $bittorrentBo = BittorrentBo::newInstance($config); $activeStatus = $bittorrentBo->isActive(); $result = ""; if ($activeStatus && isset($_REQUEST["torrent"])) { $result = $bittorrentBo->addTorrent($_REQUEST["torrent"]); } echo json_encode(array("ok" => "ok", "isActive" => $activeStatus, "result" => $result));