- Study message before throwing it to the grabbers
[videosite.git] / videosite / GrabberBase.pm
index 45fe489..6a1c70a 100644 (file)
@@ -9,7 +9,9 @@ use strict;
 
 sub new {
     my $class = shift;
-    my $self = {
+    my $self = $class->SUPER::new();
+
+    $self = {%{$self},
         NAME => 'FlashGrab',
         TYPE => 'grabber',
         PATTERNS => [],
@@ -22,17 +24,33 @@ sub get($$) {
     my $url = shift;
     my $pattern;
 
+    return undef unless $self->_getval('enabled');
+
     foreach $pattern (@{$self->{'PATTERNS'}}) {
         $self->debug("Matching %s against %s", $pattern, $url);
         if ($url =~ m|$pattern|) {
             $self->debug("Match");
-            return $self->_parse($url, $pattern);
+            return wantarray?($self->_parse($url, $pattern), $pattern):$self->_parse($url, $pattern);
         }
     }
 
     return undef;
 }
 
+sub enable {
+    my $self = shift;
+
+    $self->debug('Enabling %s grabber', $self->{'NAME'});
+    $self->setval('enabled', '1');
+}
+
+sub disable {
+    my $self = shift;
+
+    $self->debug('Disabling %s grabber', $self->{'NAME'});
+    $self->setval('enabled', '0');
+}
+
 sub _parse {
     my $self = shift;
     my $url = shift;