Difference between revisions of "Neutron"
m (bugfixes) |
(→Официальные: опечатки) |
||
| (9 intermediate revisions by 7 users not shown) | |||
| Line 1: | Line 1: | ||
{{Bot | {{Bot | ||
| − | | | + | | name = Neutron <!-- название --> |
| − | | url=http://ejabberd.jabber.ru/neutron | + | | logo = <!-- логотип --> |
| − | | | + | <!-- Общая информация --> |
| − | | | + | | url = [http://ejabberd.jabber.ru/neutron ejabberd.jabber.ru/neutron] <!-- адрес --> |
| − | | | + | | language = {{Lang|b|Python}} <!-- язык --> |
| − | | | + | | library = {{Lib|xmpppy}} <!-- jabber-библиотека --> |
| − | | | + | | license = {{GPL}} <!-- лицензия --> |
| − | | | + | | developer = [http://mikemintz.com/ Майк Минтц (Mike Mintz)] <!-- разработчик --> |
| − | | | + | <!-- Характеристики --> |
| + | | i18n = нет <!-- мультиязычность --> | ||
| + | | disco = нет <!-- информация в диско --> | ||
| + | | adhoc = нет <!-- Ad-Hoc команды --> | ||
| + | | plugins = да <!-- расширяется ли он плагинами --> | ||
}} | }} | ||
| − | + | '''Neutron''' - бот на [[Python]], умеющий проводить опросы, показывать [[RSS]]-фиды, а также ряд других действий. Удобен для быстрого создания других ботов с нужной функциональностью. Функциональность может быть легко расширена плагинами. | |
| − | + | ||
== Разделение прав == | == Разделение прав == | ||
| − | В управлении ботом принят следующий метод разделения прав. Каждая команда имеет свой минимальный уровень доступа для запуска команды. Это число от 0 до 100. [[JID]] владельца получает уровень доступа 100, неизвестные JID-ы получают уровень доступа 0. Владелец может выставить любой уровень доступа для JID-а с помощью команды <tt>!set_access</tt>, он | + | В управлении ботом принят следующий метод разделения прав. Каждая команда имеет свой минимальный уровень доступа для запуска команды. Это число от 0 до 100. [[JID]] владельца получает уровень доступа 100, неизвестные JID-ы получают уровень доступа 0. Владелец может выставить любой уровень доступа для JID-а с помощью команды <tt>!set_access</tt>, он запоминается и будет сохраняться после перезапуска бота. |
Минимальный уровень доступа команд меняется через редактирование кода плагинов. | Минимальный уровень доступа команд меняется через редактирование кода плагинов. | ||
| Line 21: | Line 24: | ||
== Плагины == | == Плагины == | ||
| − | + | Располaгаются в каталоге <tt>plugins</tt>. Каждый файл — это отдельный плагин. Чтобы запретить подгрузку какого-нибудь плагина, нужно изменить в нём первую строчку, она является индикатором, что его можно подгружать. | |
=== Официальные === | === Официальные === | ||
Плагины <tt>access_plugin.py</tt>, <tt>admin.py</tt>, <tt>help_plugin.py</tt> обеспечивают минимальную функциональность (права, администрирование, справка). Без плагина <tt>presence_plugin.py</tt> не будет работать подписка. Остальные плагины можно удалять по необходимости. | Плагины <tt>access_plugin.py</tt>, <tt>admin.py</tt>, <tt>help_plugin.py</tt> обеспечивают минимальную функциональность (права, администрирование, справка). Без плагина <tt>presence_plugin.py</tt> не будет работать подписка. Остальные плагины можно удалять по необходимости. | ||
| − | {| class="standard | + | {| class="standard" |
! Имя файла || Использует<br/>Интернет || Описание | ! Имя файла || Использует<br/>Интернет || Описание | ||
|- | |- | ||
| Line 35: | Line 38: | ||
| babel_plugin.py || да || Переводчик между языками. Использует внешние ресурсы для перевода. | | babel_plugin.py || да || Переводчик между языками. Использует внешние ресурсы для перевода. | ||
|- | |- | ||
| − | | chat_plugin.py || нет || Простой чат с пользователем, если он обращается к боту но не передает команду. По | + | | chat_plugin.py || нет || Простой чат с пользователем, если он обращается к боту, но не передает команду. По умолчанию выключен. |
|- | |- | ||
| dict_plugin.py || да || Дает определение слову используя www.dict.org | | dict_plugin.py || да || Дает определение слову используя www.dict.org | ||
| Line 49: | Line 52: | ||
| freshmeat_plugin.py || да || Информация о программе на freshmeat.net | | freshmeat_plugin.py || да || Информация о программе на freshmeat.net | ||
|- | |- | ||
| − | | google_plugin.py || да || Поиск слова, [[ | + | | google_plugin.py || да || Поиск слова, [[XEP]]-а и проверка орфографии через google.com |
|- | |- | ||
| help_plugin.py || нет || Справка по командам | | help_plugin.py || нет || Справка по командам | ||
| Line 83: | Line 86: | ||
Каждая команда зависит от своего плагина, удаление плагина соответственно удаляет команду. Чтобы удалить избранную команду, не удаляя плагин целиком, откройте файл с плагином, найдите в конце строчку, которая её регистрирует в боте и закомментируйте её или повысьте минимальный уровень доступа до 100. | Каждая команда зависит от своего плагина, удаление плагина соответственно удаляет команду. Чтобы удалить избранную команду, не удаляя плагин целиком, откройте файл с плагином, найдите в конце строчку, которая её регистрирует в боте и закомментируйте её или повысьте минимальный уровень доступа до 100. | ||
| − | {| class="standard | + | {| class="standard" |
! Команда || Уровень доступа || Плагин || Описание | ! Команда || Уровень доступа || Плагин || Описание | ||
|- | |- | ||
| Line 124: | Line 127: | ||
| !tld <location/TLD> || 0 || fact_plugin.py ||Возвращает код страны или страну соответствующую коду | | !tld <location/TLD> || 0 || fact_plugin.py ||Возвращает код страны или страну соответствующую коду | ||
|} | |} | ||
| − | + | {{todo|список сделан не до конца}} | |
== Зависимости == | == Зависимости == | ||
* Интерпретатор языка [[Python]] | * Интерпретатор языка [[Python]] | ||
| Line 132: | Line 135: | ||
На основе этого бота было сделано: | На основе этого бота было сделано: | ||
* [[FtpSpider]] — бот, который сообщает об изменениях на FTP сервере. | * [[FtpSpider]] — бот, который сообщает об изменениях на FTP сервере. | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
Latest revision as of 20:45, 20 February 2012
| Neutron | |
|---|---|
| Информация | |
| Сайт: | ejabberd.jabber.ru/neutron |
| Язык: | Python |
| Библиотека: | xmpppy |
| Лицензия: | GPL |
| Разработчик: | Майк Минтц (Mike Mintz) |
| Характеристики | |
| Мультиязычность: | нет |
| Расширяемость: | да |
| Discovery: | нет |
| Ad-hoc команды: | нет |
Neutron - бот на Python, умеющий проводить опросы, показывать RSS-фиды, а также ряд других действий. Удобен для быстрого создания других ботов с нужной функциональностью. Функциональность может быть легко расширена плагинами.
Разделение прав[edit]
В управлении ботом принят следующий метод разделения прав. Каждая команда имеет свой минимальный уровень доступа для запуска команды. Это число от 0 до 100. JID владельца получает уровень доступа 100, неизвестные JID-ы получают уровень доступа 0. Владелец может выставить любой уровень доступа для JID-а с помощью команды !set_access, он запоминается и будет сохраняться после перезапуска бота.
Минимальный уровень доступа команд меняется через редактирование кода плагинов.
Команда !commands использует установленный уровень доступа для JID-а и не показывает команды, которые пользователь не сможет запустить.
Плагины[edit]
Располaгаются в каталоге plugins. Каждый файл — это отдельный плагин. Чтобы запретить подгрузку какого-нибудь плагина, нужно изменить в нём первую строчку, она является индикатором, что его можно подгружать.
Официальные[edit]
Плагины 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 |
| dns_plugin.py | да | Запрос в DNS |
| domain_plugin.py | да | Запрос в базу данных WHOIS |
| eliza_plugin.py | нет | Чат-бот Элиза |
| fact_plugin.py | нет | Расшифровка кода страны и кода химического элемента |
| freshmeat_plugin.py | да | Информация о программе на freshmeat.net |
| google_plugin.py | да | Поиск слова, XEP-а и проверка орфографии через google.com |
| help_plugin.py | нет | Справка по командам |
| log_plugin.py | нет | Записывает все сообщения в лог файлы в формате HTML |
| presence_plugin.py | нет | Отвечает на запросы подписки и отправляет свои |
| python_plugin.py | нет | Выполнение Python и Shell команд |
| query_plugin.py | нет | Запросы и заполнение локальной базы определений |
| quote_plugin.py | да | Возвращает случайную цитату или фортунку |
| rss_plugin.py | да | Работа с RSS-фидами |
| sg_plugin.py | нет | Собирает статистику с Jabber-серверов по протоколу определенному в XEP-0039 |
| stock_plugin.py | да | Информация об акциях с finance.yahoo.com |
| temperature_plugin.py | нет | Конвертирует температуру между шкалой Цельсия и шкалой Фаренгейта |
| time_plugin.py | нет | Возвращает текущее время на компьютере, на котором запущен бот |
| userinfo_plugin.py | нет | Возвращает vCard пользователя и ответы на различные iq-запросы |
| vote_plugin.py | нет | Голосование |
| weather_plugin.py | да | Погода |
Команды[edit]
Каждая команда зависит от своего плагина, удаление плагина соответственно удаляет команду. Чтобы удалить избранную команду, не удаляя плагин целиком, откройте файл с плагином, найдите в конце строчку, которая её регистрирует в боте и закомментируйте её или повысьте минимальный уровень доступа до 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 | Перевод используя Altavista 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 |
| !dns <host/IP> | 0 | dns_plugin.py | Отправляет запрос на DNS-сервер и возвращает результат. |
| !domain <domain> | 0 | domain_plugin.py | Отправляет запрос в базу данных WHOIS и возвращает результат. |
!element |
0 | fact_plugin.py | Дает расшифровку коду химического элемента |
| !tld <location/TLD> | 0 | fact_plugin.py | Возвращает код страны или страну соответствующую коду |
Зависимости[edit]
Ответвления[edit]
На основе этого бота было сделано:
- FtpSpider — бот, который сообщает об изменениях на FTP сервере.