Difference between revisions of "JabberBot"
From JaWiki (Jabber/XMPP wiki)
(новая библиотека :)) |
m (Reverted edits by 199.119.142.171 (talk) to last revision by Cblp.su) |
||
| (5 intermediate revisions by 5 users not shown) | |||
| Line 1: | Line 1: | ||
| − | + | {{Library | |
| − | + | | name=JabberBot | |
| + | | url=http://thpinfo.com/2007/python-jabberbot/ | ||
| + | | author=Thomas Perl | ||
| + | | language={{Lang|l|Python}} | ||
| + | | license=GNU GPLv3 | ||
| + | | roster=да | ||
| + | }} | ||
| + | '''JabberBot''' — маленькая [[библиотека]] на [[Python]], оболочка для [[xmpppy]], которая позволяет быстро и легко создавать маленьких ботов, выполняющих одну задачу, но делающих это хорошо. Томасу Перлу (Thomas Perl), автору этого проекта, идея пришла после изучения примера для библиотеки xmpppy. Он решил доделать код и оформить его в виде класса, упростив таким образом создание простых ботов. | ||
== Использование == | == Использование == | ||
| + | Краткая инструкция: | ||
# Импортируйте библиотеку: from jabberbot import JabberBot | # Импортируйте библиотеку: from jabberbot import JabberBot | ||
# Наследуйте класс JabberBot в своем классе | # Наследуйте класс JabberBot в своем классе | ||
| − | # Добавьте методы начинающиеся с bot_, это будущие команды бота. | + | # Добавьте методы начинающиеся с bot_, это будущие команды бота. |
| − | # Создайте экземпляр своего класса, передав JID и пароль в качестве параметров | + | #: Например, метод bot_displayid(self, mess, args) вызывается командой displayid и должен вернуть или строку, которая потом будет отправлена пользователю, или None. |
| − | # Вызовите метод serve_forever() | + | # Создайте экземпляр своего класса, передав [[JID]] и пароль в качестве параметров. |
| + | # Вызовите метод serve_forever(). | ||
# С помощью метода send() вы можете отправлять сообщения отдельным пользователям. | # С помощью метода send() вы можете отправлять сообщения отдельным пользователям. | ||
| − | ==Пример== | + | == Пример == |
| − | + | ||
from jabberbot import JabberBot | from jabberbot import JabberBot | ||
| Line 47: | Line 55: | ||
http://thpinfo.com/2007/python-jabberbot/jabberbot-screenshot.png | http://thpinfo.com/2007/python-jabberbot/jabberbot-screenshot.png | ||
| − | ==Зависимости == | + | == Зависимости == |
| + | |||
* [[xmpppy]] | * [[xmpppy]] | ||
==Ссылки== | ==Ссылки== | ||
| + | |||
* [http://thpinfo.com/2007/python-jabberbot/ Сайт] | * [http://thpinfo.com/2007/python-jabberbot/ Сайт] | ||
| − | |||
Latest revision as of 22:01, 20 December 2016
| JabberBot | |
|---|---|
| Информация | |
| Адрес: | http://thpinfo.com/2007/python-jabberbot/ |
| Автор: | Thomas Perl |
| Язык: | Python |
| Лицензия: | GNU GPLv3 |
| Реализация стандартов | |
| Ростер: | да |
| Использование | |
| Программы, использующие JabberBot | |
JabberBot — маленькая библиотека на Python, оболочка для xmpppy, которая позволяет быстро и легко создавать маленьких ботов, выполняющих одну задачу, но делающих это хорошо. Томасу Перлу (Thomas Perl), автору этого проекта, идея пришла после изучения примера для библиотеки xmpppy. Он решил доделать код и оформить его в виде класса, упростив таким образом создание простых ботов.
Contents
Использование[edit]
Краткая инструкция:
- Импортируйте библиотеку: from jabberbot import JabberBot
- Наследуйте класс JabberBot в своем классе
- Добавьте методы начинающиеся с bot_, это будущие команды бота.
- Например, метод bot_displayid(self, mess, args) вызывается командой displayid и должен вернуть или строку, которая потом будет отправлена пользователю, или None.
- Создайте экземпляр своего класса, передав JID и пароль в качестве параметров.
- Вызовите метод serve_forever().
- С помощью метода send() вы можете отправлять сообщения отдельным пользователям.
Пример[edit]
from jabberbot import JabberBot
import datetime
class SystemInfoJabberBot(JabberBot):
def bot_serverinfo( self, mess, args):
"""Displays information about the server"""
version = open('/proc/version').read().strip()
loadavg = open('/proc/loadavg').read().strip()
return '%s\n\n%s' % ( version, loadavg, )
def bot_time( self, mess, args):
"""Displays current server time"""
return str(datetime.datetime.now())
def bot_rot13( self, mess, args):
"""Returns passed arguments rot13'ed"""
return args.encode('rot13')
def bot_whoami( self, mess, args):
"""Tells you your username"""
return mess.getFrom()
username = 'my-jabberid@jabberserver.example.org'
password = 'my-password'
bot = SystemInfoJabberBot(username,password)
bot.serve_forever()
Пример работы: