Latest revision |
Your text |
Line 1: |
Line 1: |
− | {{Bot
| + | * Веб-сайт: http://ejabberd.jabber.ru/neutron |
− | | name = Neutron <!-- название -->
| + | * Язык программирования: [[Python]] |
− | | logo = <!-- логотип -->
| + | * Jabber-библиотека: [[xmpppy]] |
− | <!-- Общая информация -->
| + | ---- |
− | | url = [http://ejabberd.jabber.ru/neutron ejabberd.jabber.ru/neutron] <!-- адрес -->
| + | Хороший бот на Python, умеющий опросы, rss-фиды, и много интересных вещей. Бот очень удобен для быстрого создания других ботов с нужной функциональностью. Можно достаточно легко расширить возможности плагинами. |
− | | 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-а с помощью команды !set_access, он запоминтся и будет сохранятся через перезапуски. |
| | | |
− | Минимальный уровень доступа команд меняется через редактирование кода плагинов.
| + | Команда !commands использует установленный уровень доступа для JID-а и не показывает команды, которые пользователь не сможет запустить. |
− | | + | |
− | Команда <tt>!commands</tt> использует установленный уровень доступа для JID-а и не показывает команды, которые пользователь не сможет запустить. | + | |
| | | |
| == Плагины == | | == Плагины == |
− | Располaгаются в каталоге <tt>plugins</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/>Интернет || Описание | + | ! Имя файла || Использует интернет || Описание |
| |- | | |- |
− | | access_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-серверов по протоколу определенному в [http://www.xmpp.org/extensions/xep-0039.html XEP-0039]
| |
− | |-
| |
− | | stock_plugin.py || да || Информация об акциях с finance.yahoo.com
| |
− | |-
| |
− | | temperature_plugin.py || нет || Конвертирует температуру между шкалой Цельсия и шкалой Фаренгейта
| |
− | |-
| |
− | | time_plugin.py || нет || Возвращает текущее время на компьютере, на котором запущен бот
| |
− | |-
| |
− | | userinfo_plugin.py || нет || Возвращает [[vCard]] пользователя и ответы на различные [[iq|iq-запросы]]
| |
− | |-
| |
− | | vote_plugin.py || нет || Голосование
| |
− | |-
| |
− | | weather_plugin.py || да || Погода
| |
| |} | | |} |
| | | |
| == Команды == | | == Команды == |
− | Каждая команда зависит от своего плагина, удаление плагина соответственно удаляет команду. Чтобы удалить избранную команду, не удаляя плагин целиком, откройте файл с плагином, найдите в конце строчку, которая её регистрирует в боте и закомментируйте её или повысьте минимальный уровень доступа до 100.
| |
− |
| |
| {| class="standard" | | {| class="standard" |
| ! Команда || Уровень доступа || Плагин || Описание | | ! Команда || Уровень доступа || Плагин || Описание |
Line 97: |
Line 32: |
| | !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 || Перевод используя 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 <code> || 0 || fact_plugin.py || Дает расшифровку коду химического элемента
| |
− | |-
| |
− | | !tld <location/TLD> || 0 || fact_plugin.py ||Возвращает код страны или страну соответствующую коду
| |
| |} | | |} |
− | {{todo|список сделан не до конца}}
| + | |
| == Зависимости == | | == Зависимости == |
− | * Интерпретатор языка [[Python]] | + | * [[ru:Python]] |
− | * Библиотека [[xmpppy]] | + | * [[xmpppy]] |
| + | {{todo|доделать}} |
| | | |
| == Ответвления == | | == Ответвления == |
| На основе этого бота было сделано: | | На основе этого бота было сделано: |
| * [[FtpSpider]] — бот, который сообщает об изменениях на FTP сервере. | | * [[FtpSpider]] — бот, который сообщает об изменениях на FTP сервере. |
| + | |
| + | [[Category:Bot]] |