Browse Source

комментарии к коду

L 1 year ago
parent
commit
11ff346810
4 changed files with 49 additions and 7 deletions
  1. 2 2
      BotClass.py
  2. 16 0
      applications.json
  3. 5 1
      config_template.py
  4. 26 4
      run.py

+ 2 - 2
BotClass.py

@@ -25,11 +25,11 @@ class JabberBot:
 
     def step_on(self):
         try:
-            self.conn.Process(1)
+            self.conn.Process(1) #с какой частотой происходит подключение к серверу, в данном случае каждую секунду
         except KeyboardInterrupt: return 0
         return 1
 
     def start(self):
-        self.conn.sendInitPresence()
+        self.conn.sendInitPresence()#статус аккаунта бота (активен или нет)
         print("Bot started!")
         while self.step_on(): pass

+ 16 - 0
applications.json

@@ -0,0 +1,16 @@
+{
+    "applications": [
+        {
+            "id": "1",
+            "desc": "описание 1" 
+        },
+        {
+            "id": "2",
+            "desc": "описание 2" 
+        },
+        {
+            "id": "3",
+            "desc": "описание 3" 
+        }
+    ]
+}

+ 5 - 1
config_template.py

@@ -1,3 +1,7 @@
 #rename this file to confgi.py
 JID="example@msg.sharix-app.org"
-PASSWORD="12345"
+PASSWORD="12345"
+
+# бот в конверс
+# JID="bottickets@msg.sharix-app.org"
+# PASSWORD="12345!"

+ 26 - 4
run.py

@@ -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)