|
@@ -3,57 +3,15 @@ from xmpp import cli
|
|
|
import config
|
|
|
from BotClass import JabberBot
|
|
|
import json
|
|
|
+import botrun
|
|
|
|
|
|
-# загрузка json файла
|
|
|
-def read_inf(file_name):
|
|
|
- with open(file_name, 'r', encoding="utf-8") as file:
|
|
|
- return json.load(file)
|
|
|
+#В этом файле содержится только то, что запускает конкретный обработчик
|
|
|
|
|
|
-
|
|
|
-# обработчик входящих сообщений
|
|
|
-def message_handler(conn, mess):
|
|
|
- text = mess.getBody()#текст сообщения боту
|
|
|
- user = mess.getFrom()#отправитель сообщения
|
|
|
-#работа с файлом в таком виде для входящей информации не нужна, так как бот должен обрабатывать входящие сообщения, а не файлы на сервере, и не сохраняет входящие сообщения в файлы. Он должен входящее сообщение поместить в очередь (список) на обработку.
|
|
|
-# При запуске бота он инициализирует пустой список, далее делает запрос к API для выгрузки в него всех заявок с его статусом для обработки и все элементы (если они есть) добавляет с помощью append в список.
|
|
|
-#При получении сообщения от кого-нибудь он также делает в список append
|
|
|
-#Каждлый пустой (не существующий) вызов API описывается как fake_api_call
|
|
|
-#Элемент списка удаляется, если с момента timestamp внутри json прошло больше 1 часа (соответственно json должен быть такого вида, что эта информация там есть)
|
|
|
- applications = read_inf("applications.json")
|
|
|
- print(text)
|
|
|
- print(mess)
|
|
|
-
|
|
|
- if text is not None:
|
|
|
- message = xmpp.Message()
|
|
|
- applications = read_inf("applications.json")
|
|
|
-
|
|
|
- #если бот получает сообщение, соответсвующее значению id("1","2","3")
|
|
|
- #он отправит описание desc этого определенного объекта
|
|
|
- for app in applications["applications"]:
|
|
|
- if app.get("id") == text:
|
|
|
- message.setBody(app.get("desc"))
|
|
|
-
|
|
|
- # если бот получает сообщение, он отправляет такое же сообщение отправителю
|
|
|
- # message.setBody(text)
|
|
|
- message.setFrom(config.JID)
|
|
|
- message.setTo(user)
|
|
|
- message.setType('chat')
|
|
|
-
|
|
|
- conn.send(message)
|
|
|
-
|
|
|
-# пример функции, которую можно вызвать из любой части кода для отправки сообщения от бота пользователю
|
|
|
-def simple_send_message():
|
|
|
- cli.send_message(config.JID, config.PASSWORD, "test@msg.sharix-app.org", "request.data")
|
|
|
-
|
|
|
-# recipient - это конкретный jid следующего обработчика заявки, ticket - json с заявкой
|
|
|
-def proceed_status(recipient, ticket):
|
|
|
- cli.send_message(config.JID, config.PASSWORD, recipient, ticket)
|
|
|
-
|
|
|
-# в message помещается смысл и сам вызов API, который должен быть, но которого нет, а также хорошо туда добавить номер заказа (взять из json) и название бота
|
|
|
-def fake_api_call(message):
|
|
|
- cli.send_message(config.JID, config.PASSWORD, "test@msg.sharix-app.org", message)
|
|
|
+def open-st_request-assigned():
|
|
|
+ print("Тут описывается работа со списком задач в данном статусе")
|
|
|
|
|
|
#Авторизация и запуск бота
|
|
|
bot = JabberBot(config.JID, config.PASSWORD)
|
|
|
bot.register_handler('message', message_handler)
|
|
|
-bot.start()
|
|
|
+bot.start(open-st_request-assigned)
|
|
|
+
|