move RPC over HTTP calls to HTTPTalker.pm
[xmlrtorrent.git] / xmlrtorrent.pl
index 9d5a77d..12367cb 100644 (file)
@@ -209,7 +209,7 @@ sub cmd_queue {
         $u = $torrentlist{$id}->{'URL'};
 
         write_debug('Sending %s to rtorrent', $u);
-        unless(defined($rtorrent->load_start($u))) {
+        unless(defined($rtorrent->load_start($talker, $u))) {
             write_irssi('%%RError sending URL %s: %s', $u, $rtorrent->errstr());
         } else {
             write_irssi('%s enqueued', $u);
@@ -244,7 +244,7 @@ sub cmd_remote {
     my $rqueue;
 
     if (('list' eq $subcmd) or !defined($subcmd)) {
-        unless(defined($rqueue = $rtorrent->download_list())) {
+        unless(defined($rqueue = $rtorrent->download_list($talker))) {
             write_irssi('Error getting list of downloads: %s', $rtorrent->errstr());
             return;
         }
@@ -293,26 +293,17 @@ sub cmd_set {
     my $target = shift;
     my $key = shift;
     my $val = shift;
+    my $p;
 
-    if ('global' eq $target) {
-        if(exists($PARAMS->{$key})) {
-            $conf->{'xmlrtorrent'}->{$key} = $val;
-            if ('XMLURL' eq $key) {
-                unless(defined($rtorrent = xmlrtorrent->new(
-                        'XMLURL' => $conf->{'xmlrtorrent'}->{'XMLURL'},
-                        'USERNAME' => $conf->{'xmlrtorrent'}->{'USERNAME'},
-                        'USERNAME' => $conf->{'xmlrtorrent'}->{'PASSWORD'}))) {
-                    write_irssi('Could not initialize XMLRPC instance');
-                    return;
-                }
-            }
-        } else {
-            write_irssi('Key %s does not exist', $key);
+    foreach $p (@talkers) {
+        if ($p->{'NAME'} eq $target) {
+            $p->setval($key, $val);
+            return;
         }
     }
+    write_irssi(undef, 'No such module');
 }
 
-
 sub cmd_show {
     my $target = shift;
     my $p;
@@ -468,10 +459,7 @@ sub init_xmlrtorrent {
     %torrentlist = map { my $a = substr($_, 1); ("$a" => $torrentlist{$_}) } keys(%torrentlist);
     $torrentindex = max(keys(%torrentlist)) + 1;
 
-    unless(defined($rtorrent = xmlrtorrent->new(
-            'XMLURL' => $conf->{'xmlrtorrent'}->{'XMLURL'},
-            'USERNAME' => $conf->{'xmlrtorrent'}->{'USERNAME'},
-            'USERNAME' => $conf->{'xmlrtorrent'}->{'PASSWORD'}))) {
+    unless(defined($rtorrent = xmlrtorrent->new())) {
         write_irssi('Could not initialize XMLRPC instance');
         return;
     }