The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Net::uTorrent - Perl interface to the uTorrent API.

SYNOPSIS

        my $utorrent = Net::uTorrent->new (
                                                hostname        =>      'localhost',
                                                port            =>      '12345',
                                                user            =>      'my_username',
                                                pass            =>      'my_password',
                                          );
        die unless $utorrent->login_success;

DESCRIPTION

Net::uTorrent is an object oriented interface to the uTorrent API. This module requires the uTorrent WebUI to be enabled.

METHODS

login_success() Returns a boolean indicating whether authentication was successful.

token() Returns the authentication token.

torrents() Returns a hashref containing all the torrents. Takes an optional hash argument with the key cid which when used will return a hashref containing all the torrents that were changed since the last time this method was used.

                   Examples:
                             $utorrent->torrents;
                             $utorrent->torrents( cid => 'abcd' );
                             

cache_id() Returns the cid from the previous use of torrents(), which can be used in the next request.

get_settings() Returns an array ref containing the uTorrent settings. Takes an optional argument 'hash', which when used will return a hashref containing settings.

                   Examples:
                             $utorrent->get_settings;
                             $utorrent->get_settings('hash');
                             

set_settings() Takes a hashref as argument. Allowed keys are the ones returned by get_settings().

                   Examples:
                             $utorrent->set_settings (
                                                        max_ul_rate     =>      5000,
                                                        max_dl_rate     =>      10000
                                                     );
                                                     

filelist() Takes an array of infohashes as arguments and returns a hashref.

                   Examples:
                             $utorrent->filelist(qw '43E2DFD8279552543DABA81E5FCCEA2539C81D1F 663C531B51C9A466B9757282B438F635E64AC3CA');

get_properties() Takes an array of infohashes as arguments and returns a hashref.

                   Examples:
                             $utorrent->get_properties(qw '43E2DFD8279552543DABA81E5FCCEA2539C81D1F 663C531B51C9A466B9757282B438F635E64AC3CA');
                             

set_properties() Takes an array of hashrefs as arguments, each of which contains a key 'hash' containing the infohash, and property and value like the ones returned by get_properties.

                   Examples:       
                   
                   $utorrent->set_properties (
                                                {
                                                  hash  =>      '43E2DFD8279552543DABA81E5FCCEA2539C81D1F',
                                                  ulrate        =>      1740,          # Upload speed in bytes/second
                                                },
                                                 
                                                {
                                                  hash  =>      '663C531B51C9A466B9757282B438F635E64AC3CA',
                                                  ulrate        =>      7135,
                                                  dlrate        =>      8330
                                                }
                                             );
                                             

set_priority() Takes a hash as argument. Must contain the hash, an array containing the file indexes (starting from 0), and the priority.

                   Examples:
                   
                   $utorrent->set_priority (               
                                                hash => '43E2DFD8279552543DABA81E5FCCEA2539C81D1F',
                                                files => [1,2,3],
                                                priority => 3    # (0 = skip, 1 = low, 2 = normal, 3 = high)
                                           );
                                             

add_file() Takes a filename as argument, which when used will add the torrent to uTorrent. This method returns a hashref indicating if an error occured.

                   Examples:
                   
                   $utorrent->add_file('fedora_11_dvd.torrent');
                   

add_url() Takes a url as argument.

                   Examples:
                   
                   $utorrent->add_url('http://torrent.fedoraproject.org/torrents//Fedora-11-i686-Live.torrent');
                   

start() - Start torrent. Takes an array containing infohashes as argument.

                   Examples:
                   
                   $utorrent->start(qw '43E2DFD8279552543DABA81E5FCCEA2539C81D1F 663C531B51C9A466B9757282B438F635E64AC3CA');

stop() - Stop torrent. Takes an array containing infohashes as argument.

                   Examples:
                   
                   $utorrent->stop(qw '43E2DFD8279552543DABA81E5FCCEA2539C81D1F 663C531B51C9A466B9757282B438F635E64AC3CA');

pause() Takes an array containing infohashes as argument.

                   Examples:
                   
                   $utorrent->pause(qw '43E2DFD8279552543DABA81E5FCCEA2539C81D1F 663C531B51C9A466B9757282B438F635E64AC3CA');

resume() Takes an array containing infohashes as argument.

                   Examples:
                   
                   $utorrent->resume(qw '43E2DFD8279552543DABA81E5FCCEA2539C81D1F 663C531B51C9A466B9757282B438F635E64AC3CA');

force_start() Takes an array containing infohashes as argument.

                   Examples:
                   
                   $utorrent->force_start(qw '43E2DFD8279552543DABA81E5FCCEA2539C81D1F 663C531B51C9A466B9757282B438F635E64AC3CA');

recheck() Takes an array containing infohashes as argument.

                   Examples:
                   
                   $utorrent->recheck(qw '43E2DFD8279552543DABA81E5FCCEA2539C81D1F 663C531B51C9A466B9757282B438F635E64AC3CA');

remove_torrent() - Delete a torrent from uTorrent. Takes an array containing infohashes as argument.

                   Examples:
                   
                   $utorrent->remove_torrent(qw '43E2DFD8279552543DABA81E5FCCEA2539C81D1F 663C531B51C9A466B9757282B438F635E64AC3CA');

remove_data() - Delete a torrent and the data associated with it. Takes an array containing infohashes as argument.

                   Examples:
                   
                   $utorrent->remove_data(qw '43E2DFD8279552543DABA81E5FCCEA2539C81D1F 663C531B51C9A466B9757282B438F635E64AC3CA');

SEE ALSO

http://forum.utorrent.com/viewtopic.php?id=25661

AUTHOR

rarbox, <rarbox@cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2009 by rarbox

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.10.0 or, at your option, any later version of Perl 5 you may have available.