blezz-tech 1 сар өмнө
parent
commit
cc448dc4c6

+ 19 - 19
handlers/handlers/open_basic_bot.py

@@ -1,8 +1,9 @@
 import hashlib
 from datetime import datetime
 import config
-import jsonAndRequest as jsreq
-from BotClass import JabberBot
+import logging
+from EchoBot import JabberBot
+from slixmpp.stanza import Message
 
 botname = "open_basic_bot"
 operating_status = 0
@@ -11,8 +12,11 @@ JID = botname + "@" + config.JSERVER
 PORT = config.PORT
 PASSWORD = hashlib.md5((botname + config.PASSWORD).encode('utf-8')).hexdigest()
 
+bot = JabberBot(JID, PASSWORD)
+
 # таким образом хранится список jid, от которых можно получать сообщения этому боту
 listen_to = [
+    "open_basic_bot@ej.sharix-app.org",
     "test_user@ej.sharix-app.org"
 ]
 
@@ -21,30 +25,26 @@ proceed_to = [
     "another_bot@ej.sharix-app.org"
 ]
 
-def message_handler(msg):
-    """обработчик входящих сообщений"""
+def message_handler(msg: Message):
+    """Обработчик входящих сообщений"""
 
-    print(msg)
-    # text = msg.
-    # if msg['type'] in ('chat', 'normal'):
-    #     msg.reply("Thanks for sending\n%(body)s" % msg).send()
+    if msg['type'] in ('chat', 'normal'):
+        text = msg['body']  # текст сообщения боту
+        sender = msg['from']  # отправитель сообщения
 
-    # text = msg.getBody()  # текст сообщения боту
-    # user = msg.getFrom()  # отправитель сообщения
-    # if (str(user).split("/")[0]) in listen_to:
-    #     if text is not None:
-    #         msg = jsreq.msg_to_text(text)
-    #         bot.bot_log(str(datetime.now()) + " Сообщение получено\n")
+        if (str(sender).split("/")[0]) in listen_to:
+            if text is not None:
+                logging.info(f"Сообщение получено")
 
-def start_handler(bot):
+def start_handler():
     """Событие запуска обработчика."""
 
-    print(JID, PASSWORD)
+    logging.info(">>>>>  %s  |---| %s  <<<<<", JID, PASSWORD)
+
+    logging.info("Сообщение отправлено")
 
-    bot.send_message(JID, f"message send: {datetime.now()}")
+    bot.send_message(JID, f"Сообщение отправлено {JID}: {datetime.now()}")
 
-    # bot.proceed_status(listen_to[0], {'msg': 'some_info'})
-    # bot.bot_log(botname + " " + str(datetime.now()) + " " + "Сообщение отправлено\n")
 
 # START CUSTOM FUNCTIONS
 

+ 2 - 7
handlers/main.py

@@ -1,6 +1,5 @@
 import config
 from EchoBot import JabberBot
-import sys
 import logging
 from argparse import ArgumentParser
 import importlib
@@ -32,14 +31,10 @@ if __name__ == '__main__':
     if args.bot and args.bot in config.BOTLIST:
         module = importlib.import_module("handlers." + args.bot)
 
-        JID = module.JID
-        PASSWORD = module.PASSWORD
-
         start_handler = module.start_handler
         message_handler = module.message_handler        
 
-
-        bot = JabberBot(JID, PASSWORD)
+        bot = module.bot 
         
         # Отправляет информацию о присутствии бота, чтобы показать,
         # что он онлайн и готов к взаимодействию.
@@ -53,7 +48,7 @@ if __name__ == '__main__':
         # Connect to the XMPP server and start processing XMPP stanzas.
         bot.connect()
         
-        start_handler(bot)
+        start_handler()
 
         # TODO: Сделать корректную обработку остановки программы;
         # Ctrl+C, Ctrl+Z