status_handlers.py 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import xmpp
  2. from xmpp import cli
  3. import config
  4. from BotClass import JabberBot
  5. import json
  6. #раскомментировать, когда перейдем на разные пароли
  7. from datetime import datetime
  8. import time
  9. #test
  10. import jsonAndRequest as jsreq
  11. def proceed_status(self, recipient, ticket):
  12. #тут могут быть различные проверки дополнительные, а так вообще эта функция нужна для передачи заявки на обработку следующему
  13. jsonTicket = json.dumps(ticket.__dict__)
  14. self.conn.send(xmpp.Message(recipient, jsonTicket))
  15. self.bot_log("Message sent successfully"+" "+recipient+" "+jsonTicket)
  16. # обработчик входящих сообщений
  17. def message_handler(self, conn, mess):
  18. text = mess.getBody()#текст сообщения боту
  19. user = mess.getFrom()#отправитель сообщения
  20. #проверка на возможность получения сообщений от данного обработчика
  21. print (str(user).split("/")[0])
  22. if (str(user).split("/")[0]) in listen_to:
  23. print(text)
  24. print(mess)
  25. if text is not None:
  26. orderObj = jsreq.jsonToOrderTicket(text)
  27. print (orderObj)
  28. tasklist.append(orderObj)
  29. self.bot_log(str(datetime.now())+" Поступивший заказ успешно добавлен в очередь обработки\n")
  30. #TODO - для обработчиков Ticket скорее надо будет функции вынести в отдельную библиотеку, они типовые же
  31. def pending_wait(self, period, localtask, proceed_to):
  32. self.bot_log(botname+" "+str(datetime.now())+" "+"Заказ ожидает пользовательской реакции\n")
  33. time.sleep(period)
  34. #ВАЖНО! НАДО ВСТАВИТЬ ИЗМЕНЕНИЕ СТАТУСА ЧЕРЕЗ API
  35. #обязательно данный обработчик должен заканчиваться передачей заказа куда-то на обработку дальше - обратно или другому, иначе оно потеряется
  36. self.proceed_status(proceed_to,localtask)
  37. self.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен в очередь "+proceed_to+"\n")
  38. def order_close(self, localtask):
  39. #тут надо вызов API с удалением
  40. self.bot_log(botname+" "+str(datetime.now())+" "+"Заказ удален\n")