package local::nzbget; require Exporter; use strict; use base "Exporter"; use config; require RPC::XML; require RPC::XML::Client; sub new { my $invocant = shift; my $class = ref($invocant) || $invocant; # my $self = $class->SUPER::new(@_); my $self=bless {@_}, $class; $self->{cli} = RPC::XML::Client->new($config::config{rpc_uri}); return $self; } sub send_request { my $self = shift; my $res = $self->{cli}->send_request( @_ ) or die "Can't connect to nzbget"; my %result; if (ref $res eq 'RPC::XML::hash') { my %result; foreach my $key (%$res) { $result{$key}=$res->{$key}->value; } return \%result; } elsif (ref $res eq 'RPC::XML::array') { my @array = map {$_->value} @$res; return \@array; } else { return $res->value; } }