diff options
author | David Phillips <david@sighup.nz> | 2018-04-09 17:38:38 +1200 |
---|---|---|
committer | David Phillips <david@sighup.nz> | 2018-04-09 17:38:38 +1200 |
commit | 4dbb9752708ca966d668022caeb0f3fbe88cec04 (patch) | |
tree | 361fdac692926666fb0e66a07869bc621407e6b9 /plugin | |
parent | 12884b7556abfd848e42dfb40f6df55fb87c1ef9 (diff) | |
download | idalius-4dbb9752708ca966d668022caeb0f3fbe88cec04.tar.xz |
Add prototype timezone functionality
Diffstat (limited to 'plugin')
-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; |