## Please edit system and help pages ONLY in the master wiki!
## For more information, please see MoinMoin:MoinDev/Translation.
##master-page:HelpOnNotification
##master-date:2010-01-18T17:18:54Z
#acl -All:write Default
#format wiki
#language ru
<<TableOfContents>>

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

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

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

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

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

 * Оповещения рассылаются при различных действиях над страницами (изменение содержимого, переименование, удаление, копирование), создании пользователей (доступно только [[ПомощьПоСуперПользователю|суперпользователю]]), добалении прикрепленных файлов и подписывании пользователей на изменения страниц.
 * Пользователи могут выбирать, о каких событиях их необходимо оповещать. Это справедливо как для почтовых, так и для xmpp-оповещений.
 * XMPP-бот интерактивен и позволяет производить простейшие операции на вики из XMPP-клиента (например, в ответ на оповещение о некоем событии). Список доступных операций включает в себя получение разметки и HTML-версии страницы, запрос детальной информации о странице (автор и дата последней правки, версия, ...), запрос списка страниц, выполнение поисковых запросов и откатов правок.
 * Бот использует расширения [[http://xmpp.org/extensions/xep-0004.html|XEP-004]] и [[http://xmpp.org/extensions/xep-0066.html|XEP-066]] в случае, если они поддерживаются клиентом, для предоставления дополнительных возможностей.

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

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

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

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

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

=== Необходима версия pyxmpp 1.0.1 (версия 1.0.0 не работает) ===

Скачайте последний релиз (>= 1.0.1) с [[http://pyxmpp.jajcus.net/|pyxmpp homepage]] и распакуйте его.

После чего необходимо добавить директорию `pyxmpp` в `PYTHONPATH` или выполнить «полную установку» («full intallation»), как описано [[http://pyxmpp.jajcus.net/|на сайте pyxmpp]]:
 * Для сборки необходимо вызвать
 . {{{
python setup.py build
}}}
 * Для установки:
 . {{{
python setup.py install
}}}

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

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

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

=== Локализация ===

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

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

Далее приведены пошаговые инструкции для начальной конфигурации и запуска XMPP-бота:
 1. Необходимо установить версию [[http://pyxmpp.jajcus.net/|pyxmpp]] версии >= 1.0.1.
 1. XMPP-бот находится в директории `jabberbot/` дистрибутива МойнМойн. Скопируйте его в подходящее место. Удостоверьтесь, что переменная окружения `PYTHONPATH` включает в себя каталог с кодом бота.
 1. Создайте учётную запись для бота, используя XMPP-клиент. На данный момент бот не может регистрировать учётную запись самостоятельно.
 1. Отредактируйте конфигурационный файл бота, находящийся в  `config.py`, задав параметры конфигурационной записи и ''[[КакНастраивать|параметр]] `secret`, используемый для взаимодействия с вики''.
 1. Отредактируйте конфигурацию вики, задав параметры `notification_bot_uri` и `secrets` (или `secrets["jabberbot"]`). Пример конфигурации можно найти в файле {{{wiki/config/more_samples/jabber_wikiconfig_snippet}}} дистрибутиве МойнМойн. Удостоверьтесь в совпадении значения параметра `secret` конфигурации бота и параметра `secrets` (`secrets["jabberbot"]`) конфигурации вики.
 1. (Пере)запустите экземпляр вики.
 1. Запустите бота: {{{python main.py}}}
