- Add the ability to enable/disable selected grabber modules
[videosite.git] / videosite.pl
index 58e4c96..20b5e9d 100644 (file)
@@ -120,9 +120,39 @@ sub cmd_set {
     write_irssi(undef, 'No such module');
 }
 
+
+sub cmd_enable {
+    my $target = shift;
+    my $p;
+
+    foreach $p (@grabbers) {
+        if ($p->{'NAME'} eq $target) {
+            $p->enable();
+            return;
+        }
+    }
+    write_irssi(undef, 'No such module');
+}
+
+
+sub cmd_disable {
+    my $target = shift;
+    my $p;
+
+    foreach $p (@grabbers) {
+        if ($p->{'NAME'} eq $target) {
+            $p->disable();
+            return;
+        }
+    }
+    write_irssi(undef, 'No such module');
+}
+
+
 sub cmd_show {
     my $target = shift;
     my $p;
+    my $e;
 
     if (defined($target)) {
         foreach $p (@getters, @grabbers) {
@@ -133,14 +163,15 @@ sub cmd_show {
         }
         write_irssi(undef, 'No such module');
     } else {
-        write_irssi(undef, 'Loaded grabbers:');
+        write_irssi(undef, 'Loaded grabbers (* denotes enabled modules):');
         foreach $p (@grabbers) {
-            write_irssi(undef, ' ' . $p->{'NAME'});
+            $e = $p->_getval('enabled');
+            write_irssi(undef, ' %s%s', $p->{'NAME'}, $e?'*':'');
         };
 
         write_irssi(undef, 'Loaded getters:');
         foreach $p (@getters) {
-            write_irssi(undef, ' ' . $p->{'NAME'});
+            write_irssi(undef, ' %s', $p->{'NAME'});
         };
     }
 }
@@ -165,6 +196,8 @@ Supported commands:
  show [modulename]: Show loaded modules, or the current parameters of a module
  set modulename parameter value: set a module parameter to a new value
  getter [modulename]: display or set the getter to use
+ enable [modulename]: enable the usage of this module (grabbers only)
+ disable [modulename]: disable the usage of this module (grabbers only)
  debug: enable debugging messages
  nodebug: disable debugging messages
 EOT
@@ -299,6 +332,12 @@ sub cmdhandler {
     } elsif ($params[0] eq 'getter') {
         shift(@params);
         cmd_getter(@params);
+    } elsif ($params[0] eq 'enable') {
+        shift(@params);
+        cmd_enable(@params);
+    } elsif ($params[0] eq 'disable') {
+        shift(@params);
+        cmd_disable(@params);
     } elsif ($params[0] eq 'debug') {
         $debug = 1;
         foreach (@grabbers, @getters) {