diff options
Diffstat (limited to 'bin/server/learn_spam')
-rwxr-xr-x | bin/server/learn_spam | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/bin/server/learn_spam b/bin/server/learn_spam new file mode 100755 index 0000000..ab5603a --- /dev/null +++ b/bin/server/learn_spam @@ -0,0 +1,36 @@ +#!/bin/bash + +MAILDIR=~/Maildir +OPTS="--no-sync" +SALEARN=/usr/bin/vendor_perl/sa-learn + +if [[ "$1" == "-q" ]]; then + OPTS="$OPTS" + OUTFILE="/dev/null" +else + OPTS="$OPTS --showdots" + OUTFILE="/dev/stdout" +fi + +if [[ ! "$1" == "-q" ]]; then + echo "$(date): Learning ham..." +fi +nice find $MAILDIR -type f | \ + perl -nl0e'chomp; ($ts) = /(\d{10})/; $now = time; print if m{/(new|cur)/} && !m{/(\.old|\.spam)/} && $ts > $now - 60*60*24*30' | \ + xargs -n1000 -0 $SALEARN $OPTS --ham > $OUTFILE + +if [[ ! "$1" == "-q" ]]; then + echo "$(date): Learning spam..." +fi +nice find $MAILDIR -type f | \ + perl -nl0e'chomp; ($ts) = /(\d{10})/; $now = time; print if m{/(new|cur)/} && m{/\.spam/} && $ts > $now - 60*60*24*30' | \ + xargs -n1000 -0 $SALEARN $OPTS --spam > $OUTFILE + +if [[ ! "$1" == "-q" ]]; then + echo "$(date): Syncing..." +fi +nice $SALEARN --sync > $OUTFILE + +if [[ ! "$1" == "-q" ]]; then + echo "$(date): Done!" +fi |