add module specific help
[xmlrtorrent.git] / xmlrtorrent.pl
index 71b3b3e..9d5a77d 100644 (file)
@@ -78,6 +78,10 @@ my $xmlrtorrent_commands = {
         cmd_remote(@_);
     },
 
+    'talker' => sub {
+       cmd_talker(@_);
+    },
+
     'debug' => sub {
         $debug = 1;
         write_irssi('Enabled debugging');
@@ -319,16 +323,47 @@ 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
+ save: save the current configuration
+ help [modulename]: display this help or module specific help
+ talker [modulename]: display or set the talker to use
  debug: enable debugging messages
  nodebug: disable debugging messages
 EOT
+;
+    }
+}
+
+sub cmd_talker {
+    my $target = shift;
+    my $p;
+
+    if (defined($target)) {
+        foreach $p (@talkers) {
+            if (($p->{'NAME'} eq $target) && ($p->{'TYPE'} eq 'talker')) {
+                $talker = $p;
+                $conf->{'videosite'}->{'talker'} = $target;
+                return;
+            }
+        }
+        write_irssi('No such talker');
+    } else {
+        write_irssi('Current talker: %s', $conf->{'videosite'}->{'talker'});
+    }
 }
 
 
+
 # save on unload
 sub sig_command_script_unload {
     my $script = shift;