From: Ralf Ertzinger Date: Sat, 5 Feb 2011 13:41:13 +0000 (+0100) Subject: quotesite: move supported command list into hash X-Git-Url: https://git.camperquake.de/gitweb.cgi?p=quotesite.git;a=commitdiff_plain;h=18eb17221c111a8442538c54d2527e8c06b25803 quotesite: move supported command list into hash --- diff --git a/quotesite.pl b/quotesite.pl index 94859d7..6e4728b 100644 --- a/quotesite.pl +++ b/quotesite.pl @@ -58,6 +58,54 @@ sub pop_output { @outputstack = (undef) unless (@outputstack); } +my $quotesite_commands = { + 'save' => sub { + cmd_save(); + }, + + + 'set' => sub { + cmd_set(@_); + }, + + 'show' => sub { + cmd_show(@_); + }, + + 'help' => sub { + cmd_help(@_); + }. + + 'enable' => sub { + cmd_enable(@_); + }, + + 'disable' => sub { + cmd_disable(@_); + }, + + 'reload' => sub { + init_quotesite(0); + }, + + 'debug' => sub { + $debug = 1; + foreach (@grabbers) { + $_->setdebug(1); + } + write_irssi('Enabled debugging'); + }, + + 'nodebug' => sub { + $debug = 0; + foreach (@grabbers) { + $_->setdebug(0); + } + write_irssi('Disabled debugging'); + }, +}; + + sub write_irssi { my @text = @_; my $output = $outputstack[0]; @@ -340,41 +388,12 @@ sub init_quotesite { sub cmdhandler { my $event = shift; - my @params = split(/\s+/, $event->message()); + my ($cmd, @params) = split(/\s+/, $event->message()); push_output($event->ewpf); - if ($params[0] eq 'save') { - cmd_save(); - } elsif ($params[0] eq 'set') { - shift(@params); - cmd_set(@params); - } elsif ($params[0] eq 'show') { - shift(@params); - cmd_show(@params); - } elsif ($params[0] eq 'help') { - shift(@params); - cmd_help(@params); - } elsif ($params[0] eq 'enable') { - shift(@params); - cmd_enable(@params); - } elsif ($params[0] eq 'disable') { - shift(@params); - cmd_disable(@params); - } elsif ($params[0] eq 'reload') { - init_quotesite(0); - } elsif ($params[0] eq 'debug') { - $debug = 1; - foreach (@grabbers) { - $_->setdebug(1); - } - write_irssi('Enabled debugging'); - } elsif ($params[0] eq 'nodebug') { - $debug = 0; - foreach (@grabbers) { - $_->setdebug(0); - } - write_irssi('Disabled debugging'); + if (exists($quotesite_commands->{$cmd})) { + $quotesite_commands->{$cmd}->(@params); } pop_output();