1 # (c) 2007 by Ralf Ertzinger <ralf@camperquake.de>
2 # licensed under GNU GPL v2
4 package videosite::Base;
13 my $self = {'_DEBUG' => 0, '_OUT' => sub {print shift}};
15 $self->{_ua} = LWP::UserAgent->new('agent' => 'Mozilla/5.0', 'cookie_jar' => HTTP::Cookies->new);
19 $self->_prepare_parameters();
28 $data[0] = "(" . ref($self) . ") " . $data[0];
30 $self->{'_OUT'}(@data);
37 $data[0] = "DEBUG: " . $data[0];
38 if ($self->{'_DEBUG'} != 0) {$self->error(@data)};
46 return $self->{'_CONFIG'} unless defined($c);
48 foreach $o (keys(%{$c->{'option'}})) {
49 if (exists($self->{'_CONFIG'}->{'option'}->{$o})) {
50 $self->{'_CONFIG'}->{'option'}->{$o}->{'content'} = $c->{'option'}->{$o}->{'content'};
54 return $self->{'_CONFIG'};
57 sub _prepare_parameters {
61 $self->{'_CONFIG'} = {'option' => {'enabled' => {'content' => '1'}}};
63 foreach $p (keys(%{$self->{'_PARAMS'}})) {
64 $self->{'_CONFIG'}->{'option'}->{$p}->{'content'} = $self->{'_PARAMS'}->{$p}->[0];
73 $val = $self->{'_CONFIG'}->{'option'}->{$key}->{'content'};
74 $self->debug('Returning %s=%s', $key, $val);
84 if (exists($self->{'_CONFIG'}->{'option'}->{$key})) {
85 $self->{'_CONFIG'}->{'option'}->{$key}->{'content'} = $val;
87 $self->error('Module %s does not have a parameter named %s', $self->{'NAME'}, $key);
95 $self->{'_OUT'} = $io;
100 my $s = 'Options for ' . $self->{'NAME'} . ":\n";
104 foreach $k (keys(%{$self->{'_CONFIG'}->{'option'}})) {
105 $p = $self->{'_CONFIG'}->{'option'}->{$k}->{'content'};
107 $s .= sprintf(" %s: %s", $k, $p);
108 if ($self->{'_CONFIG'}->{'option'}->{$k}->{'content'} eq $self->{'_PARAMS'}->{$k}->[0]) {
109 $s .= " (default)\n";
118 # Return a list of the parameters supported by the module
119 # Does not return the 'enabled' parameter
124 return grep {$_ ne 'enabled' && /^$word/} keys %{$self->{'_PARAMS'}};
127 # Return a list of valid parameter values, if the parameter has
134 unless(exists($self->{'_PARAMS'}->{$param}->[2])) {
137 return grep {/^$word/} keys %{$self->{'_PARAMS'}->{$param}->[2]};
144 my $s = 'Help for ' . $self->{'NAME'} . ":\n";
148 if (exists($self->{'DESC'})) {
149 $s .= "Description:\n " . $self->{'DESC'};
153 foreach $k (keys(%{$self->{'_CONFIG'}->{'option'}})) {
154 $p = $self->{'_PARAMS'}->{$k}->[0];
156 if (exists($self->{'_PARAMS'}->{$k}->[2])) {
157 # The parameter has a list of allowed values. Add the keys and their help
158 $s .= sprintf(" %s: %s (default: %s)\n", $k, $self->{'_PARAMS'}->{$k}->[1], $p);
159 foreach (sort keys(%{$self->{'_PARAMS'}->{$k}->[2]})) {
160 $s .= sprintf(" %s: %s\n", $_, $self->{'_PARAMS'}->{$k}->[2]->{$_});
163 # The parameter just has a default value and a help text
164 $s .= sprintf(" %s: %s (default: %s)\n", $k, $self->{'_PARAMS'}->{$k}->[1], $p);
174 $self->{'_DEBUG'} = shift;