#!/bin/bash
# v.0.22
# Простой скрипт парсинга e-mail адресов с сервиса Ответы@Mail.ru
# с разбиением по тематическим категориям
# dimio (http://www.dimio.org), 2011

#Путь к каталогу, в котором будут храниться адреса
PWD='.'
#Сколько страниц в каждом разделе парсить (max = 50)
PG_LIM="$1"

#Пример:
#Раздел 'it' - компьютеры и интернет. Названия категорий берутся из
#соответствующих ссылок сервиса ответов
for SECTION in 'hardware' 'internet' 'programming' 'software' 'pc_other'; do
#for SECTION in "$@"; do
    if [ ! -d "$PWD/$SECTION" ]; then
        mkdir "$PWD/$SECTION"
        echo "Create directory: $PWD/$SECTION"
    fi

    echo "Parsing $SECTION"

    for ((PAGE=1; PAGE <= PG_LIM; PAGE++)); do
        wget -q -O - "http://otvet.mail.ru/$SECTION/?pg=$PAGE" |
        grep -ioE '\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b' >> "$PWD/$SECTION/emails.txt";
        echo -n '.'
    done;

    sort -ui -o "$PWD/$SECTION/emails.txt" "$PWD/$SECTION/emails.txt"
    cat "$PWD/$SECTION/emails.txt" >> "$PWD/summary_emails.txt"
    echo -e "\n$SECTION ($PG_LIM pages): parsing done"
    echo 'Unique e-mails: ' `/usr/bin/wc -l "$PWD/$SECTION/emails.txt"`
    echo
done;

# Для повторных запусков (если не было вручную уничтожено созданное
#дерево каталогов с адресами) - сохранять только уникальные вновь добавленные адреса
sort -ui -o "$PWD/summary_emails.txt" "$PWD/summary_emails.txt"
echo 'Total unique e-mails: ' `/usr/bin/wc -l "$PWD/summary_emails.txt"`

exit 0;