summaryrefslogtreecommitdiff
path: root/local/nzbget.pm
diff options
context:
space:
mode:
Diffstat (limited to 'local/nzbget.pm')
-rw-r--r--local/nzbget.pm24
1 files changed, 20 insertions, 4 deletions
diff --git a/local/nzbget.pm b/local/nzbget.pm
index ea3b47a..5f7a509 100644
--- a/local/nzbget.pm
+++ b/local/nzbget.pm
@@ -1,9 +1,11 @@
package local::nzbget;
require Exporter;
-require RPC::XML;
-require RPC::XML::Client;
use strict;
use base "Exporter";
+use config;
+require RPC::XML;
+require RPC::XML::Client;
+
sub new
{
@@ -11,12 +13,26 @@ sub new
my $class = ref($invocant) || $invocant;
# my $self = $class->SUPER::new(@_);
my $self=bless {@_}, $class;
- $self->{cli} = RPC::XML::Client->new('http://nzbget:tegbzn6789@127.0.0.1:6789/xmlrpc');
+ $self->{cli} = RPC::XML::Client->new($config::config{rpc_uri});
return $self;
}
sub send_request
{
my $self = shift;
- return $self->{cli}->send_request(@_) or die "Can't connect to nzbget";
+ 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;
+ }
}