Самая Простая Программа Для Чтения Rss



Преамбула Для отслеживания RSS удобно использовать так называемые программы-агрегаторы.

Также на данный момент набрали популярность онлайн-агрегаторы, такие как Google Reader. Но бывают случаи, когда их функционал избыточен, например, если вам нужно мониторить определенный канал в течение суток или нескольких дней и нет желания засорять свои агрегаторы временными ссылками.

Вот и мне понадобился такой инструмент. Инструмент должен был решать следующие задачи: - уведомлять об обновлениях - возможность быстрого перехода по ссылке - не хранить данные, сессии и т.п.

Вот что произошло в результате:

Самая простая программа для чтения RSS

О том, как это сделать, читайте ниже.



Консоль

Первое, что мне удалось найти, это rsstail. rsstail — консольная программа, позволяющая отслеживать обновления ленты в режиме реального времени.

Эта программа выполняет свои функции на все сто, но, как оказалось, переключаться на консоль и искать последние записи неудобно.



Графическое приложение

Далее последовала попытка подойти с другой стороны — найти простейшие графические ридеры.

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



Объединение графики и консоли

Попробуем прикрепить к rsstail какой-нибудь модуль графических уведомлений (трей).

Пытался: — notify-send (не подходит, т.к.

события мыши не обрабатываются) - gtrayicon (работает как триггер: включается/выключается, после запуска нельзя изменить всплывающую подсказку) — zenity (была попытка использовать ключ --notification, но этот режим пока не до конца реализован) На этом поиски закончились; задача получить простую фид-ридер оказалась не такой простой.



Давайте напишем сценарий!

Ну здесь у нас почти нет границ! Весь код я постарался закомментировать, чтобы не составило труда разобраться и переделать под себя.



Поместите значок сообщения в трее
   

#!/usr/bin/env ruby #scriptname: libs/rsstray.rb require 'gtk2' browser = 'libs/browser.sh' # signal is using for pushing commands to the main thread signal = Queue.new # Create tray icon si = Gtk::StatusIcon.new # Choose icon image si.icon_name = 'application-rss+xml' # Hide tray icon si.visible = false # Bind action mouse button si.signal_connect('activate') { signal.push('open') } # Bind menu mouse button si.signal_connect('popup-menu') { if signal.num_waiting != 0 then signal.push('') end } # Main thread that reads data from pipe Thread.start do

Теги: #linux #настройка Linux #ruby #ubuntu #rss #feeds #rsstail #tray
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.