run.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import xmpp
  2. from xmpp import cli
  3. import config
  4. from BotClass import JabberBot
  5. import json
  6. # загрузка json файла
  7. def read_inf(file_name):
  8. with open(file_name, 'r', encoding="utf-8") as file:
  9. return json.load(file)
  10. # обработчик входящих сообщений
  11. def message_handler(conn, mess):
  12. text = mess.getBody()#текст сообщения боту
  13. user = mess.getFrom()#отправитель сообщения
  14. applications = read_inf("applications.json")
  15. print(text)
  16. print(mess)
  17. if text is not None:
  18. message = xmpp.Message()
  19. applications = read_inf("applications.json")
  20. #если бот получает сообщение, соответсвующее значению id("1","2","3")
  21. #он отправит описание desc этого определенного объекта
  22. for app in applications["applications"]:
  23. if app.get("id") == text:
  24. message.setBody(app.get("desc"))
  25. # если бот получает сообщение, он отправляет такое же сообщение отправителю
  26. # message.setBody(text)
  27. message.setFrom(config.JID)
  28. message.setTo(user)
  29. message.setType('chat')
  30. conn.send(message)
  31. # пример функции, которую можно вызвать из любой части кода для отправки сообщения от бота пользователю
  32. def simple_send_message():
  33. cli.send_message(config.JID, config.PASSWORD, "test@msg.sharix-app.org", "request.data")
  34. #Авторизация и запуск бота
  35. bot = JabberBot(config.JID, config.PASSWORD)
  36. bot.register_handler('message', message_handler)
  37. bot.start()