The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Net::RTorrent - Perl interface to rtorrent via XML-RPC.

SYNOPSIS

  my $obj =  new Net::RTorrent:: 'http://10.100.0.1:8080/scgitest';
  my $dloads = $obj->get_downloads;
  my $keys = $dloads->list_ids;
  $obj->load_raw( $torrent_raw );

ABSTRACT

Perl interface to rtorrent via XML-RPC

DESCRIPTION

Net::RTorrent - short way to create tools for rtorrent.

METHODS

new URL

Creates a new client object that will route its requests to the URL provided.

get_downloads [ <view name > || 'default']

Return collection of downloads

To get list of view:

    xmlrpc http://10.100.0.1:8080/scgitest view_list

  'main'
  'default'
  'name'
  'started'
  'stopped'
  'complete'
  'incomplete'
  'hashing'
  'seeding'
  'scheduler'

load_raw [\$raw_data || new IO::File ], [1||0]

load torrent from file descriptor or scalar ref.

1 - start download now (default)
0 - not start download

system_stat

Return system stat.

For example:

    print Dumper $obj->system_stat;

Return: { 'library_version' => '0.11.9', 'max_memory_usage' => '-858993460', # at my amd64 ?? 'upload_rate' => '0', 'name' => 'gate.home.zg:1378', 'memory_usage' => '115867648', 'download_rate' => '0', 'hostname' => 'gate.home.zg', 'pid' => '1378', 'client_version' => '0.7.9', 'safe_free_diskspace' => '652738560' };

remove_untied (TODO)

remove_untied

do_sys_mutlicall 'method1' =>[ <param1>, .. ], ...

Do XML::RPC system.multicall. Return ref to ARRAY of results

For sample.

 print Dumper $obj->do_sys_mutlicall('system.pid'=>[], 'system.hostname'=>[]);

Will return:

    [
           [
             '1378'
           ],
           [
             'gate.home.zg'
          ]
    ];

Setting up rtorrent

If you are compiling from rtorrent's source code, this is done during the configuration step by adding the flag --with-xmlrpc-c to the configure step. Example ./configure --with-xmlrpc-c. See http://libtorrent.rakshasa.no/wiki/RTorrentXMLRPCGuide

Setup your rtorrent and Web server. My tips:

.rtorrent

   scgi_port = 10.100.0.1:5000 

apache.conf

    LoadModule scgi_module        libexec/apache2/mod_scgi.so
    <IfModule  mod_scgi.c>
      SCGIMount /scgitest 10.100.0.1:5000
      <Location "/scgitest">
         SCGIHandler On
      </Location>
    </IfModule>

My url for XML::RPC is http://10.100.0.1:8080/scgitest.

Use xmlrpc ( http://xmlrpc-c.sourceforge.net/ ) for tests:

    xmlrpc http://10.100.0.1:8080/scgitest system.listMethods

SEE ALSO

Net::RTorrent::DItem, Net::RTorrent::Downloads, http://libtorrent.rakshasa.no/wiki/RTorrentXMLRPCGuide

AUTHOR

Zahatski Aliaksandr, <zag@cpan.org>

COPYRIGHT AND LICENSE

Copyright 2008 by Zahatski Aliaksandr

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.