Система оповещений

МойнМойн, начиная с версии 1.7, включает в себя новую систему оповещений. В дополнение к поддержке рассылки сообщений по почте стало возможным запустить отдельный процесс с XMPP-ботом для рассылки оповещений. См. http://www.jabber.org/ и http://www.xmpp.org/ Для дополнительной информации о данном протоколе.

Бот может использоваться для рассылки сообщений о различных событиях на вики или для интерактивной работы с вики.

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

Возможности системы оповещений

  • Оповещения рассылаются при различных действиях над страницами (изменение содержимого, переименование, удаление, копирование), создании пользователей (доступно только суперпользователю), добалении прикрепленных файлов и подписывании пользователей на изменения страниц.

  • Пользователи могут выбирать, о каких событиях их необходимо оповещать. Это справедливо как для почтовых, так и для xmpp-оповещений.
  • XMPP-бот интерактивен и позволяет производить простейшие операции на вики из XMPP-клиента (например, в ответ на оповещение о некоем событии). Список доступных операций включает в себя получение разметки и HTML-версии страницы, запрос детальной информации о странице (автор и дата последней правки, версия, ...), запрос списка страниц, выполнение поисковых запросов и откатов правок.
  • Бот использует расширения XEP-004 и XEP-066 в случае, если они поддерживаются клиентом, для предоставления дополнительных возможностей.

Параметры оповещений

Если параметр notification_bot_uri присутствует в конфигурации вики, то в пользовательских настройках доступны дополнительные опции.

Предварительно необходимо проверить наличие корректного JID в персональных настройках.

В списке пунктов можно выбрать события, о которых необходимо оповещать, а также присутствуют два флага для отметки о способах оповещения — по почте и/или по XMPP.

Известные проблемы

Необходима свежая версия pyxmpp, версия 1.0 не работает

Рекомендуется использовать недавнюю сборку или скачивать непосредственно из svn-репозитория командой

svn checkout http://pyxmpp.jajcus.net/svn/pyxmpp/trunk pyxmpp

После чего необходимо добавить директорию pyxmpp в PYTHONPATH или выполнить «полную установку» («full intallation»), как описано на сайте pyxmpp:

  • Для сборки необходимо вызвать
  • python setup.py build
  • Для установки:
  • python setup.py install

В случае наличия старой версии PyXMPP её рекомендуется удалить (путём удаления подкаталога pyxmpp из каталога site-packages файлов Python) перед установкой новой версии, в противном случае работоспособность не гарантируется. Кроме того, можно попробовать собрать PyXMPP следующим образом:

make && make install

Ограничения по трафику

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

Локализация

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

Начальная настройка и запуск XMPP-бота

Далее приведены пошаговые инструкции для начальной конфигурации и запуска XMPP-бота:

  1. Необходимо установить версию pyxmpp старше 1.0.

  2. XMPP-бот находится в директории jabberbot/ дистрибутива МойнМойн. Скопируйте его в подходящее место. Удостоверьтесь, что переменная окружения PYTHONPATH включает в себя каталог с кодом бота.

  3. Создайте учётную запись для бота, используя XMPP-клиент. На данный момент бот не может регистрировать учётную запись самостоятельно.
  4. Отредактируйте конфигурационный файл бота, находящийся в config.py, задав параметры конфигурационной записи и параметр secret, используемый для взаимодействия с вики.

  5. Отредактируйте конфигурацию вики, задав параметры notification_bot_uri и secrets (или secrets["jabberbot"]). Пример конфигурации можно найти в файле wiki/config/more_samples/jabber_wikiconfig_snippet дистрибутиве МойнМойн. Удостоверьтесь в совпадении значения параметра secret конфигурации бота и параметра secrets (secrets["jabberbot"]) конфигурации вики.

  6. (Пере)запустите экземпляр вики.
  7. Запустите бота: python main.py