X-Git-Url: https://git.madduck.net/etc/mailfilter.git/blobdiff_plain/3fd481d208c03d80095d0c912f636630cab978b6..45ff291908a431109c67c04807993f654089e24d:/procmail/tickle

diff --git a/procmail/tickle b/procmail/tickle
index dac3fb7..f03d1ab 100644
--- a/procmail/tickle
+++ b/procmail/tickle
@@ -1,31 +1,40 @@
 :0
+* ! DEST ?? .
+* ! TICKLE_DELIVERED ?? .
 * ORIGINAL_TO ?? ^.+@tickle\.madduck\.net$
 * ORIGINAL_TO ?? ^\/[^@]+
 {
+  DELIVERY_TIME=04:20
   STAMP
+
   :0
   * MATCH ?? ^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$
-  { STAMP=$MATCH }
+  { DELAY="@$MATCH" }
+
+  :0 E
+  * MATCH ?? ^[0-9]+h$
+  * MATCH ?? ^\/[^h]+
+  { DELAY="$DATE + $MATCH hours" }
+
+  JUST_DATE="`$BIN_DATE -d \"$DATE\" +%x`"
 
   :0 E
   * MATCH ?? ^[0-9]+m$
-  * MATCH ?? ^\/[^m]
-  { DATESTR="$DATE + $MATCH months 00:00" }
+  * MATCH ?? ^\/[^m]+
+  { DELAY="$JUST_DATE + $MATCH months $DELIVERY_TIME" }
 
   :0 E
   * MATCH ?? ^[0-9]+w$
-  * MATCH ?? ^\/[^w]
-  { DATESTR="$DATE + $MATCH weeks 00:00" }
+  * MATCH ?? ^\/[^w]+
+  { DELAY="$JUST_DATE + $MATCH weeks $DELIVERY_TIME" }
 
   :0 E
   * MATCH ?? ^[0-9]+d?$
-  * MATCH ?? ^\/[^d]
-  { DATESTR="$DATE + $MATCH days 00:00" }
+  * MATCH ?? ^\/[^d]+
+  { DELAY="$JUST_DATE + $MATCH days $DELIVERY_TIME" }
 
-  :0 E
-  * MATCH ?? ^[0-9]+h$
-  * MATCH ?? ^\/[^h]
-  { DATESTR="$DATE + $MATCH hours" }
+  JUST_DATE
+  DELIVERY_TIME
 
   :0 E
   {
@@ -34,15 +43,30 @@
     HOST
   }
 
-  :0
-  * ! STAMP ?? .
-  { STAMP=`/bin/date +%s -d "$DATESTR"` }
-
-  LOG="tickle:      stamping message $MSGID with $STAMP$NL"
+  DELAYED_QUEUE=$BASE/.store/
 
   :0 fw
-  |$FORMAIL -i "X-Tickle: $STAMP"
+  |$FORMAIL -i 'X-Tickle: yes'
 
-  :0
-  $BASE/.tickler/
+#  :0
+#  * ! STAMP ?? .
+#  { STAMP=`$BIN_DATE +'%s (%c)' -d "$DELAY"` }
+#
+#  :0
+#  * ! STAMP ?? ^[0-9]+ \([A-Za-z ]+ [0-9 :]+\)$
+#  {
+#    LOG="tickle:      error creating timestamp ($STAMP), using \$now$NL"
+#    STAMP="`$BIN_DATE +%s` (ERROR: original stamp '$STAMP' invalid)"
+#  }
+#
+#  :0 E
+#  { LOG="tickle:      stamping message $MSGID with $STAMP$NL" }
+#
+#  :0 fw
+#  |$FORMAIL -i "X-Tickle: $STAMP"
+#
+#  :0
+#  { DEST=$TICKLER_QUEUE }
 }
+
+# vim:ft=procmail