RSS-транспорт: фильтры

С давних времен у меня висит в ростере оригинальный инстанс JabRSS, ну и с тех же времен висит там подписка на kernel.org. Постит мне новости о новых релизах и багфиксах, красота.

Но всегда раздражали посты про linux-next – какой-то внутренний снапшот, который интересен, наверное, только разработчикам. Зацепился я в итоге за эту тему и сделал у себя в RSS-транспорте фильтры (v 1.6).

В базе теперь есть 2 поля для регулярок – “положительных” и “отрицательных”, “белый” и “черный” списки, include/exclude – в общем, как удобно. Если регулярка задана в белом списке – получаем только то, что ее прошло. Ну и, соответственно, если задана в черном – то не получаем то, что ей соответствует.

Добавлено несколько команд для работы с этим:

  • showfilter ИМЯ – показать текущие фильтры для заданной ленты
  • setposfilter ИМЯ ФИЛЬТР – задать (или очистить, если ФИЛЬТР пустой) регулярку для белого списка
  • setnegfilter ИМЯ ФИЛЬТР – аналогично для черного списка

Т.е., исходная проблема теперь решается в одну команду: setnegfilter kernel linux-next. Все, теперь все сообщения от ленты kernel, где в теме есть “linux-next”, не будут показываться пользователю. А можно пойти другим путем и добавить в белый список слово stable, тогда в выводе будет информация только о релизах (без LTS) – в таком случае можно обойтись без черного списка.

И еще одно нововведение (v 1.7) – снова вокруг пользовательских настроек и таблицы subscribers. Авторы некоторых сайтов, возможно, как-то альтернативно понимают термин Short в одной из расшифровок RSS и отдают полное тело статьи в сообщении. Нет, иногда удобно – в Liferea я могу прочитать все, не заходя на сайт. Но простыня в несколько тысяч символов в Jabber-клиенте выглядит не сильно красиво. Грамотный вариант – иметь на сайте несколько лент, под полную и короткую версию – как это иногда делают для групп новостей или языков. Но таких вариантов мне как-то не попадалось.

В итоге добавил возможность усечения сообщения с помощью команды setshort ИМЯ ЧИСЛО – так каждый для себя может сам определить удобный размер сообщения для каждой конкретной ленты. По-умолчанию отдается все сообщение – либо же можно его лимитировать указанным числом – например, на уровне 300-500 символов.

Добавить комментарий