Difference between revisions of "Neutron"

From JaWiki (Jabber/XMPP wiki)
Jump to: navigation, search
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 23:05, 24 March 2007


Хороший бот на 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

Зависимости

ToDo: доделать

Ответвления

На основе этого бота было сделано:

  • FtpSpider — бот, который сообщает об изменениях на FTP сервере.