Читаем Хабр по почте
Все читают Хабр. И я в том числе. Но однажды доступ к нему был закрыт прокси. В связи с этим было решено сделать такое, что позволяло бы читать статьи Хабра.Результатом стала служба, запущенная на домашнем компьютере, которая проверяет новые статьи на Хабре, отправляет заголовки статей на почту, а также по запросу присылает сами статьи. Общение со службой только по почте. Подробнее под катом.Служба запущена на домашнем компьютере. Служба запускает четыре задания, которые выполняются через заданный промежуток времени:(Каждые 15 минут) Проверка новых статей по хабам. Номера и названия новых статей сохраняются в БД (Каждые 5 минут) Отправка подписчикам номеров и названий новых статей, которые еще не были отправлены (Каждые 2 минуты) Получение запроса из тестовой почты. Запрос сохраняется в БД (Каждые 2 минуты) Обработка запроса и отправка полной статьи на почту отправителя Подробнее про задания: Хабов много, скачивать статьи по всем очень долго. Был выбран небольшой список для тестирования. Всего 47 хабов. При выполнении первого задания служба скачивает страницы статей хабов, парсит текст и новые статьи кладет в БД (не саму статью, а только заголовок и номер) При выполнении второго задания служба выбирает из БД номера и заголовки новых статей (которые еще не были отправлены) отправляет всем подписчикам При выполнении третьего задания происходит скачивание новых писем со специальной почты habrpost@mail.ru. Тема письма и отправитель сохраняются в БД При выполнении четвертого задания происходит анализ полученных писем. В зависимости от темы письма результатом выполнения задания может быть следующее: Отправитель подписывается на рассылку получения заголовков новых статей Отправитель отписывается от рассылки Отправитель получает на почту статью. Если статья уже была скачана раньше, то отправится уже скачанная статья. Если статья еще не была скачана, то будет скачана статья HTML + со всеми картинками и стилям CSS. Всё это упакуется в архив Отправитель получает на почту заново скачанную статью (статья будет заново полностью скачана, даже если до этого была скачана) Ну и самое интересное. Буду рад обратной связи. Вы можете протестировать работу службы. Вот перечень команд: Описание: — Пишите новое письмо на почту habrpost@mail.ru; — Команда пишется в теме письма; — Команда записывается только числами;
Описание команд:1 — подписаться на рассылку (получать названия новых статей на почту);0 — отписаться от рассылки;123456 — получить статью № 123456 на почту;123456 1 — заново скачать статью № 123456 и получить статью на почту;