海运的博客

php使用rpc xml管理rtorrent

发布时间:April 3, 2018 // 分类:PT // No Comments

rtorrent开启rpc:

scgi_port = 127.0.0.1:5000

通过nginx中转rpc请求:

server {
    listen 8000;
    server_name localhost;
    location ^~ /RPC2 {
        include scgi_params;
        scgi_pass   127.0.0.1:5000;
    }
}

php需安装xmlrpc扩展:

<?php
class XMLRPCClient
{
  public function __construct($uri)
  {
    $this->uri = $uri;
    $this->ch = null;
  }

  public function __destruct()
  {
    $this->close();
  }

  public function close()
  {
    if ($this->ch !== null)
    {
      curl_close($this->ch);
    }
    $this->ch = null;
  }

  public function get($method, $params = array())
  {
    $xml = xmlrpc_encode_request($method,$params);
    if ($this->ch === null)
    {
      $this->ch = curl_init();
      curl_setopt($this->ch, CURLOPT_URL, $this->uri);
      curl_setopt($this->ch, CURLOPT_HEADER, 0); 
      curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($this->ch, CURLOPT_POST, true);
    }
    curl_setopt($this->ch, CURLOPT_POSTFIELDS, $xml);
    $response = curl_exec($this->ch);
    $response = str_replace('i8>', 'string>', $response);
    $result = xmlrpc_decode_request($response, $method);
    return $result;
  }
}

$client = new XMLRPCClient("http://127.0.0.1:8000/RPC2");
//查看rpc命令列表
var_dump($client->get("system.listMethods"));
//查看任务列表
$list = $client->get("download_list", array("","started"));
//文件路径
$filepath = $client->get("d.get_base_path", $list[0]);
//上传速度
$up_rate = $client->get("d.get_up_rate", $list[0]);
$down_rate = $client->get("d.get_down_rate", $list[0]);
echo $up_rate.'/'.$down_rate.PHP_EOL;
//删除下载
//$client->get("d.erase", $list[0]);
//删除文件
//unlink($filepath);

rpc命令列表:https://github.com/rakshasa/rtorrent/wiki/rTorrent-0.9-Comprehensive-Command-list-(WIP)

标签:pt, rtorrent

发表评论

分类
最新文章
最近回复
  • 404NTF: 交叉编译的作用是?
  • 404NTF: 请教一下 CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go ...
  • 小智: 安利个PHP开发以太坊区块链的教程: http://xc.hubwiz.com/course/...
  • 陈浩南: 您好,您教程中的 dev.openwrt.org.cn 现在似乎不可用了。请问现在应该在哪里下...
  • 斑马斑马: 怎么查看虚拟机CPU 内存使用情况
  • zzg: http://downloads.openwrt.org.cn/PandoraBox/rali...
  • xiongrui: 看图
  • 傻狍子: filebrowser好像和这功能一样? https://github.com/filebro...
  • 陶国文: 想看看能不能安装
  • 傻狍子: 服务端设置了用户名密码认证的话,在openwrt的openvpn客户端的配置文件当中该如何更改...
页面执行耗时:0.0357秒。-->