import xmpp from xmpp import cli import config from BotClass import JabberBot import json #раскомментировать, когда перейдем на разные пароли import hashlib from datetime import datetime #В этом файле содержится только то, что запускает конкретный обработчик # botname="open-st_request-assigned" botname="bottickets" JID=botname+"@"+config.JSERVER PASSWORD=config.PASSWORD #раскомментировать, когда перейдем на разные пароли #PASSWORD=hashlib.md5((botname+config.PASSWORD).encode('utf-8')).hexdigest() #таким образом хранится список jid, от которых можно получать сообщения этому боту listen_to=["test@msg.sharix-app.org", "test1@msg.sharix-app.org"] #тут хранится список jid, кому бот может отправлять сообщения в результате обработки заявки process_to=["test@msg.sharix-app.org", "test1@msg.sharix-app.org"] # обработчик входящих сообщений def message_handler(conn, mess): text = mess.getBody()#текст сообщения боту user = mess.getFrom()#отправитель сообщения #нужна проверка, данный обработчик вообще должен от данного отправителя получать сообщения или нет. Подсказка ниже if user in listen_to: print(text) print(mess) if text is not None: message = xmpp.Message() tasklist.append(message) bot.bot_log(" ".join(str(datetime.now()), str(i), "Заказ успешно добавлен в очередь обработки")) def open_st_request_assigned(tasklist): print("Тут описывается работа со списком задач в данном статусе") for i in range(len(tasklist)): #проверяем элемент tasklist[i] bot.bot_log(botname + " " + datetime.now().strftime('%Y-%m-%d') + " " + str(i) + " " + "Заказ в очереди на обработке") if tasklist[i]: proceed_status("test@msg.sharix-app.org"+" "+tasklist[i]) del tasklist[i] bot.bot_log(botname+" "+str(datetime.now())+" "+str(i)+" "+"Заказ успешно обработан и удален из очереди") else: bot.bot_log(botname+" "+str(datetime.now())+" "+str(i)+" "+"Заказ оставлен в очереди") #Авторизация и запуск бота #пустой список заказов tasklist = [] bot = JabberBot(JID, PASSWORD) #загружаем список заказов для обработки из базы (по идее, сюда попадаем в случае первого запуска или перезапуска) bot.fake_api_call("Получаем список заказов по названию бота-обработчика") bot.register_handler('message', message_handler) bot.start(open_st_request_assigned, tasklist)