Difference between revisions of "JabberBot"
From JaWiki (Jabber/XMPP wiki)
(новая библиотека :)) |
(No difference)
|
Revision as of 20:36, 17 August 2008
Описание
JabberBot -- маленькая библиотека на Python, оболочка для xmpppy, которая позволяет быстро и легко создавать маленьких ботов, выполняющих одну задачу, но делающих это хорошо. Томасу Перлу (Thomas Perl), автору этого проекта, идея пришла после изучения примера для библиотеки xmpppy. Он решил доделать код и оформить его в виде класса, упростив таким образом создание простых ботов.
Использование
- Импортируйте библиотеку: from jabberbot import JabberBot
- Наследуйте класс JabberBot в своем классе
- Добавьте методы начинающиеся с bot_, это будущие команды бота. (например, метод def bot_displayid( self, mess, args)); вызывается командой displayid и должен вернуть или строку, которая потом будет отправлена пользователю или None)
- Создайте экземпляр своего класса, передав JID и пароль в качестве параметров
- Вызовите метод serve_forever()
- С помощью метода send() вы можете отправлять сообщения отдельным пользователям.
Пример
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()
Пример работы: