X-Git-Url: https://git.camperquake.de/gitweb.cgi?p=xmlrtorrent.git;a=blobdiff_plain;f=xmlrtorrent.pl;h=3e13500abb79e3b3b27c9088dd02778c7c259bd5;hp=4c3e5201d74e9fb8fc190379c9abf4e3b962e03a;hb=fe5880e8642621d70d46f142378054d06f031f3e;hpb=9a9ec8e4e95f6aa38ab9dc2bef2ee15641ffef16 diff --git a/xmlrtorrent.pl b/xmlrtorrent.pl index 4c3e520..3e13500 100644 --- a/xmlrtorrent.pl +++ b/xmlrtorrent.pl @@ -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,44 +293,62 @@ 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; my $e; + + if (defined($target)) { + foreach $p (@talkers) { + if ($p->{'NAME'} eq $target) { + write_irssi($p->getconfstr()); + return; + } + } + write_irssi('No such module'); + } else { + write_irssi('Loaded talkers:'); + foreach $p (@talkers) { + write_irssi(' %s', $p->{'NAME'}); + }; + } } sub cmd_help { my $target = shift; my $p; - write_irssi(<<'EOT'); + if (defined($target)) { + foreach $p (@talkers) { + if ($p->{'NAME'} eq $target) { + write_irssi($p->gethelpstr()); + return; + } + } + write_irssi('No such module'); + } else { + write_irssi(<<'EOT'); Supported commands: save: save the current configuration - help: display this help or module specific help + help [modulename]: display this help or module specific help + show [modulename]: show loaded modules or the current parameters of a module talker [modulename]: display or set the talker to use debug: enable debugging messages nodebug: disable debugging messages EOT +; + } } sub cmd_talker { @@ -457,10 +475,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; }