Add several greetings suggested by Joost van Baal-Ilić
[poe-component-irc-plugin-hello.git] / lib / POE / Component / IRC / Plugin / Hello.pm
index 3e832309c212b3ec612c8507001486a2e43d07f9..75e2f5b3829bc0a43581451c4233600e2b0fc764 100644 (file)
@@ -1,8 +1,12 @@
-package POE::Component::IRC::Plugin::Hello 0.001;
+package POE::Component::IRC::Plugin::Hello;
 
 use 5.014000;
 use strict;
 use warnings;
+use utf8;
+use Encode qw/encode decode/;
+
+our $VERSION = '0.001002';
 
 use List::Util qw/first/;
 
@@ -10,32 +14,42 @@ use IRC::Utils qw/parse_user/;
 use POE::Component::IRC::Plugin qw/PCI_EAT_NONE/;
 
 sub new {
-  my $class = shift;
-  my $self = {
-       greetings => [qw/privet hello salut salutari neata neaţa hola hey hi bonjour wassup sup hallo chikmaa tungjatjeta parev salam namaskaar mingalarba ahoy saluton allo moin aloha namaste shalom ciào ciao servus salve ave merhaba witaj hei hola selam sawubona/, "what's up", 'que tal', 'こんにちは', '你好', 'ni hao'],
-       @_
-  };
-
-  bless $self, $class
+       my $class = shift;
+       my $self = {
+               greetings => [
+                       qw/privet hello salut salutari neata neaţa neața neatza
+                          hola hey hi bonjour wassup sup hallo chikmaa
+                          tungjatjeta parev salam namaskaar mingalarba ahoy
+                          saluton allo moin aloha namaste shalom ciào ciao servus
+                          salve ave merhaba witaj hei hola selam sawubona
+                          geodemorgen hoi καλημέρα/,
+                       "what's up", 'que tal', 'こんにちは', '你好', 'ni hao',
+                       'добро јутро', 'γεια σας', 'bom dia', 'hyvää huomenta'],
+               @_
+       };
+
+       bless $self, $class
 }
 
 sub PCI_register {
-  my ($self, $irc) = @_;
-  $irc->plugin_register($self, SERVER => qw/public/);
-  1
+       my ($self, $irc) = @_;
+       $irc->plugin_register($self, SERVER => qw/public/);
+       1
 }
 
 sub PCI_unregister { 1 }
 
 sub S_public{
-  my ($self, $irc, $rfullname, $rchannels, $rmessage) = @_;
-  my $nick = parse_user $$rfullname;
-  my $mynick = $irc->nick_name;
-  my @hello = @{$self->{greetings}};
-
-  my $match = first { $$rmessage =~ /^\s*(?:$mynick(?:)[:,])?\s*$_\s*$/i } @hello;
-  $irc->yield(privmsg => $$rchannels->[0] => $hello[int rand $#hello].", $nick") if $match;
-  PCI_EAT_NONE
+       my ($self, $irc, $rfullname, $rchannels, $rmessage) = @_;
+       my $nick = parse_user $$rfullname;
+       my $mynick = $irc->nick_name;
+       my $message = decode 'UTF-8', $$rmessage;
+       my @hello = @{$self->{greetings}};
+
+       my $match = first { $message =~ /^\s*(?:$mynick(?:)[:,])?\s*$_\s*[.!]?\s*$/i } @hello;
+       my $randhello = encode 'UTF-8', $hello[int rand $#hello];
+       $irc->yield(privmsg => $$rchannels->[0] => "$randhello, $nick") if $match;
+       PCI_EAT_NONE
 }
 
 1;
This page took 0.010836 seconds and 4 git commands to generate.