: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 (`$BIN_DATE -d @$MATCH +%c`)" }

  :0 E
  * MATCH ?? ^[0-9]+h$
  * MATCH ?? ^\/[^h]+
  { DATESTR="$DATE + $MATCH hours" }

  JUST_DATE="`$BIN_DATE -d \"$DATE\" +%x`"

  :0 E
  * MATCH ?? ^[0-9]+m$
  * MATCH ?? ^\/[^m]+
  { DATESTR="$JUST_DATE + $MATCH months $DELIVERY_TIME" }

  :0 E
  * MATCH ?? ^[0-9]+w$
  * MATCH ?? ^\/[^w]+
  { DATESTR="$JUST_DATE + $MATCH weeks $DELIVERY_TIME" }

  :0 E
  * MATCH ?? ^[0-9]+d?$
  * MATCH ?? ^\/[^d]+
  { DATESTR="$JUST_DATE + $MATCH days $DELIVERY_TIME" }

  JUST_DATE
  DELIVERY_TIME

  :0 E
  {
    LOG="tickle:      invalid date string: $MATCH$NL"
    EXITCODE=69
    HOST
  }

  :0
  * ! STAMP ?? .
  { STAMP=`$BIN_DATE +'%s (%c)' -d "$DATESTR"` }

  :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