diff options
Diffstat (limited to 'plugin/timezone.pm')
-rw-r--r-- | plugin/timezone.pm | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/plugin/timezone.pm b/plugin/timezone.pm new file mode 100644 index 0000000..db6bada --- /dev/null +++ b/plugin/timezone.pm @@ -0,0 +1,36 @@ +#!/usr/bin/env perl + +package plugin::timezone; + +use strict; +use warnings; + +use DateTime; + +my %config; + +sub configure { + my $self = $_[0]; + my $cref = $_[1]; + %config = %$cref; + return $self; +} + +sub message { + my ($self, $logger, $me, $who, $where, $raw_what, $what, $irc) = @_; + + my $who_nick = ( split /!/, $who )[0]; + + my @known_zones = (keys %{$config{timezone}}); + if ($what =~ /^%time\s(.+)$/) { + my $nick = $1; + if (grep {$_ eq $nick} @known_zones) { + my $d = DateTime->now(); + $d->set_time_zone($config{timezone}->{$nick}); + return "$who_nick: $nick\'s clock reads $d"; + } else { + return "$who_nick: I don't know what timezone $nick is in"; + } + } +} +1; |