package xmlrtorrent; use strict; use RPC::XML; use RPC::XML::Client; use Data::Dumper; sub new { my $class = shift; my $self = {@_}; unless(exists($self->{'XMLURL'}) && defined($self->{'XMLURL'})) { return undef; } $self->{'__RPCClient'} = RPC::XML::Client->new($self->{'XMLURL'}); return bless($self, $class); } sub load_start{ my $self = shift; my $URL = shift; my $res; $res = $self->{'__RPCClient'}->send_request('load_start', $URL); unless(ref($res)) { $self->{'__ERROR'} = $res; return undef } if ($res->is_fault()) { $self->{'__ERROR'} = $res->value()->{'faultString'}; return undef; } return 1; } sub download_list { my $self = shift; my $res; $res = $self->{'__RPCClient'}->send_request('d.multicall', '', 'd.get_name=', 'd.get_size_bytes=', 'd.get_bytes_done=', 'd.get_up_rate=', 'd.get_down_rate=', 'd.is_active='); unless(ref($res)) { $self->{'__ERROR'} = $res; return undef } if ($res->is_fault()) { $self->{'__ERROR'} = $res->value()->{'faultString'}; return undef; } return $res->value(); } sub errstr { my $self = shift; return $self->{'__ERROR'}; } 1;