remove unneeded variable
[videosite.git] / videosite / Base.pm
1 # (c) 2007 by Ralf Ertzinger <ralf@camperquake.de>
2 # licensed under GNU GPL v2
3
4 package Base;
5
6 use strict;
7 use Irssi;
8 use Data::Dumper;
9
10 sub new {
11     my $class = shift;
12     my $self = {'_DEBUG' => 0};
13
14     bless($self, $class);
15
16     $self->_prepare_parameters();
17
18     return $self;
19 }
20
21 sub error {
22     my $self = shift;
23     my $t;
24
25     $t = sprintf(shift(@_), @_);
26     $t =~ s/%/%%/g;
27     Irssi::print($t);
28 }
29
30 sub debug {
31     my $self = shift;
32     my @data = @_;
33
34     $data[0] = "DEBUG: " . $data[0];
35     if ($self->{'_DEBUG'} != 0) {$self->error(@data)};
36 }
37
38 sub mergeconfig {
39     my $self = shift;
40     my $c = shift;
41     my $o;
42
43     return $self->{'_CONFIG'} unless defined($c);
44
45     foreach $o (keys(%{$c->{'option'}})) {
46         if (exists($self->{'_CONFIG'}->{'option'}->{$o})) {
47             $self->{'_CONFIG'}->{'option'}->{$o}->{'content'} = $c->{'option'}->{$o}->{'content'};
48         }
49     }
50
51     return $self->{'_CONFIG'};
52 }
53
54 sub _prepare_parameters {
55     my $self = shift;
56     my $p;
57
58     $self->{'_CONFIG'} = {'option' => {}};
59
60     foreach $p (keys(%{$self->{'_PARAMS'}})) {
61         $self->{'_CONFIG'}->{'option'}->{$p}->{'content'} = $self->{'_PARAMS'}->{$p}->[0];
62     }
63 }
64
65 sub _getval {
66     my $self = shift;
67     my $key = shift;
68     my $val;
69
70     $val = $self->{'_CONFIG'}->{'option'}->{$key}->{'content'};
71     $self->debug('Returning %s=%s', $key, $val);
72
73     return $val;
74 }
75
76 sub setval {
77     my $self = shift;
78     my $key = shift;
79     my $val = shift;
80
81     if (exists($self->{'_CONFIG'}->{'option'}->{$key})) {
82         $self->{'_CONFIG'}->{'option'}->{$key}->{'content'} = $val;
83     } else {
84         $self->error('Module %s does not have a parameter named %s', $self->{'NAME'}, $key);
85     }
86 }
87
88 sub getconfstr {
89     my $self = shift;
90     my $s = 'Options for ' . $self->{'NAME'} . ":\n";
91     my $k;
92     my $p;
93
94     foreach $k (keys(%{$self->{'_CONFIG'}->{'option'}})) {
95         $p = $self->{'_CONFIG'}->{'option'}->{$k}->{'content'};
96         $p =~ s/%/%%/g;
97         $s .= sprintf("  %s: %s", $k, $p);
98         if ($self->{'_CONFIG'}->{'option'}->{$k}->{'content'} eq $self->{'_PARAMS'}->{$k}->[0]) {
99             $s .= " (default)\n";
100         } else {
101             $s .= "\n";
102         }
103     }
104
105     return $s;
106 }
107
108 sub gethelpstr {
109     my $self = shift;
110     my $s = 'Help for ' . $self->{'NAME'} . ":\n";
111     my $k;
112     my $p;
113
114     if (exists($self->{'DESC'})) {
115         $s .= "Description:\n " . $self->{'DESC'};
116     }
117
118     $s .= " Options:\n";
119     foreach $k (keys(%{$self->{'_CONFIG'}->{'option'}})) {
120         $p = $self->{'_PARAMS'}->{$k}->[0];
121         $p =~ s/%/%%/g;
122         $s .= sprintf("  %s: %s (default: %s)\n", $k, $self->{'_PARAMS'}->{$k}->[1], $p);
123     }
124
125     return $s;
126 }
127
128 sub setdebug {
129     my $self = shift;
130
131     $self->{'_DEBUG'} = shift;
132 }
133
134 1;