Пишем наш собствен Jabber бот в Python

Подготовка

Е, като за начало ще ви трябва:

  • Интерпретаторът на Python може да бъде изтеглен от официалния уебсайт
  • xmpppy е библиотека за работа с протокола Jabber, на. уебсайт
Освен това в повечето Linux дистрибуции интерпретаторът на Python вече е инсталиран, просто трябва да изтеглите библиотеката. Можете да направите това с командата:

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: преди публикуване всички материали преминават през грижовните лъчи на НЛО.

С голяма вероятност те няма да преминат предварителна модерация: