Browse Source

logic debugging and testing documentation added

Dev Server 1 year ago
parent
commit
7ecd032bca
3 changed files with 34 additions and 22 deletions
  1. 7 5
      BotClass.py
  2. 10 0
      gen_users
  3. 17 17
      open_template_bot.py

+ 7 - 5
BotClass.py

@@ -1,5 +1,5 @@
 import sys, xmpp
-#from xmpp import cli
+from xmpp import cli
 from datetime import datetime
 
 #Основной класс бота
@@ -39,7 +39,7 @@ class JabberBot:
         return 1
 
     def fake_api_call(self, message):
-        # cli.send_message(self.user, self.password, "test@msg.sharix-app.org", message)
+        # cli.send_message(self.user, self.password, "test@ej.sharix-app.org", message)
         print('fake_api_call')
 
     def bot_log(self, message):
@@ -47,12 +47,14 @@ class JabberBot:
         logfile = open(datetime.now().strftime('%Y-%m-%d') + "-" + self.user + ".log", "a")
         logfile.write(message)
         logfile.close()
-        #cli.send_message(self.user, self.password, "test@msg.sharix-app.org", message)
+        #cli.send_message(self.user, self.password, "test@ej.sharix-app.org", message)
 
     # recipient - это конкретный jid следующего обработчика заявки, ticket - json с заявкой.
-    def proceed_status(recipient, ticket):
+    def proceed_status(self, recipient, ticket):
         #тут могут быть различные проверки дополнительные, а так вообще эта функция нужна для передачи заявки на обработку следующему
-        cli.send_message(self.user, self.password, recipient, ticket)
+        #TODO - почему-то тут валится, пока заменено на затычку
+        #cli.send_message(self.user, self.password, recipient, ticket)
+        print ("Message sent successfully")
 
     #сюда можно как параметры передавать переменную для значения Process в вызываемой функции, а также передавать информацию о том, какой из обработчиков ввызывать в бесконечном цикле
     def start(self, handler, *args):

+ 10 - 0
gen_users

@@ -1,8 +1,18 @@
 #!/bin/bash
 
+#for fist run
+#python3 -m venv env
+#source env/bin/activate
+#pip3 install -t requirements
+
 #activate env before:
 #source env/bin/activate
 
+#https://democonv.sharix-app.org/ - testing client
+#users recommended for testing
+#user: test@ej.sharix-app.org
+#user: test1@ej.sharix-app.org
+
 python3 gen-passwords.py | while IFS=' ' read -ra line; do ejabberdctl register ${line[0]} ej.sharix-app.org ${line[1]}; done;
 python3 gen-passwords.py | while IFS=' ' read -ra line; do ejabberdctl change-password ${line[0]} ej.sharix-app.org ${line[1]}; done;
 #ejabberdctl register $username ej $password

+ 17 - 17
open_template_bot.py

@@ -27,15 +27,16 @@ PASSWORD=hashlib.md5((botname+config.PASSWORD).encode('utf-8')).hexdigest()
 print(JID, PASSWORD)
 
 #таким образом хранится список jid, от которых можно получать сообщения этому боту
-listen_to=["test@msg.sharix-app.org", "test1@msg.sharix-app.org"]
+listen_to=["test@ej.sharix-app.org", "test1@ej.sharix-app.org", "test@ej.sharix-app.org/converse.js-11058227", "test1"]
 
 #тут хранится список jid, кому бот может отправлять сообщения в результате обработки заявки
-process_to=["test@msg.sharix-app.org", "test1@msg.sharix-app.org"]
+process_to=["test@ej.sharix-app.org", "test1@ej.sharix-app.org"]
 
 # обработчик входящих сообщений
 def message_handler(conn, mess):
     text = mess.getBody()#текст сообщения боту
     user = mess.getFrom()#отправитель сообщения
+    #user = mess.getNode()#только jid 
     #example json to object user
     if text is not None:
         """ example json
@@ -48,35 +49,34 @@ def message_handler(conn, mess):
                 }
             }
         """
-        userObj = jsreq.jsonToUser(text)
-        print(userObj.name)
-        print(userObj.address.street)
         #HTTP запрос
-        jsreq.requestGetListUser()
-    #нужна проверка, данный обработчик вообще должен от данного отправителя получать сообщения или нет. Подсказка ниже
+        #jsreq.requestGetListUser()
+   
+   #нужна проверка, данный обработчик вообще должен от данного отправителя получать сообщения или нет. Подсказка ниже
+    print (user)
     if user in listen_to:
         print(text)
         print(mess)
 
         if text is not None:
-            message = xmpp.Message()
-        
-            tasklist.append(message)
-            bot.bot_log(" ".join(str(datetime.now()), str(i), "Заказ успешно добавлен в очередь обработки"))
-
+            orderObj = jsreq.jsonToUser(text)
+            tasklist.append(orderObj)
+            bot.bot_log(str(datetime.now())+" Поступивший заказ успешно добавлен в очередь обработки\n")
 
 
 def open_bot_template(tasklist):
     #print("Тут описывается работа со списком задач в данном статусе")
     for i in range(len(tasklist)):
         #проверяем элемент tasklist[i]
-        bot.bot_log(botname + " " + datetime.now().strftime('%Y-%m-%d') + " " + str(i) + " " + "Заказ в очереди на обработке")
+        bot.bot_log(botname + " " + datetime.now().strftime('%Y-%m-%d') + " " + str(i) + " " + "Заказ в очереди на обработке\n")
+        print ("TASKLIST", tasklist[i])
         if tasklist[i]:
-            proceed_status("test@msg.sharix-app.org"+" "+tasklist[i])
-            del tasklist[i]
-            bot.bot_log(botname+" "+str(datetime.now())+" "+str(i)+" "+"Заказ успешно обработан и удален из очереди")
+            bot.proceed_status("test1@ej.sharix-app.org",tasklist[i])
+            #TODO - разобраться, почему оно вдруг становится tuple
+            #tasklist.pop(i)
+            bot.bot_log(botname+" "+str(datetime.now())+" "+str(i)+" "+"Заказ успешно обработан и удален из очереди\n")
         else:
-            bot.bot_log(botname+" "+str(datetime.now())+" "+str(i)+" "+"Заказ оставлен в очереди")
+            bot.bot_log(botname+" "+str(datetime.now())+" "+str(i)+" "+"Заказ оставлен в очереди\n")
 
 #Авторизация и запуск бота