Как стать автором
Обновить

Собственная подборка новостей для чтения в дороге за пару минут

Время на прочтение2 мин
Количество просмотров1.4K
На прошлой неделе я приобрел себе давно желанный e-book reader Sony PRS-300, обзор которого я могу написать отдельно. Данный ридер меня всем устраивает, но
не хватало возможности чтения rss новостей, так как утро гораздо приятнее проводить с газеткой, попивая кофе на кухне на выходных или
во время трудовых будней в дороге по работу или институт в общественном транспорте. За несколько вечеров я написал небольшое приложение на qt, решившее эту проблему, о нем и напишу далее.

YourOwnNewsMaker — простое приложение, написанное на qt/с++, позволяющее создать pdf, дизайн которого Вы можете сконфигурировать сами, из выбранных Вами rss лент новостей.






Почему я выбрал pdf формат?
Все e-book ридеры без проблем дружат с этим форматом, кроме того, если у Вас нет ридера, то можно просто распечатать pdf файл, чтобы потом читать новости с бумаги, что тоже
довольно удобно. А в следующих версиях приложения я планирую добавить поддержку формата fb2. В поддержке других форматов смысла уже не вижу.

Основной принцип работы приложения.
После добавления rss в приложение, Вы можете удалить неинтересные Вам новости из списка «content», нажимая delete. Нажатие кнопки update приведет к обновлению выделенного потока
новостей или обновлении всех новостей, если выбранных нет. Далее при нажатии кнопки создания pdf каждая новость скачивается целиком, а потом при наличии настроек для сайта новости
происходит парсинг контента.

Немного подробнее о том, как парсится содержимое скачиваемой страницы.
В каталоге приложения есть каталог «page-templates». В нем уже есть два готовых properties файла для Fontanka.ru и Habrahabr.
  • Формат файла следующий:
  • rss.host — хост сайта, с которого скачивается содержимое новости.
  • content.pattern — шаблон для поиска непосредственного содержимого новости (шаблон по сути Perl-like регулярное выражение).
    Так у Хабра весь контент находится между тэгами <div class="content"> и </div>. С фонтанкой все немного сложнее,
    так как у нее используются несколько вложенных тэгов div, поэтому пришлось указать это в шаблоне.
  • clear.html — флаг принимающий значения true/false, указывающий очищать полученный контент от html тэгов.


  • news.html — отвечает за внешний вид содержимого файла целиком (так как для формирования pdf используется webkit, то можно использовать javascript для дополнительных действий с содержимым, например, уменьшать изображения).
  • channel.html — внешний вид новостей с одного rss канала.
  • item.html — внешний вид отдельной новости.


<!--ITEM_CONTENT--> и подобные тэги заменяются на содержимое, поэтому их удалять из шаблонов не стоит.


Пример файла pdf можно скачать отсюда.
Само приложение скачивается отсюда. Есть сборка для Windows и для Linux (для linux бинарники собирались с использованием qt 4.5, так что приложение должно работать на всех дистрибутивах без проблем).
К сожалению для Mac сборку сделать я не смогу, так как не представляю как протестировать приложение. Исходники открыты и распространяются под лицензией GPL.
Есть несколько багов, например, я не проверяю ссылку rss новости и результаты могут быть самые разные, также приложение неадекватно себя ведет при отсутствии или потере интернет подключения, что будет исправлено в следующих релизах.

Если Вам понравилось приложение, то от PayPal донейтов я не откажусь)
Теги:
Хабы:
Всего голосов 67: ↑64 и ↓3+61
Комментарии44

Публикации

Истории

Ближайшие события