1234567891011121314151617181920212223242526272829303132333435363738 |
- import sys, xmpp
- #Основной класс бота
- class JabberBot:
- def __init__(self, jid, password):
- jid = xmpp.JID(jid)
- self.user, self.server, self.password = jid.getNode(), jid.getDomain(), password
- self.connect()
- self.auth()
- #Метод проверки подключения к серверу xmpp
- def connect(self):
- self.conn = xmpp.Client(self.server, debug = [])
- conn_result = self.conn.connect()
- if not conn_result:
- print("Can't connect to server!\n")
- sys.exit(1)
- #Метод аутентификации
- def auth(self):
- auth_result = self.conn.auth(self.user, self.password)
- if not auth_result:
- print("Can't to authorize!\n")
- sys.exit(1)
- #Метод для привязки функций к событиям
- def register_handler(self, name, handler):
- self.conn.RegisterHandler(name, handler)
- def step_on(self):
- try:
- self.conn.Process(1) #с какой частотой происходит подключение к серверу, в данном случае каждую секунду
- except KeyboardInterrupt: return 0
- return 1
- #сюда можно как параметры передавать переменную для значения Process в вызываемой функции, а также передавать информацию о том, какой из обработчиков ввызывать в бесконечном цикле
- def start(self):
- self.conn.sendInitPresence()#статус аккаунта бота (активен или нет)
- print("Bot started!")
- while self.step_on():
- #тут, по идее, надо размещать проверку элементов списка
- pass
|