commit f1007ee0c6a2dfdc5512a1be3dada65cbc5d5391 from: rsc date: Sun May 21 18:39:29 2006 UTC new commit - 38c7eb9bd22e05ef32998858b178edaf8269cbab commit + f1007ee0c6a2dfdc5512a1be3dada65cbc5d5391 blob - e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 blob + b370701d06246fa89dcf3303b2be5a20ce8984fe --- bin/upas/.cvsignore +++ bin/upas/.cvsignore @@ -0,0 +1,11 @@ +aliasmail +filter +marshal +nedmail +qer +runq +send +smtp +smtpd +unvf +vf blob - /dev/null blob + 03be23f73edf7e9c4e150b6b046d5f333ba763ac (mode 755) --- /dev/null +++ bin/upas/isspam @@ -0,0 +1,35 @@ +#!/usr/local/plan9/bin/rc + +rfork en + +if (~ $#* 0) + echo usage: isspam mesg && exit 'usage' + +TMP=/tmp/isspam.$USER.$pid +{ + echo '# hash table' + msgcat $1|sed '/^$/,$ s/^From / From /'|upas/msgtok| + grep -v '^....................(.*) '| + sed 's/$/ 1/' +} >$TMP.tok + +x=`{upas/bayes -k $HOME/mail/_prof.mbox $HOME/mail/_prof.spam ~ $TMP.tok} +where=$x(1) +prob=$x(2) +echo $where $prob +*=($x) +shift 2 +while(! ~$#* 0){ + echo ' ' $1 $2 + shift 2 +} + +rm -f $TMP.tok +if (~ $where *spam*){ + echo spam + exit '' +} +if not { + echo ok + exit 'is ok' +} blob - /dev/null blob + 7067a435a36ed4a001bf68c988471d045b266334 (mode 755) --- /dev/null +++ bin/upas/msgcat @@ -0,0 +1,61 @@ +#!/usr/local/plan9/bin/rc + +fn read9p { + srv=$1; shift + 9p read $srv >[2=1]|grep -v '^9p\:' +} + +fn dir9p { + srv=$1; shift + 9p ls $srv >[2=1]|grep -v '^9p\:' +} + + +fn catmesg { + # hold on for a second + TMP=/tmp/$USER.`{date -n}; sleep 1 + msg=$1; + read9p $msg/body >$TMP.body + t=`{read9p $msg/type} + switch($t){ + case text/html + echo ' + ,x// c// + ,x/<[^>]+>/d + ,p + u + ,y/<[^>]+>/d + ,p + '| sam -d $TMP.body|[2] sed '1d;/^\?/d' + case text/* + cat $TMP.body + case message/* + cat $TMP.body + case multipart/related + if (~ `{read9p $msg/1/type} text/plain) + catmesg $msg/1 + if not if (~ `{read9p $msg/2/type} text/plain) + catmesg $msg/2 + if not { + for (i in `{dir9p $msg|awk '$10 ~ /[0-9][0-9]*/ {print $10}'}) + catmesg $msg/$i + } + case * + echo $t + # should there be more? + } + rm -f $TMP.body +} + +if (~ $#* 0) + echo usage: msgcat mail/mbox/msgn && exit 1 + +mesg=$1 +if (~ `{read9p $mesg/lines} '') + echo no such message $mesg && exit 2 + + +read9p $mesg/unixheader; read9p $mesg/header +echo +catmesg $mesg +echo blob - /dev/null blob + d7d448526edf46b61060367fe8c7c4fd7fb130b3 (mode 755) --- /dev/null +++ bin/upas/spam @@ -0,0 +1,19 @@ +#!/usr/local/plan9/bin/rc + +rfork en + +if (~ $#* 0) + echo usage: spam mesg && exit 1 + +TMP=/tmp/spam.$USER.$pid +{ + echo '# hash table' + msgcat $1|sed '/^$/,$ s/^From / From /'|upas/msgtok| + grep -v '^....................(.*) '| + sed 's/$/ 1/' +} >$TMP.tok + +cd $home/mail +upas/addhash -o _prof.mbox _prof.mbox 1 $TMP.tok -1 +upas/addhash -o _prof.spam _prof.spam 1 $TMP.tok 1 +rm -f $TMP.* blob - /dev/null blob + b34cd300d1d42b99f477832e48ccd852387a74fd (mode 755) --- /dev/null +++ bin/upas/spambox @@ -0,0 +1,14 @@ +#!/usr/local/plan9/bin/rc + +if (~ $#* 0) + echo usage: spambox mailfs/mbox && exit "usage" +box=$1 +msgs=(`{9p ls $box>[2=1]|awk '$10 ~ /[0-9][0-9]*/{print $10}'}) +if (~ $#msgs 0) + echo no messages in $box && exit "none" + +echo -n adding +for (m in $msgs){ + echo -n ' '$m + spam $box/$m +} blob - /dev/null blob + 1d056d528199bb48e19e5b0196592a11417ec3a4 (mode 755) --- /dev/null +++ bin/upas/unspam @@ -0,0 +1,19 @@ +#!/usr/local/plan9/bin/rc + +rfork en + +if (~ $#* 0) + echo usage: unspam mesg && exit 1 + +TMP=/tmp/unspam.$USER.$pid +{ + echo '# hash table' + msgcat $1|sed '/^$/,$ s/^From / From /'|upas/msgtok| + grep -v '^....................(.*) '| + sed 's/$/ 1/' +} >$TMP.tok + +cd $home/mail +upas/addhash -o _prof.mbox _prof.mbox 1 $TMP.tok 1 +upas/addhash -o _prof.spam _prof.spam 1 $TMP.tok -1 +rm -f $TMP.* blob - /dev/null blob + bfa70531a5a3d1c90a0f4656dbc4fc5f78c8570e (mode 755) --- /dev/null +++ bin/upas/unspambox @@ -0,0 +1,14 @@ +#!/usr/local/plan9/bin/rc + +if (~ $#* 0) + echo usage: unspambox mailfs/mbox && exit "usage" +box=$1 +msgs=(`{9p ls $box>[2=1]|awk '$10 ~ /[0-9][0-9]*/{print $10}'}) +if (~ $#msgs 0) + echo no messages in $box && exit "none" + +echo -n adding +for (m in $msgs){ + echo -n ' '$m + unspam $box/$m +}