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.