|
@@ -2,23 +2,45 @@ import xmpp
|
|
|
from xmpp import cli
|
|
|
import config
|
|
|
from BotClass import JabberBot
|
|
|
+import json
|
|
|
|
|
|
+# загрузка 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()
|
|
|
+ text = mess.getBody()#текст сообщения боту
|
|
|
+ user = mess.getFrom()#отправитель сообщения
|
|
|
+ applications = read_inf("applications.json")
|
|
|
print(text)
|
|
|
print(mess)
|
|
|
+
|
|
|
if text is not None:
|
|
|
message = xmpp.Message()
|
|
|
- message.setBody(text)
|
|
|
+ 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")
|
|
|
+ cli.send_message(config.JID, config.PASSWORD, "test@msg.sharix-app.org", "request.data")
|
|
|
+
|
|
|
+
|
|
|
|
|
|
#Авторизация и запуск бота
|
|
|
bot = JabberBot(config.JID, config.PASSWORD)
|