]> git.donarmstrong.com Git - infobot.git/blobdiff - src/Modules/pager.pl
* Update Changlog to reflect babelfish fix
[infobot.git] / src / Modules / pager.pl
index 6ebd76c866f5b0a7d7414ed62753ac02c1505882..f937c1b522094d95878fb8896e15cbd230ff0330 100644 (file)
@@ -18,84 +18,91 @@ use strict;
 my $no_page;
 
 BEGIN {
-       eval qq{
+    eval qq{
                use Mail::Mailer qw(sendmail);
        };
-       $no_page++ if ($@);
+    $no_page++ if ($@);
 }
 
 sub pager::page {
-       my ($message) = @_;
-       my ($retval);
-
-       # TODO only allow registered users?
-
-       if ($no_page) {
-               &::status('page module requires Mail::Mailer.');
-               return 'page module not active';
-       }
-
-       unless ($message =~ /^(\S+)\s+(.*)$/) {
-               return undef;
-       }
-
-       my $from = $::who;
-       my $to = $1;
-       my $msg = $2;
-
-       # allow optional trailing : ie: page foo[:] hello
-       $to =~ s/:$//;
-
-       my $tofactoid = &::getFactoid(lc "${to}'s pager");
-       if ($tofactoid =~ /(\S+@\S+)/) {
-               my $toaddr = $1;
-               $toaddr =~ s/^mailto://;
-               # TODO require sender-locked factoid?
-
-               my $fromfactoid = &::getFactoid(lc "${from}'s pager");
-
-               my $fromaddr;
-               if ($fromfactoid =~ /(\S+@\S+)/) {
-                       $fromaddr = $1;
-                       $fromaddr =~ s/^mailto://;
-               } else {
-                       # TODO require sender to have valid self-locked pager factoid?
-                       $fromaddr = 'infobot@example.com';
-               }
-
-               my $channel = $::chan || 'infobot';
-               # TODO disallow use from private message? $chan='_default'
-
-               &::status("pager: from $from <$fromaddr>, to $to <$toaddr>, msg \"$msg\"");
-               my %headers = (
-                       To => "$to <$toaddr>",
-                       From => "$from <$fromaddr>",
-                       Subject => "Message from $channel!",
-                       'X-Mailer' => 'infobot',
-               );
-
-#              my $logmsg;
-#              for (keys %headers) {
-#                      $logmsg .= "$_: $headers{$_}\n";
-#              }
-#              $logmsg .= "\n$msg\n";
-#              &::status("pager:\n$logmsg");
-
-               my $failed;
-               my $mailer = new Mail::Mailer 'sendmail';
-               $failed++ unless $mailer->open(\%headers);
-               $failed++ unless print $mailer "$msg\n";
-               $failed++ unless $mailer->close;
-
-               if ($failed) {
-                       $retval='Sorry, an error occurred while sending mail.';
-               } else {
-                       $retval="$from: I sent mail to $toaddr from $fromaddr.";
-               }
-       } else {
-               $retval="Sorry, I don't know ${to}'s email address.";
-       }
-       &::performStrictReply($retval);
+    my ($message) = @_;
+    my ($retval);
+
+    # TODO only allow registered users?
+
+    if ($no_page) {
+        &::status('page module requires Mail::Mailer.');
+        return 'page module not active';
+    }
+
+    unless ( $message =~ /^(\S+)\s+(.*)$/ ) {
+        return undef;
+    }
+
+    my $from = $::who;
+    my $to   = $1;
+    my $msg  = $2;
+
+    # allow optional trailing : ie: page foo[:] hello
+    $to =~ s/:$//;
+
+    my $tofactoid = &::getFactoid( lc "${to}'s pager" );
+    if ( $tofactoid =~ /(\S+@\S+)/ ) {
+        my $toaddr = $1;
+        $toaddr =~ s/^mailto://;
+
+        # TODO require sender-locked factoid?
+
+        my $fromfactoid = &::getFactoid( lc "${from}'s pager" );
+
+        my $fromaddr;
+        if ( $fromfactoid =~ /(\S+@\S+)/ ) {
+            $fromaddr = $1;
+            $fromaddr =~ s/^mailto://;
+        }
+        else {
+
+            # TODO require sender to have valid self-locked pager factoid?
+            $fromaddr = 'infobot@example.com';
+        }
+
+        my $channel = $::chan || 'infobot';
+
+        # TODO disallow use from private message? $chan='_default'
+
+        &::status(
+            "pager: from $from <$fromaddr>, to $to <$toaddr>, msg \"$msg\"");
+        my %headers = (
+            To         => "$to <$toaddr>",
+            From       => "$from <$fromaddr>",
+            Subject    => "Message from $channel!",
+            'X-Mailer' => 'infobot',
+        );
+
+        #              my $logmsg;
+        #              for (keys %headers) {
+        #                      $logmsg .= "$_: $headers{$_}\n";
+        #              }
+        #              $logmsg .= "\n$msg\n";
+        #              &::status("pager:\n$logmsg");
+
+        my $failed;
+        my $mailer = new Mail::Mailer 'sendmail';
+        $failed++ unless $mailer->open( \%headers );
+        $failed++ unless print $mailer "$msg\n";
+        $failed++ unless $mailer->close;
+
+        if ($failed) {
+            $retval = 'Sorry, an error occurred while sending mail.';
+        }
+        else {
+            $retval = "$from: I sent mail to $toaddr from $fromaddr.";
+        }
+    }
+    else {
+        $retval = "Sorry, I don't know ${to}'s email address.";
+    }
+    &::performStrictReply($retval);
 }
 
 'pager';