diff options
Diffstat (limited to 'Plugin')
| -rw-r--r-- | Plugin/Admin.pm | 21 | ||||
| -rw-r--r-- | Plugin/Antiflood.pm | 7 | ||||
| -rw-r--r-- | Plugin/DevNull.pm | 3 | ||||
| -rw-r--r-- | Plugin/Echo.pm | 4 | ||||
| -rw-r--r-- | Plugin/Introspect.pm | 9 | ||||
| -rw-r--r-- | Plugin/Jinx.pm | 3 | ||||
| -rw-r--r-- | Plugin/Map.pm | 52 | ||||
| -rw-r--r-- | Plugin/Random.pm | 4 | ||||
| -rw-r--r-- | Plugin/Source.pm | 2 | ||||
| -rw-r--r-- | Plugin/Thanks.pm | 2 | ||||
| -rw-r--r-- | Plugin/Timezone.pm | 12 | ||||
| -rw-r--r-- | Plugin/Titillate.pm | 14 | ||||
| -rw-r--r-- | Plugin/URL_Title.pm | 12 | 
13 files changed, 40 insertions, 105 deletions
| diff --git a/Plugin/Admin.pm b/Plugin/Admin.pm index 02046da..f67df4d 100644 --- a/Plugin/Admin.pm +++ b/Plugin/Admin.pm @@ -3,13 +3,13 @@ package Plugin::Admin;  use strict;  use warnings; -my %config; +my $config;  sub configure { -	my $self = $_[0]; -	my $cmdref = $_[1]; -	my $cref = $_[2]; -	%config = %$cref; +	my $self = shift; +	my $cmdref = shift; +	shift; # run_command +	$config = shift;  	$cmdref->("say", sub { $self->say(@_); } );  	$cmdref->("action", sub { $self->do_action(@_); } ); @@ -32,7 +32,8 @@ sub configure {  sub is_admin {  	my $who = shift; -	my $is_admin = grep {$_ eq $who} @{$config{admins}}; +	print "admins are ".(join ", ", $config->{admins})."\n"; +	my $is_admin = grep {$_ eq $who} @{$config->{admins}};  	if (!$is_admin) {  		# Uhh log this rather than print  		print "$who isn't an admin, but tried to use a command"; @@ -148,7 +149,7 @@ sub ignore {  	return unless is_admin($who);  	return "Syntax: ignore <nick>" unless @arguments == 1; -	push @{$config{ignore}}, $arguments[0]; +	push @{$config->{ignore}}, $arguments[0];  	return "Ignoring $arguments[0]";  } @@ -161,8 +162,8 @@ sub do_not_ignore {  	my $target = $arguments[0]; -	if (grep { $_ eq $target} @{$config{ignore}}) { -		@{$config{ignore}} = grep { $_ ne $target } @{$config{ignore}}; +	if (grep { $_ eq $target} @{$config->{ignore}}) { +		@{$config->{ignore}} = grep { $_ ne $target } @{$config->{ignore}};  		return "No longer ignoring $target.";  	} else {  		return "I wasn't ignoring $target anyway."; @@ -175,7 +176,7 @@ sub dump_ignore {  	return "Syntax: who are you ignoring?" unless @arguments == 0;  	# FIXME special case for empty ignore -	return "I am ignoring: " . join ", ", @{$config{ignore}}; +	return "I am ignoring: " . join ", ", @{$config->{ignore}};  }  sub exit { diff --git a/Plugin/Antiflood.pm b/Plugin/Antiflood.pm index eafa50c..77d7f17 100644 --- a/Plugin/Antiflood.pm +++ b/Plugin/Antiflood.pm @@ -7,14 +7,11 @@ my $message_count = 5;  my $message_period = 11; -my %config;  my %lastmsg = ();  sub configure { -	my $self = $_[0]; -	my $cmdref = $_[1]; -	my $cref = $_[2]; -	%config = %$cref; +	my $self = shift; +	my $cmdref = shift;  	return $self;  } diff --git a/Plugin/DevNull.pm b/Plugin/DevNull.pm index b29a71a..0565aec 100644 --- a/Plugin/DevNull.pm +++ b/Plugin/DevNull.pm @@ -3,15 +3,12 @@ package Plugin::DevNull;  use strict;  use warnings; -my %config;  my $run_command;  sub configure {  	my $self = shift;  	my $cmdref = shift; -	my $cref = shift;  	$run_command = shift; -	%config = %$cref;  	$cmdref->("hush", sub { $self->hush(@_); } );  	$cmdref->("devnull", sub { $self->hush(@_); } ); diff --git a/Plugin/Echo.pm b/Plugin/Echo.pm index 76a245a..2cd59fc 100644 --- a/Plugin/Echo.pm +++ b/Plugin/Echo.pm @@ -3,13 +3,9 @@ package Plugin::Echo;  use strict;  use warnings; -my %config; -  sub configure {  	my $self = shift;  	my $cmdref = shift; -	my $cref = shift; -	%config = %$cref;  	$cmdref->("echo", sub { $self->echo(@_); } ); diff --git a/Plugin/Introspect.pm b/Plugin/Introspect.pm index 2f42cb2..4c53984 100644 --- a/Plugin/Introspect.pm +++ b/Plugin/Introspect.pm @@ -3,13 +3,14 @@ package Plugin::Introspect;  use strict;  use warnings; -my %config; +my $root_config;  sub configure {  	my $self = shift;  	my $cmdref = shift; -	my $cref = shift; -	%config = %$cref; +	shift; # run_command +	shift; # module config +	$root_config = shift;  	$cmdref->("plugins", sub { $self->dump_plugins(@_); } ); @@ -18,6 +19,6 @@ sub configure {  sub dump_plugins {  	my ($self, $irc, $logger, $who, $where, $rest, @arguments) = @_; -	return "Plugins: " . join ", ", @{$config{plugins}}; +	return "Plugins: " . join ", ", $root_config->{plugins};  }  1; diff --git a/Plugin/Jinx.pm b/Plugin/Jinx.pm index a514bb8..f1e712b 100644 --- a/Plugin/Jinx.pm +++ b/Plugin/Jinx.pm @@ -11,13 +11,10 @@ my %last_response;  # Last message said on the channel  my %last; -my %config;  sub configure {  	my $self = $_[0];  	my $cmdref = $_[1]; -	my $cref = $_[2]; -	%config = %$cref;  	return $self;  } diff --git a/Plugin/Map.pm b/Plugin/Map.pm index 665f41f..1e24f9c 100644 --- a/Plugin/Map.pm +++ b/Plugin/Map.pm @@ -3,15 +3,13 @@ package Plugin::Map;  use strict;  use warnings; -my %config; -my $run_command; +use ListParser; +my $run_command;  sub configure {  	my $self = shift;  	my $cmdref = shift; -	my $cref = shift; -	%config = %$cref;  	$run_command = shift;  	$cmdref->("map", sub { $self->map(@_); } ); @@ -19,50 +17,6 @@ sub configure {  	return $self;  } -sub parse_list { -	my ($input) = @_; -	my @res; -	my $i = 0; - -	# Index of the start of the current item -	my $item_i = 0; - -	# Level of nested lists, 1 being the minimum -	my $nest = 1; - -	# Are we currently lexing inside a string literal? -	my $is_string = 0; - -	return ("Error: expected [", undef) unless substr($input, $i, 1) eq "["; -	$i++; -	$item_i = $i; - -	while ($nest != 0 && $i < length($input)) { -		my $c = substr($input, $i, 1); - -		if ($c eq "[") { -			$nest++; -		} elsif ($c eq "]") { -			$nest--; -		} - -		if (($nest == 1 and $c eq ",") || ($nest == 0 and $c eq "]")) { -			my $item = substr($input, $item_i, $i - $item_i); -			$item =~ s/^\s+|\s+$//g; -			push @res, $item; -			$item_i = $i+1; -		} -		$i++; -	} - -	return ("Error: expected ], got end of line", undef) unless $nest == 0; - -	if ($i != length($input)) { -		return ("Error: unexpected item in the bagging area (after ']')", undef); -	} - -	return (undef, @res); -}  sub map {  	my ($self, $irc, $logger, $who, $where, $rest, @arguments) = @_; @@ -70,7 +24,7 @@ sub map {  	return "Syntax: map command [item1, item2, ...]" unless $command and $subjects_raw; -	my ($e, @subjects) = parse_list($subjects_raw); +	my ($e, @subjects) = ListParser::parse_list($subjects_raw);  	return $e if $e;  	my @results = map { $run_command->("$command $_", $who, $where) } @subjects; diff --git a/Plugin/Random.pm b/Plugin/Random.pm index bd1c4d2..27332f8 100644 --- a/Plugin/Random.pm +++ b/Plugin/Random.pm @@ -5,13 +5,9 @@ use warnings;  use List::Util; -my %config; -  sub configure {  	my $self = shift;  	my $cmdref = shift; -	my $cref = shift; -	%config = %$cref;  	$cmdref->("shuffle", sub { $self->shuffle(@_); } );  	$cmdref->("choose", sub { $self->choose(@_); } ); diff --git a/Plugin/Source.pm b/Plugin/Source.pm index dcb92e6..e3774e9 100644 --- a/Plugin/Source.pm +++ b/Plugin/Source.pm @@ -3,8 +3,6 @@ package Plugin::Source;  use strict;  use warnings; -my %config; -  sub configure {  	my $self = shift;  	my $cmdref = shift; diff --git a/Plugin/Thanks.pm b/Plugin/Thanks.pm index 431db5d..e40e3ef 100644 --- a/Plugin/Thanks.pm +++ b/Plugin/Thanks.pm @@ -3,8 +3,6 @@ package Plugin::Thanks;  use strict;  use warnings; -my %config; -  sub configure {  	my $self = shift;  	my $cmdref = shift; diff --git a/Plugin/Timezone.pm b/Plugin/Timezone.pm index 53f8f4a..b88b6b9 100644 --- a/Plugin/Timezone.pm +++ b/Plugin/Timezone.pm @@ -8,10 +8,10 @@ use DateTime;  my %config;  sub configure { -	my $self = $_[0]; -	my $cmdref = $_[1]; -	my $cref = $_[2]; -	%config = %$cref; +	my $self = shift; +	my $cmdref = shift; +	shift; # run_command +	$config = shift;  	$cmdref->("time", sub { $self->time(@_); } ); @@ -22,7 +22,7 @@ sub time {  	my ($self, $irc, $logger, $who, $where, $rest, @arguments) = @_;  	my $requester = (split /!/, $who)[0]; -	my @known_zones = (keys %{$config{timezone}}); +	my @known_zones = (keys %{$config->{timezone}});  	return "Syntax: time [nick]" unless @arguments == 1; @@ -30,7 +30,7 @@ sub time {  	my ($case_nick) = grep {/^$nick$/i} @known_zones;  	if ($case_nick) {  		my $d = DateTime->now(); -		$d->set_time_zone($config{timezone}->{$case_nick}); +		$d->set_time_zone($config->{timezone}->{$case_nick});  		my $timestr = $d->strftime("%Y-%m-%d %H:%M %Z");  		return "$requester: $nick\'s clock reads $timestr";  	} else { diff --git a/Plugin/Titillate.pm b/Plugin/Titillate.pm index 79f1a4a..5ce5eeb 100644 --- a/Plugin/Titillate.pm +++ b/Plugin/Titillate.pm @@ -3,20 +3,20 @@ package Plugin::Titillate;  use strict;  use warnings; -my %config; +my $config;  sub configure { -	my $self = $_[0]; -	my $cmdref = $_[1]; -	my $cref = $_[2]; -	%config = %$cref; +	my $self = shift; +	my $cmdref = shift; +	shift; # run_command +	$config = shift;  	return $self;  }  sub on_message {  	my ($self, $logger, $me, $who, $where, $raw_what, $what, $irc) = @_;  	my $gathered = ""; -	my @expressions = (keys %{$config{triggers}}); +	my @expressions = (keys %{$config->{triggers}});  	my $expression = join '|', @expressions;  	while ($what =~ /($expression)/gi) {  		my $matched = $1; @@ -28,7 +28,7 @@ sub on_message {  				last;  			}  		} -		$gathered .= $config{triggers}->{$key}; +		$gathered .= $config->{triggers}->{$key};  	}  	return $gathered;  } diff --git a/Plugin/URL_Title.pm b/Plugin/URL_Title.pm index 53d6326..9d20cd6 100644 --- a/Plugin/URL_Title.pm +++ b/Plugin/URL_Title.pm @@ -6,13 +6,13 @@ use HTTP::Tiny;  use HTML::Parser;  use utf8; -my %config; +my $config;  sub configure { -	my $self = $_[0]; -	my $cmdref = $_[1]; -	my $cref = $_[2]; -	%config = %$cref; +	my $self = shift; +	my $cmdref = shift; +	shift; # run_command +	$config = shift;  	return $self;  } @@ -75,7 +75,7 @@ sub on_message  	$shorturl =~ s,/$,,g;  	# truncate URL without http(s):// to configured length if needed -	$shorturl = (substr $shorturl, 0, $config{url_len}) . "β¦" if length ($shorturl) > $config{url_len}; +	$shorturl = (substr $shorturl, 0, $config->{url_len}) . "β¦" if length ($shorturl) > $config->{url_len};  	my $composed_title = "$title ($shorturl)";  	return $composed_title; | 
