X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=videosite%2FGrabberBase.pm;h=b0bf480d50a880cefc364ebd78ec64f676dbe162;hb=12db405291947c6b02c2555051c3dc52f3995cbc;hp=5dbb36b397cef7eb9e8a5c2e2eef62f325350225;hpb=d738e03f4f2d70a41eba8b77177826d1ff62f42b;p=videosite.git diff --git a/videosite/GrabberBase.pm b/videosite/GrabberBase.pm index 5dbb36b..b0bf480 100644 --- a/videosite/GrabberBase.pm +++ b/videosite/GrabberBase.pm @@ -1,12 +1,17 @@ -package GrabberBase; -use Base; -@ISA = qw(Base); +# (c) 2007 by Ralf Ertzinger +# licensed under GNU GPL v2 + +package videosite::GrabberBase; +use videosite::Base; +@ISA = qw(videosite::Base); use strict; sub new { my $class = shift; - my $self = { + my $self = $class->SUPER::new(); + + $self = {%{$self}, NAME => 'FlashGrab', TYPE => 'grabber', PATTERNS => [], @@ -19,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;