<?php error_reporting(E_ALL & ~E_NOTICE); require_once 'config.php'; require_once 'functions.php'; $call = $argv[1]; $args = array(); for ($i = 2; $i < count($argv); $i++) { $args[] = $argv[$i]; } $response = do_xmlrpc(xmlrpc_encode_request($call, $args)); $readable = print_r($response, true); print trim($readable) . "\n";
header("Location: index.php"); } else { echo "Error moving file - check permissions etc! <a href=index.php>Continue</a>.\n"; } die; } } // Move torrent dir if (isset($r_newdir)) { $response = do_xmlrpc(xmlrpc_encode_request("d.set_directory", array($r_hash, $r_newdir))); } switch ($r_cmd) { case "stop": $response = do_xmlrpc(xmlrpc_encode_request("d.stop", array("{$r_hash}"))); break; case "start": $response = do_xmlrpc(xmlrpc_encode_request("d.start", array("{$r_hash}"))); break; case "delete": $response = do_xmlrpc(xmlrpc_encode_request("d.erase", array("{$r_hash}"))); break; case "hashcheck": $response = do_xmlrpc(xmlrpc_encode_request("d.check_hash", array("{$r_hash}"))); break; } $referer = parse_url($_SERVER['HTTP_REFERER']); $script = basename($referer['path']); if ($script != 'index.php' && $script != 'view.php' && $script != 'feedread.php' && $script != 'settings.php' || $r_cmd == "delete") { $script = 'index.php'; } header("Location: {$script}?" . $referer['query']);
// You should have received a copy of the GNU General Public License // along with rtGui. If not, see <http://www.gnu.org/licenses/>. session_start(); $execstart = $start = microtime(true); include "functions.php"; include "config.php"; extract($_REQUEST, EXTR_PREFIX_ALL | EXTR_REFS, 'r'); if (!isset($_SESSION['refresh'])) { $_SESSION['refresh'] = $defaultrefresh; } if (isset($r_setrefresh)) { $_SESSION['refresh'] = $r_setrefresh; } if (isset($r_setmaxup) || isset($r_setmaxdown)) { $response = do_xmlrpc(xmlrpc_encode_request("set_upload_rate", array("{$r_setmaxup}"))); $response = do_xmlrpc(xmlrpc_encode_request("set_download_rate", array("{$r_setmaxdown}"))); } $globalstats = get_global_stats(); if (isset($r_submit)) { echo "<script>window.top.location='index.php?reload=1';</script>"; die; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="shortcut icon" href="favicon.ico" /> <title>rtGui</title> <link href="style.css" rel="stylesheet" type="text/css" /> </head>
function tracker_url($hash) { global $tracker_hilite, $tracker_hilite_default; $response = do_xmlrpc(xmlrpc_encode_request("t.multicall", array($hash, "", "t.get_url="))); $url = @parse_url($response[0][0], PHP_URL_HOST); return $url; }
/** rtorrent_multicall * * Does a "multicall" request to rtorrent and returns an array of data * items that can be either sequential or associative. Each data item * is an associative array with the requested variables as keys. */ function rtorrent_multicall($group, $params, $data_names, $key = null, $remove_get = false) { if (!is_array($params)) { $params = array($params); } $index = -1; foreach ($data_names as $name) { $index++; $params[] = "{$group}.{$name}="; if ($remove_get) { $name = preg_replace("@^get_@", "", $name); $data_names[$index] = $name; } if ($key !== null && $key == $name) { $key_index = $index; } } $request = xmlrpc_encode_request("{$group}.multicall", $params); $response = do_xmlrpc($request); if (@xmlrpc_is_fault($response)) { trigger_error("xmlrpc: {$response['faultString']} ({$response['faultCode']})"); return false; } else { $results = array(); $result_index = 0; foreach ($response as $data_array) { $this_key = $key === null ? $result_index++ : $data_array[$key_index]; $name_index = 0; foreach ($data_array as $data_item) { $results[$this_key][$data_names[$name_index++]] = $data_item; } } return $results; } }
$index++; } $r_cmd = ""; } switch ($r_cmd) { case "stop": $response = do_xmlrpc(xmlrpc_encode_request("d.stop", array("{$r_hash}"))); break; case "start": $response = do_xmlrpc(xmlrpc_encode_request("d.start", array("{$r_hash}"))); break; case "delete": $response = do_xmlrpc(xmlrpc_encode_request("d.erase", array("{$r_hash}"))); break; case "hashcheck": $response = do_xmlrpc(xmlrpc_encode_request("d.check_hash", array("{$r_hash}"))); break; case "setcap": $response = do_xmlrpc(xmlrpc_encode_request("set_upload_rate", array("{$r_setmaxup}"))); $response = do_xmlrpc(xmlrpc_encode_request("set_download_rate", array("{$r_setmaxdown}"))); break; case "addurl": $response = do_xmlrpc(xmlrpc_encode_request("load_start", array("{$r_addurl}"))); break; } $referer = parse_url($_SERVER['HTTP_REFERER']); $script = basename($referer['path']); if ($script != 'index.php' && $script != 'view.php' || $r_cmd == "delete") { $script = 'index.php'; } header("Location: {$script}?" . $referer['query']);
// - $r_newdir exists but is not a directory, OR: // - $r_newdir does not exist but moving to it fails // - neither $old_path nor $r_newdir exist (??) rtorrent_xmlrpc('execute', array('mv', '-u', $old_path, "{$r_newdir}/")); rtorrent_xmlrpc('d.set_directory', array($r_hash, $r_newdir)); rtorrent_xmlrpc('d.check_hash', array($r_hash)); } } switch ($r_cmd) { case 'stop': $response = do_xmlrpc(xmlrpc_encode_request('d.stop', array($r_hash))); break; case 'start': $response = do_xmlrpc(xmlrpc_encode_request('d.start', array($r_hash))); break; case 'delete': case 'purge': if ($r_cmd == 'purge') { $path = rtorrent_xmlrpc('d.get_base_path', array($r_hash)); $response = rtorrent_xmlrpc('execute', array('rm', '-r', $path)); } $response = do_xmlrpc(xmlrpc_encode_request('d.erase', array($r_hash))); break; case 'hashcheck': $response = do_xmlrpc(xmlrpc_encode_request('d.check_hash', array($r_hash))); break; } if (!$r_ajax) { $hash = $r_tab ? "#{$r_tab}" : ''; @header('Location: ' . $_SERVER['HTTP_REFERER'] . $hash); }
function get_global_stats() { $retarr['upload_cap'] = do_xmlrpc(xmlrpc_encode_request("get_upload_rate", array(""))); $retarr['download_cap'] = do_xmlrpc(xmlrpc_encode_request("get_download_rate", array(""))); $retarr['diskspace'] = do_xmlrpc(xmlrpc_encode_request("get_directory", array(""))); $retarr['library_version'] = do_xmlrpc(xmlrpc_encode_request("system.library_version", array(""))); $retarr['client_version'] = do_xmlrpc(xmlrpc_encode_request("system.client_version", array(""))); return $retarr; }
} if ($can_add) { $cmd = $load_start ? 'load_start' : 'load'; $params = array(); if ($d_type == 'magnet') { $params[] = $d_url; } else { $params[] = "{$this_torrent_dir}/{$d_filename}"; } if ($this_download_dir !== false) { $params[] = "d.set_directory={$this_download_dir}"; } if ($this_custom1 !== false) { $params[] = "d.set_custom1={$this_custom1}"; } $response = do_xmlrpc(xmlrpc_encode_request($cmd, $params)); if (!response || @xmlrpc_is_fault($response)) { $errors[] = "Failed to add torrent \"{$d_name}\" to rTorrent:\n\n" . print_r($response, true); } } } } if (count($errors)) { array_unshift($errors, "One or more errors occurred:\n"); $script = 'alert(' . json_encode($errors) . '.join("\\n"))'; } else { if (is_array($r_tags)) { set_error_handler('handleError'); try { set_torrent_tags($r_add_torrent, $r_tags, array()); set_user_setting('new_torrent_tags', implode('|', $r_tags));