]> git.refcnt.org Git - lugs.git/blobdiff - lreminder/reminder.pl
lreminder: make regex more precise
[lugs.git] / lreminder / reminder.pl
index 4ecc1552b0df69aeaba085b3a6e3e24e2d8f6954..b3658cab2f5dbd85883f0f44ba1b5a55223cfa3c 100755 (executable)
@@ -15,7 +15,7 @@
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 #
 # Author: Steven Schubiger <stsc@refcnt.org>
-# Last modified: Mon Jan 13 22:07:51 CET 2014
+# Last modified: Tue Jan  6 14:37:04 CET 2015
 
 use strict;
 use warnings;
@@ -34,9 +34,10 @@ use Hook::Output::File ();
 use LUGS::Events::Parser ();
 use Mail::Sendmail qw(sendmail);
 use Text::Wrap::Smart::XS qw(fuzzy_wrap);
+use URI ();
 use WWW::Mechanize ();
 
-my $VERSION = '0.43';
+my $VERSION = '0.50';
 
 #-----------------------
 # Start of configuration
@@ -56,7 +57,7 @@ my $Config = {
 #---------------------
 
 my $dbh  = DBI->connect("dbi:mysql(RaiseError=>1):$Config->{dbase_name}", $Config->{dbase_user}, $Config->{dbase_pass});
-my $file = File::Basename::basename($Config->{events_url});
+my $file = File::Spec->catfile('tmp', (URI->new($Config->{events_url})->path_segments)[-1]);
 
 my ($test, $run) = (false, false);
 
@@ -90,7 +91,7 @@ sub fetch_and_write_events
     my $mech = WWW::Mechanize->new;
     my $http = $mech->get($Config->{events_url});
 
-    open(my $fh, '>', $file) or die "Cannot open $file: $!\n";
+    open(my $fh, '>', $file) or die "Cannot open $file for writing: $!\n";
     print {$fh} $http->content;
     close($fh);
 }
@@ -109,11 +110,8 @@ sub init
                 rewrite => '$TEXT - $HREF',
                 fields  => [ qw(location more) ],
             } ],
-            'br' => [ {
-                rewrite => '',
-                fields  => [ qw(more) ],
-            } ],
         },
+        purge_tags => [ qw(location responsible more) ],
         strip_text => [ 'mailto:' ],
     });
     unlink $file;
@@ -188,7 +186,7 @@ sub send_mail
 
     my $month_name = $month_names{$month};
 
-my $message = (<<MSG);
+my $message = (<<"MSG");
 Wann:\t$wday, $simple_day. $month_name $year, $time Uhr
 Was :\t$title
 Wo  :\t$location
@@ -207,7 +205,7 @@ MSG
             To      => $mail_subscriber,
             Subject => encode('MIME-Q', "LUGS Reminder - $title"),
             Message => $message,
-        ) or die $Mail::Sendmail::error;
+        ) or die "Cannot send mail: $Mail::Sendmail::error";
     }
     elsif ($test) {
         printf "[%s] <$mail_subscriber> ($color)\n", scalar localtime;
@@ -238,9 +236,9 @@ sub info_string
     my $modified = localtime((stat($0))[9]);
 
     $modified =~ s/(?<=\b) (?:\d{2}\:?){3} (?=\b)//x;
-    $modified =~ s/\s+/ /g;
+    $modified =~ s/\s{2,}/ /g;
 
-    my $info = <<EOT;
+    my $info = <<"EOT";
 -- 
 running $script v$VERSION - last modified: $modified
 EOT