RSS-транспорт: диалоги

Да, я таки реализовал управление через отправку сообщений RSS-транспорту. Отметил это версией 1.5. Слать сообщения можно любой ленте либо транспорту напрямую (если добавить его в ростер).

Поначалу сделал реакцию на команды только с админских JID’ов, раз уж они есть. Потом несколько команд вынес за пределы этой проверки – теперь владельцы лент могут редактировать описание, интервал обновления и теги. Итого на сейчас из команд:

  • updateall – обновить все ленты
  • update NAME – обновить ленту NAME
  • purgelast NAME – удалить последнюю запись для ленты NAME. Иначе говоря, при следующем обновлении считать, что данная новость непрочитана (и она будет доставлена всем пользователям повторно)
  • purgeall NAME – удалить все записи для ленты NAME.
  • + NAME URL INTERVAL DESCRIPTION [SETTAGS: TAG1,TAG2,TAG3] – добавить в базу ленту NAME с адресом URL, периодом обновления INTERVAL и описанием DESCRIPTION. При необходимости можно указать теги, следующие за ключевым словом “SETTAGS:”.
  • showall – вывести все зарегистрированные ленты (сообщение может быть большим, поэтому только для админа).

Эти команды доступны всем – но, само-собой, в привязке к JID’у. Т.е., нельзя, например, поменять теги на чужой ленте:

  • settags NAME TAG1,TAG2,TAG3… – установить теги для ленты NAME
  • setupd NAME 3600 – установить период обновления ленты NAME в 3600 секунд (нельзя поставить ниже 60 секунд)
  • setdesc NAME Description for feed – установить описание ленты NAME
  • showmyprivate – вывести свои приватные ленты
  • showmyfeeds – вывести ленты, зарегистрированные мной

Для обоих вариантов есть встроенная справка по команде help. Вывод тех команды, которые выводят список лент, сделаны в том же стиле, что и занесение лент в базу – т.е., можно напрямую вставить строку, которой поделился кто-то, в интерфейс своего транспорта и обменяться таким образом лентами.

Для удобства кода оформил отправку сообщения через отдельную функцию: теперь как отдача контента лент, так и реакция ботов на сообщения идет через нее. Опции минимизированы под текущий вариант – т.е., если захочется вернуть формат headline или передавать subject/url – придется немного расширить ее функции.

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