diff --git a/update b/update index a1a443d..bf2941f 100755 --- a/update +++ b/update @@ -2,19 +2,65 @@ set -e -sources=$(cat ./data/sources.txt) +tmp=$(mktemp -t freemail) +cat ./data/blacklist.txt \ + | sed '/./,$!d' \ + | sed -e 's/^ *//' -e 's/ *$//' \ + | awk '{print tolower($0)}' \ + | sort \ + | uniq > $tmp +mv $tmp ./data/blacklist.txt -for source in $sources; do - curl --silent $source >> tmp -done; +tmp=$(mktemp -t freemail) +cat ./data/free.txt \ + | sed '/./,$!d' \ + | sed -e 's/^ *//' -e 's/ *$//' \ + | awk '{print tolower($0)}' \ + | sort \ + | uniq \ + | comm -23 - ./data/blacklist.txt > $tmp +mv $tmp ./data/free.txt -cat data/free.txt tmp \ +tmp=$(mktemp -t freemail) +cat ./data/disposable.txt \ | sed '/./,$!d' \ | sed -e 's/^ *//' -e 's/ *$//' \ | awk '{print tolower($0)}' \ | sort \ | uniq \ | comm -23 - ./data/blacklist.txt \ - | comm -23 - ./data/disposable.txt > ./data/free.txt + | comm -23 - ./data/free.txt > $tmp +mv $tmp ./data/disposable.txt + +sources=$(cat ./data/sources.txt) +new=$(mktemp -t freemail) +for source in $sources; do + echo "$(curl --silent $source)" >> $new +done; + +tmp=$(mktemp -t freemail) +cat $new \ + | sed '/./,$!d' \ + | sed -e 's/^ *//' -e 's/ *$//' \ + | awk '{print tolower($0)}' \ + | sort \ + | uniq \ + | comm -23 - ./data/blacklist.txt \ + | comm -23 - ./data/free.txt \ + | comm -23 - ./data/disposable.txt > $tmp + +confirmed=$(mktemp -t freemail) +for domain in $(cat $tmp); do + result=`dig +short mx $domain` + if [ -n "$result" ]; then + echo $domain >> $confirmed + fi +done + +tmp=$(mktemp -t freemail) +cat $confirmed ./data/free.txt \ + | sort \ + | uniq > $tmp +mv $tmp ./data/free.txt echo 'Complete!'