Пишем наш собствен Jabber бот в Python
Подготовка
Е, като за начало ще ви трябва:
- Интерпретаторът на Python може да бъде изтеглен от официалния уебсайт
- xmpppy е библиотека за работа с протокола Jabber, на. уебсайт
sudo apt-get инсталирайте python-xmpppy
Клас Jabber_bot.py
Когато всички подготовки са завършени, можете да продължите директно към кодирането.
импортиране на sys, xmpp
клас JabberBot: #създайте наш бот клас def __init__(self, jid, password): j > self.user, self.server, self.password = jid.getNode(), jid.getDomain(), парола self.connect() self.auth()
def connect(self): #функция за свързване със сървъра self.conn = xmpp.Client(self.server, debug = []) conn_result = self.conn.connect() ако не conn_result: print "Не може да се свърже със сървъра!\n" sys.exit(1)
def auth(self): #authentication auth_result = self.conn.auth(self.user, self.password) ако не е auth_result: print "Can't to authorize!\n" sys.exit(1)
def register_handler(self, име, манипулатор): #обвързващи функции към събития self.conn.RegisterHandler(име, манипулатор)
def step_on(self): опитайте: self.conn.Process(1) освен KeyboardInterrupt: return 0 return 1
def start(self): self.conn.sendInitPresence() print "Бот стартира!" докато self.step_on(): пас
Можем да кажем, че рамката на бота е готова. Дори и тук нещо да не е ясно, няма проблем. Основната функционалност ще бъде представена в друг файл. Там ще бъдат посочени основните параметри: вход, парола, сървър и др.
Основен файл bot.py
mport xmpp от jabber_bot импортиране на JabberBot
дефmessage_handler(conn, mess): #извикване на входящо съобщение, text = mess.getBody() #вземете текста на съобщението, sender user = mess.getFrom() #и го изпратете обратно reply = text conn.send(xmpp.Message(mess.getFrom(), reply))
bot = JabberBot(config['jid'], config['pass']) bot.register_handler('message', message_handler) bot.start()
Изводи
Е, това е всичко, което исках да кажа за днес. Създадохме клас, който можете да използвате, за да създавате свои собствени ботове, и го направихме прост. Може да се добави функционалност, например обработка на команди или изпращане на регистрационни файлове от сървъра.
И тук можете да получите грант за тестов период на Yandex.Cloud. Необходимо е само да въведете "Habr" в полето "секретна парола".
Написа добър текст - получи покана.
Предварителната модерация работи в Sandbox: преди публикуване всички материали преминават през грижовните лъчи на НЛО.
С голяма вероятност те няма да преминат предварителна модерация: