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

    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 октября остановил службу, чтобы проанализировать работу службы. Результаты можно посмотреть в другой статье.

    Средняя зарплата в IT

    110 000 ₽/мес.
    Средняя зарплата по всем IT-специализациям на основании 8 477 анкет, за 2-ое пол. 2020 года Узнать свою зарплату
    Реклама
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее

    Комментарии 29

      0
      а как же комментарии с хабра?
        +1
        Они тоже есть, скачивается же весь HTML
        –3
        Сервис возможно и хороший, но если вам с такими знаниями в ИТ на работе закрывают хабр проксей, то может быть задуматься о смене работы?
        Или может быть проще с телефона читать?
          0
          есть еще sohabr
            +1
            Я ждал этот комментарий. На сохабре картинки ведут на сайт хабра.
            Результатом является то, что я вижу только голый текст без картинок.
            В своей службе я предусмотрел скачивание CSS + картинки.
            +2
            Можно и с телефона, только экран маленький.
            Но ведь всегда руки чешутся сделать свое собственное.
            +7
            Привет из 90ых… Помнится во времена диалапа, доступ к контенту подобным образом был очень распространен.
              +3
              Все новое — хорошо забытое старое.
              Помнится, в 90-х, да и в начале 00-х, когда интернет был маленьким, а цена за доступ к нему — большой, провайдеры часто предлагали в рамках подключения бесплатный почтовый ящик (бесплатный в том смысле что трафик при «отправить/получить почту» не тарифицировался). Вот тут-то и пригождались сервисы web-2-mail, когда отправляешь по мылу ссылку — получаешь в ответ запрошенную страницу. Интересно, еще остались такие сервисы в живых, или уже позакрывались все?
                0
                до сих пор в моде rss2email сервисы
                сам себе сделал rss@jabber бота
                0
                Как отреагирует служба, если я захочу скачать статью №1 Wiki-FAQ для Хабрахабра?
                1 — подписаться на рассылку (получать названия новых статей на почту);

                или все-таки
                1 — получить статью № 1 на почту;
                1 1 — заново скачать статью № 123456 и получить статью на почту;
                  0
                  Вроде так:
                  1 — подписаться на рассылку
                  1 1 — заново скачать статью № 1 и получить статью на почту;
                  0
                  Я для борьбы с ограничениями прокси на работе поднял SSH на 443 порту (на проксях, как правило, разрешен connect на 443) и прокладываю туннель. В итоге могу пользоваться вообще любым сетевым софтом безо всяких ограничений.
                    0
                    Еще проще OpenVPN на 443 порту, работает везде и всегда :)
                      0
                      Не уверен, что поверх прокси можно пустить, а SSH можно.
                        0
                        Можно. Более того, есть sslh, он умеет мультиплексировать HTTPS, XMPP, SSH, OpenVPN, Tinc.
                    0
                    Тоже хотел читать хабр в похожих условиях, и сделал чатбота через протоколы skype/whatsapp/xmpp который по команде возращает «лучшие за сутки» статьи, првда только текст и без животрепещущих комментов.
                    Может пригодится вместо почты, гуглится бот по «skysiss». фор фрии
                      0
                      Делал я когда-то такое для себя (тыц). Даже периодически думаю реанимировать.

                      Идея (точнее даже реализация) заглохла в силу нескольких причин:
                      — появились весьма удобные офлайн-читалки на мобильных устройствах;
                      — появление в метро Wi-Fi и вообще большая доступность в метро Интернета;
                      — поймал себя на мысли, что скорее буду заново искать контент, чем обращаться к сохраненному (это сугубо моя индивидуальность, у меня даже «Избранное» браузера пустое).

                      Если же говорить о чем-то подобном в контексте ограничения доступа на работе, то есть масса способов его обойти. Самый простой — читать Хабр на мобильном устройстве. :) По косвенным признакам Вы из Москвы. Мобильный интернет сейчас дешев.
                        +1
                        Альтернативное решение:

                        1. На домашнем компьютере (если предположить, что на работе Хабр заблокирован) идем на habrahabr.ru/info/help/lenta/
                        2. В Разделе RSS находим ссылку на RSS feed вашей ленты. Типа habrahabr.ru/rss/feed/posts/abcd46732faec
                        3. В Thunderbird конфигурируем новый feed account, загоняем туда ссылку из пункта 2
                        4. Thinderbird скачает все новости вашей Хабраленты

                        Дальше в зависимости от ситуации. Например
                        5. Создаем новый rule:

                        image
                          +1
                          Решение, безусловно, хорошее.
                          Но напрашивается другой вопрос: слабо на работе именно работать?)
                            +1
                            одно другому не мешает.
                              0
                              Работаете 8-10 часов без отдыха, чая и обеда?
                                +1
                                Если вас же процитировать:

                                «Меньше восьми часов работать вполне можно, больше — уже перебор.

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

                                И другой момент, но только поймите меня правильно: работать — не обязательно означает «выполнять должностные обязанности от звонка до звонка». Читать документацию и литературу, саморазвиваясь как IT-специалист, тоже можно на работе. Но если этого не получается, а жадный до информации мозг хочет ее получить, приходится заниматься IT в нерабочее время. А как же спорт, семья, хобби?

                                Нет, я не лентяй и тоже когда-то упарывался, работая по 12-16 часов, но потом сравнил свою производительность и понял, что приличную часть этого времени просто туплю в монитор вместо того, чтобы решать задачи. Как следует выспался, переосмыслил все, что происходит, и стал выполнять ту же работу вчетверо быстрее. Теперь у меня есть свободное рабочее время, которое я вполне могу посвятить чтению и саморазвитию. „

                                То как раз, можно отнести этот случай к чтению и саморазвитию в свободное рабочее время...)
                                +1
                                Вы открыли заново сервис File-to-email.
                                  0
                                  IFTTT туда же
                                  0
                                  Для поиска новых статей скачивается соответствующая страница хаба? Почему не используется RSS или API (доступ можно попробовать запросить)?
                                    0
                                    Мне же нужно не просто ссылка на статью.
                                    У меня цельная служба, которая сохраняет номера новых постов в БД, а потом по запросу скачивает нужный пост со всеми CSS и картинками.
                                      0
                                      Вы же сначала формируете базу — название статьи, ссылка на ней (=номер поста). Для этого RSS и можно использовать. Когда нужен текст самой статьи (с картинками и всем остальным) — тогда да, скачивание html выглядит разумным (без доступа к API).
                                    0
                                    -
                                      0
                                      Нужно было решать более общую задачу «а как получить доступ к интернету вообще» через прокси, а не конкретно к хабру.
                                      Нечего городить костыли, вот вам статья: daniel.haxx.se/docs/sshproxy.html

                                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                      Самое читаемое