Автоматическая проверка новых ЛС на форуме средствами linux

Реализуем проверку наличия непрочитанных личных сообщений на форуме самого распространенного движка vBulletin через командный bash файл и crontab.
Понадобятся такие стандартные утилиты: curl, iconv и grep. Проверьте установлены ли они в вашей системе.
При помощи дополнения к firefox «Просмотр HTTP заголовков» можно проследить как происходит авторизация, какие данные куда отправлять.

На форуме для которого писал авторизация происходит с капчей и длится не меньше года, поэтому авторизоваться каждый раз не будем, а просто скопируем кукисы. Вот какой получился скрипт:

#!/bin/bash
#Скрипт для проверки входящих ЛС на форуме

#адрес форума 
forum="http://www.some_forum.com/"
#cookie
cookies="bbsessionhash=2a7b22b71204d2d21r08de1f4d8f18ea; bbuserid=22; bbpassword=4e945eb849ba64e9f7ee1aa21ad4ca8f"


#временный файл, поменяйте на свой и проверте права на создание и редактирование файлов в этой директории
file="/home/phpdreamer/.curltmpMess.txt"
#читаем файл если он уже создан
contents=`cat "$file"` 
#если файл заблокирован скриптом
if [ "$contents" ]
then
#выходим
exit 0
fi 
#блокировка нужна чтобы не завалить пользователя одинаковыми сообщениями если он на часок отойдет

#получение страницы в файл .curltmpMess.txt
curl --url "$forum" --cookie "$cookies" > "$file"

#переводом файл из cp1251 в кодировку utf-8 и сохраняем с другим названием
iconv --output="$file 2" -f cp1251 -t utf-8 "$file" 

#поиск слов 'Ваши уведомления' в файле
searchres=`grep -c "Ваши уведомления" "$file 2"`
echo $searchres
if [ "$searchres" -gt 1 ]
then
#если найдено, выводим окно сообщения
zenity --info --text "Новые сообщения на форуме $forum"
fi
#удаляем временные файлы
unlink "$file"
unlink "$file 2"

Для grep можно использовать perl-совместимые регулярные выражения. Сохраните скрипт, отредактируйте и поставьте на запуск по расписанию. Чтобы сделать это в графическом интерфейсе есть gnome-schedule

В ubuntu команду следует прописывать как «sh путь_к_файлу»
При каждом запуске если на форуме будут новые сообщения (и все правильно настроено) будет появляться такое окно:

Пока не закрыть это окно, новые проверки сообщений происходить не будут и окнами заваливать не будет…
Можно заменить появление окна открытием страницы новых сообщений в браузере ( firefox http://url/private.php ), но скрипт больше учебный, так как все равно на большинстве форумов работает уведомление на email, хоть и местами с большой задержкой =)

Средства ОС имеют огромный потенциал и очень для многих задач можно обойтись без дополнительных языков программирования