Pull to refresh

Читаем Хабр по почте

Reading time 2 min
Views 10K
image
Все читают Хабр. И я в том числе. Но однажды доступ к нему был закрыт прокси. В связи с этим было решено сделать такое, что позволяло бы читать статьи Хабра.
Результатом стала служба, запущенная на домашнем компьютере, которая проверяет новые статьи на Хабре, отправляет заголовки статей на почту, а также по запросу присылает сами статьи. Общение со службой только по почте. Подробнее под катом.

Служба запущена на домашнем компьютере. Служба запускает четыре задания, которые выполняются через заданный промежуток времени:
  1. (Каждые 15 минут) Проверка новых статей по хабам. Номера и названия новых статей сохраняются в БД
  2. (Каждые 5 минут) Отправка подписчикам номеров и названий новых статей, которые еще не были отправлены
  3. (Каждые 2 минуты) Получение запроса из тестовой почты. Запрос сохраняется в БД
  4. (Каждые 2 минуты) Обработка запроса и отправка полной статьи на почту отправителя

Подробнее про задания:
  1. Хабов много, скачивать статьи по всем очень долго. Был выбран небольшой список для тестирования. Всего 47 хабов. При выполнении первого задания служба скачивает страницы статей хабов, парсит текст и новые статьи кладет в БД (не саму статью, а только заголовок и номер)
  2. При выполнении второго задания служба выбирает из БД номера и заголовки новых статей (которые еще не были отправлены) отправляет всем подписчикам
  3. При выполнении третьего задания происходит скачивание новых писем со специальной почты habrpost@mail.ru. Тема письма и отправитель сохраняются в БД
  4. При выполнении четвертого задания происходит анализ полученных писем. В зависимости от темы письма результатом выполнения задания может быть следующее:
    • Отправитель подписывается на рассылку получения заголовков новых статей
    • Отправитель отписывается от рассылки
    • Отправитель получает на почту статью. Если статья уже была скачана раньше, то отправится уже скачанная статья. Если статья еще не была скачана, то будет скачана статья HTML + со всеми картинками и стилям CSS. Всё это упакуется в архив
    • Отправитель получает на почту заново скачанную статью (статья будет заново полностью скачана, даже если до этого была скачана)


Ну и самое интересное. Буду рад обратной связи. Вы можете протестировать работу службы. Вот перечень команд:

Описание:
— Пишите новое письмо на почту habrpost@mail.ru;
— Команда пишется в теме письма;
— Команда записывается только числами;

Описание команд:
1 — подписаться на рассылку (получать названия новых статей на почту);
0 — отписаться от рассылки;
123456 — получить статью № 123456 на почту;
123456 1 — заново скачать статью № 123456 и получить статью на почту;

P.S. 10 октября остановил службу, чтобы проанализировать работу службы. Результаты можно посмотреть в другой статье.
Tags:
Hubs:
+11
Comments 29
Comments Comments 29

Articles