Initial checkin
[quotesite.git] / quotesite / GrabberBase.pm
1 # (c) 2007 by Ralf Ertzinger <ralf@camperquake.de>
2 # licensed under GNU GPL v2
3
4 package GrabberBase;
5 use Base;
6 @ISA = qw(Base);
7
8 use strict;
9
10 sub new {
11     my $class = shift;
12     my $self = $class->SUPER::new();
13
14     $self = {%{$self},
15         NAME => 'FlashGrab',
16         TYPE => 'grabber',
17         PATTERNS => [],
18     };
19     return bless($self, $class);
20 }
21
22 sub get($$) {
23     my $self = shift;
24     my $url = shift;
25     my $pattern;
26
27     return undef unless $self->_getval('enabled');
28
29     foreach $pattern (@{$self->{'PATTERNS'}}) {
30         $self->debug("Matching %s against %s", $pattern, $url);
31         if ($url =~ m|$pattern|) {
32             $self->debug("Match");
33             return wantarray?($self->_parse($url, $pattern), $pattern):$self->_parse($url, $pattern);
34         }
35     }
36
37     return undef;
38 }
39
40 sub enable {
41     my $self = shift;
42
43     $self->debug('Enabling %s grabber', $self->{'NAME'});
44     $self->setval('enabled', '1');
45 }
46
47 sub disable {
48     my $self = shift;
49
50     $self->debug('Disabling %s grabber', $self->{'NAME'});
51     $self->setval('enabled', '0');
52 }
53
54 sub _parse {
55     my $self = shift;
56     my $url = shift;
57
58     return undef;
59 }
60
61 1;