chiark / gitweb /
wip
[nj-awaymsg.git] / AwayMsg.pm
index e20d6b6acc39f5b825a8fce78657bc45c79c4494..483345524ee2dedb1eae5678b601e78e97494b70 100644 (file)
@@ -5,13 +5,15 @@ use strict;
 use warnings;
 
 use DBI;
+use Data::Dumper;
 
 BEGIN {
     use Exporter ();
     our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
     $VERSION     = 1.00;
     @ISA         = qw(Exporter);
-    @EXPORT      = qw(&db_connect &db_commit $dbh);
+    @EXPORT      = qw(db_connect db_commit expires2timet
+                      $dbh);
     %EXPORT_TAGS = ( );
     @EXPORT_OK   = qw();
 }
@@ -45,10 +47,23 @@ sub nooutput ($) {
     }
 }
 
+sub expires2timet ($) {
+    my ($str) = @_;
+    if ($str eq '') {
+       return undef;
+    }
+    open F, "-|", qw(date -d),'$str',qw(+%s) or die $!;
+    my $dtime = <F>;
+    $?=0; $!=0; close F or die "$? $!";
+    $dtime =~ m/^\d+$/ or die "$dtime ?";
+    return $dtime+0;
+}
 
 sub db_commit () {
-    nooutput("SELECT * FROM addresses LEFT JOIN config USING (emailaddr)");
-    nooutput("SELECT * FROM addresses LEFT JOIN texts USING (textid)");
+    nooutput("SELECT * FROM addresses LEFT JOIN config".
+            " USING (emailaddr) WHERE forwardfile IS NULL");
+    nooutput("SELECT * FROM addresses LEFT JOIN texts".
+            " USING (textid) WHERE name IS NULL");
     $dbh->do("COMMIT");
 }