status_handlers.py 2.5 KB

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