|
@@ -0,0 +1,55 @@
|
|
|
|
+import xmpp
|
|
|
|
+from xmpp import cli
|
|
|
|
+import config
|
|
|
|
+from BotClass import JabberBot
|
|
|
|
+import json
|
|
|
|
+#раскомментировать, когда перейдем на разные пароли
|
|
|
|
+from datetime import datetime
|
|
|
|
+
|
|
|
|
+import time
|
|
|
|
+
|
|
|
|
+#test
|
|
|
|
+import jsonAndRequest as jsreq
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+def proceed_status(self, recipient, ticket):
|
|
|
|
+ #тут могут быть различные проверки дополнительные, а так вообще эта функция нужна для передачи заявки на обработку следующему
|
|
|
|
+ jsonTicket = json.dumps(ticket.__dict__)
|
|
|
|
+ self.conn.send(xmpp.Message(recipient, jsonTicket))
|
|
|
|
+ self.bot_log("Message sent successfully"+" "+recipient+" "+jsonTicket)
|
|
|
|
+
|
|
|
|
+# обработчик входящих сообщений
|
|
|
|
+def message_handler(self, conn, mess):
|
|
|
|
+ text = mess.getBody()#текст сообщения боту
|
|
|
|
+ user = mess.getFrom()#отправитель сообщения
|
|
|
|
+
|
|
|
|
+ #проверка на возможность получения сообщений от данного обработчика
|
|
|
|
+ print (str(user).split("/")[0])
|
|
|
|
+ if (str(user).split("/")[0]) in listen_to:
|
|
|
|
+ print(text)
|
|
|
|
+ print(mess)
|
|
|
|
+
|
|
|
|
+ if text is not None:
|
|
|
|
+ orderObj = jsreq.jsonToOrderTicket(text)
|
|
|
|
+ print (orderObj)
|
|
|
|
+ tasklist.append(orderObj)
|
|
|
|
+ self.bot_log(str(datetime.now())+" Поступивший заказ успешно добавлен в очередь обработки\n")
|
|
|
|
+
|
|
|
|
+#TODO - для обработчиков Ticket скорее надо будет функции вынести в отдельную библиотеку, они типовые же
|
|
|
|
+def pending_wait(self, period, localtask, proceed_to):
|
|
|
|
+ self.bot_log(botname+" "+str(datetime.now())+" "+"Заказ ожидает пользовательской реакции\n")
|
|
|
|
+ time.sleep(period)
|
|
|
|
+
|
|
|
|
+ #ВАЖНО! НАДО ВСТАВИТЬ ИЗМЕНЕНИЕ СТАТУСА ЧЕРЕЗ API
|
|
|
|
+
|
|
|
|
+ #обязательно данный обработчик должен заканчиваться передачей заказа куда-то на обработку дальше - обратно или другому, иначе оно потеряется
|
|
|
|
+ self.proceed_status(proceed_to,localtask)
|
|
|
|
+ self.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен в очередь "+proceed_to+"\n")
|
|
|
|
+
|
|
|
|
+def order_close(self, localtask):
|
|
|
|
+
|
|
|
|
+ #тут надо вызов API с удалением
|
|
|
|
+ self.bot_log(botname+" "+str(datetime.now())+" "+"Заказ удален\n")
|
|
|
|
+
|
|
|
|
+
|