Difference between revisions of "Neutron"
| Line 7: | Line 7: | ||
== Разделение прав == | == Разделение прав == | ||
В боте принят следующий метод разделения прав. Каждая команда имеет свой минимальный уровень доступа для запуска команды. Это число от 0 до 100. JID владельца получает уровень доступа 100, неизвестные JID-ы получают уровень доступа 0. Владелец может выставить любой уровень доступа для JID-а с помощью команды !set_access, он запоминтся и будет сохранятся через перезапуски. | В боте принят следующий метод разделения прав. Каждая команда имеет свой минимальный уровень доступа для запуска команды. Это число от 0 до 100. JID владельца получает уровень доступа 100, неизвестные JID-ы получают уровень доступа 0. Владелец может выставить любой уровень доступа для JID-а с помощью команды !set_access, он запоминтся и будет сохранятся через перезапуски. | ||
| + | |||
| + | Минимальный уровень доступа команд меняется через редактирование кода плагинов | ||
Команда !commands использует установленный уровень доступа для JID-а и не показывает команды, которые пользователь не сможет запустить. | Команда !commands использует установленный уровень доступа для JID-а и не показывает команды, которые пользователь не сможет запустить. | ||
| + | |||
| + | |||
== Плагины == | == Плагины == | ||
| + | Распологаются в каталоге plugins. Каждый файл, это отдельный плагин. Чтобы запретить подгрузку какого-нибудь плагина, нужно изменить в нем первую строчку, она является индикатором, что его можно подгружать. | ||
=== Официальные === | === Официальные === | ||
| + | Плагины access_plugin.py, admin.py, help_plugin.py обеспечивают минимальную функциональность (права, администрирование, справка). Без плагина presence_plugin.py не будет работать подписка. Остальные плагины можно удалять по необходимости. | ||
| + | |||
{| class="standard" | {| class="standard" | ||
| − | ! Имя файла || Использует | + | ! Имя файла || Использует Интернет || Описание |
|- | |- | ||
| − | | access_plugin.py || нет || Системный плагин. Управляет уровнем доступа пользователей | + | | access_plugin.py || нет || Системный плагин. Управляет уровнем доступа пользователей. |
|- | |- | ||
| + | | admin_plugin.py || нет || Функции администратора бота. | ||
| + | |- | ||
| + | | babel_plugin.py || да || Переводчик между языками. Использует внешние ресурсы для перевода. | ||
| + | |- | ||
| + | | chat_plugin.py || нет || Простой чат. По-умолчанию выключен. | ||
| + | |- | ||
| + | | dict_plugin.py || да || Дает определение слову используя www.dict.org | ||
|} | |} | ||
| + | |||
== Команды == | == Команды == | ||
| + | Каждая команда зависит от своего плагина, удаление плагина соответственно удаляет команду. Чтобы удалить избранную команду, не удаляя плагин целиком, откройте файл с плагином, найдите в конце строчку, которая её регистрирует в боте и закомментируйте её или повысьте минимальный уровень доступа до 100. | ||
| + | |||
{| class="standard" | {| class="standard" | ||
! Команда || Уровень доступа || Плагин || Описание | ! Команда || Уровень доступа || Плагин || Описание | ||
| Line 32: | Line 49: | ||
| !set_access <jid> <level> || 100 || access_plugin.py || Установить уровень доступа для указанного JID-а | | !set_access <jid> <level> || 100 || access_plugin.py || Установить уровень доступа для указанного JID-а | ||
|- | |- | ||
| + | | !join <groupchat> [nick] || 100 || admin_plugin.py.py || Войти в конференцию | ||
| + | |- | ||
| + | | !leave [groupchat] || 100 || admin_plugin.py.py || Покинуть конференцию | ||
| + | |- | ||
| + | | !msg <jid> <message> || 100 || admin_plugin.py.py || Послать сообщение на указанный JID | ||
| + | |- | ||
| + | | !say <message> || 100 || admin_plugin.py.py || Послать сообщение в текущий чат/конференцию | ||
| + | |- | ||
| + | | !restart || 100 || admin_plugin.py.py || Перезапуск | ||
| + | |- | ||
| + | | !exit || 100 || admin_plugin.py.py || Выход | ||
| + | |- | ||
| + | | !babel <from> <to> <phrase> || 0 || babel_plugin.py.py || Перевод используя Altavist BabelFish | ||
| + | |- | ||
| + | | !translate <from> <to> <phrase> || 0 || babel_plugin.py.py || Перевод используя Translate.ru | ||
| + | |- | ||
| + | | !esperanto <phrase> || 0 || babel_plugin.py.py || Перевод фразы с эсперанто на английский используя lingvo.org | ||
| + | |- | ||
| + | | !babelize <from> <trought> <phrase> || 0 || babel_plugin.py.py || Перевод фразы туда обратно. | ||
| + | |- | ||
| + | | !define <word> || 0 || dict_plugin.py || Дает определение слову используя www.dict.org | ||
|} | |} | ||
Revision as of 22:05, 24 March 2007
- Веб-сайт: http://ejabberd.jabber.ru/neutron
- Язык программирования: Python
- Jabber-библиотека: xmpppy
Хороший бот на Python, умеющий опросы, rss-фиды, и много интересных вещей. Бот очень удобен для быстрого создания других ботов с нужной функциональностью. Можно достаточно легко расширить возможности плагинами.
Разделение прав
В боте принят следующий метод разделения прав. Каждая команда имеет свой минимальный уровень доступа для запуска команды. Это число от 0 до 100. JID владельца получает уровень доступа 100, неизвестные JID-ы получают уровень доступа 0. Владелец может выставить любой уровень доступа для JID-а с помощью команды !set_access, он запоминтся и будет сохранятся через перезапуски.
Минимальный уровень доступа команд меняется через редактирование кода плагинов
Команда !commands использует установленный уровень доступа для JID-а и не показывает команды, которые пользователь не сможет запустить.
Плагины
Распологаются в каталоге plugins. Каждый файл, это отдельный плагин. Чтобы запретить подгрузку какого-нибудь плагина, нужно изменить в нем первую строчку, она является индикатором, что его можно подгружать.
Официальные
Плагины access_plugin.py, admin.py, help_plugin.py обеспечивают минимальную функциональность (права, администрирование, справка). Без плагина presence_plugin.py не будет работать подписка. Остальные плагины можно удалять по необходимости.
| Имя файла | Использует Интернет | Описание |
|---|---|---|
| access_plugin.py | нет | Системный плагин. Управляет уровнем доступа пользователей. |
| admin_plugin.py | нет | Функции администратора бота. |
| babel_plugin.py | да | Переводчик между языками. Использует внешние ресурсы для перевода. |
| chat_plugin.py | нет | Простой чат. По-умолчанию выключен. |
| dict_plugin.py | да | Дает определение слову используя www.dict.org |
Команды
Каждая команда зависит от своего плагина, удаление плагина соответственно удаляет команду. Чтобы удалить избранную команду, не удаляя плагин целиком, откройте файл с плагином, найдите в конце строчку, которая её регистрирует в боте и закомментируйте её или повысьте минимальный уровень доступа до 100.
| Команда | Уровень доступа | Плагин | Описание |
|---|---|---|---|
| !login <password> | 0 | access_plugin.py | Войти с паролем администратора (уровень доступа станет = 100) |
| !logout | 0 | access_plugin.py | Выйти (уровень доступа = 0) |
| !view_access | 0 | access_plugin.py | Посмотреть свой уровень доступа |
| !set_access <jid> <level> | 100 | access_plugin.py | Установить уровень доступа для указанного JID-а |
| !join <groupchat> [nick] | 100 | admin_plugin.py.py | Войти в конференцию |
| !leave [groupchat] | 100 | admin_plugin.py.py | Покинуть конференцию |
| !msg <jid> <message> | 100 | admin_plugin.py.py | Послать сообщение на указанный JID |
| !say <message> | 100 | admin_plugin.py.py | Послать сообщение в текущий чат/конференцию |
| !restart | 100 | admin_plugin.py.py | Перезапуск |
| !exit | 100 | admin_plugin.py.py | Выход |
| !babel <from> <to> <phrase> | 0 | babel_plugin.py.py | Перевод используя Altavist BabelFish |
| !translate <from> <to> <phrase> | 0 | babel_plugin.py.py | Перевод используя Translate.ru |
| !esperanto <phrase> | 0 | babel_plugin.py.py | Перевод фразы с эсперанто на английский используя lingvo.org |
| !babelize <from> <trought> <phrase> | 0 | babel_plugin.py.py | Перевод фразы туда обратно. |
| !define <word> | 0 | dict_plugin.py | Дает определение слову используя www.dict.org |
Зависимости
Ответвления
На основе этого бота было сделано:
- FtpSpider — бот, который сообщает об изменениях на FTP сервере.