瀏覽代碼

Интеграция запросов в бота

DESKTOP-0RAJG6A\hyper 2 年之前
父節點
當前提交
00852c5ffc
共有 2 個文件被更改,包括 27 次插入152 次删除
  1. 7 5
      config.py
  2. 20 147
      testBot.py

+ 7 - 5
config.py

@@ -1,8 +1,10 @@
 #Подключение к базе данных
 host = "host"
-user = "user"
-password = "password"
-db_name = "db_name"
+SSH_H = "46.138.247.90"
+user = "artem_valiakhmetov"
+password = ""
+port = 334
+db_name = "postgres"
 #Подключение к боту
-jid = "jid"
-jidpassword = "jidpassword"
+jid = "test@msg.sharix-app.org"
+jidpassword = "test1234@"

+ 20 - 147
testBot.py

@@ -1,165 +1,38 @@
 #Библиотеки
-from multiprocessing import connection
 import xmpp 
-import pymysql
-from config import host, user, password, db_name, jid, jidpassword
+from config import jid, jidpassword
 from BotClass import JabberBot
-#Проверка соединения и само соединение
-try:
-    connection = pymysql.connect(
-        host=host,
-        port=3306,
-        user=user,
-        password=password,
-        database=db_name,
-        cursorclass=pymysql.cursors.DictCursor
-    )
-    class OrderS:
-        Name = ""
-        Description = ""
-        Price = float(0)
-        idUser = int(0)
-        User = ""
-        def __init__(self, User, Name, IdUser):
-            self.Name = Name
-            self.Description = ""
-            self.Price = float(0)
-            self.idUser = IdUser
-            self.User = User
-        def display_info(self):
-            print(self.Name + self.Description + self.Price + self.User + self.idUser)
-    print("Successfully connection...")
-except Exception as ex:
-    print("Error connection to database...")
-    print(ex)
-#Конфиг для авторизации бота
-#config = {
-#    'jid': '',
-#    'pass': ''
-#}
-#Добавление пользователя в базу данных
-def add_user(userName):
-    with connection.cursor() as cursor:
-        select_all_rows = "SELECT * FROM `user`"
-        cursor.execute(select_all_rows)
-        rows = cursor.fetchall()
-        i = 0
-        stringUser = str(userName).split("/")[0]
-        for row in rows:
-            if str(row['FullName']).split("/")[0] == stringUser:
-                i += 1
-        if i == 0:
-            insert_user = "INSERT INTO testbotdb.user (FullName, IdStatus) VALUES(%s, %s)"
-            val = (stringUser, 1)
-            cursor.execute(insert_user, val)
-            connection.commit()
-            return True
-        else: 
-            i = 0
-            return False
+from RequestClass import RequestDataBase
 
-IDORDER = 0
-mylist = set()
+requesDB = RequestDataBase()
 #Основной метод для обработки сообщинй от пользователя
 def message_handler(conn, mess):
-    
     text = mess.getBody()
     user = mess.getFrom()
-    #Проверка статуса пользователя
-    with connection.cursor() as cursor:
-        sqlproverka = "SELECT * FROM testbotdb.user WHERE Fullname = %s"
-        cursor.execute(sqlproverka, user)
-        status = cursor.fetchone()
-
-    if add_user(user):
-        conn.send(xmpp.Message(user, 'Вас приветствует тестовый бот для создания, просмотра и управления заказами.\nВоспользуйтесь коммандой help для ознокомления с моим функционалом.'))
 
-    elif status['IdStatus'] == 2 and status['FullName'] == user and text != 'cancel':
-        InsertOderName(text, status['idUser'], user)
-        conn.send(xmpp.Message(user, 'Укажите описание заказа:'))
+    if str(text).startswith("!"):
+        commands_request(conn, mess)
+    else:
+        conn.send(xmpp.Message(user, "Я тебя не понимаю..."))
 
-    elif status['IdStatus'] == 3 and status['FullName'] == user  and text != 'cancel':
-        InsertOderDescription(text, IDORDER, user)
-        print(IDORDER)
-        conn.send(xmpp.Message(user, 'Укажите цену:')) 
+def commands_request(conn, mess):
+    try:
+        text = mess.getBody()
+        user = mess.getFrom()
 
-    elif status['IdStatus'] == 4 and status['FullName'] == user  and text != 'cancel':
-        InsertOderPrice(text, IDORDER, user)   
-        print(IDORDER)
-        conn.send(xmpp.Message(user, 'Вы точно хотите добавить заказ[y/n]:')) 
+        arguments = str(text).split()
+        if text == "!addcl":
+            conn.send(xmpp.Message(user, requesDB.add_car_log("K")))
+        elif str(text).startswith("!delcl"):
+            conn.send(xmpp.Message(user, requesDB.del_car_log('1')))
 
-    elif status['IdStatus'] == 5 and status['FullName'] == user and text != 'cancel':
-        if text == 'y':   
-            conn.send(xmpp.Message(user, 'Заказ успешно добавлен!')) 
         else:
-            changeOrderStatus(1, user)
-            conn.send(xmpp.Message(user, 'Отменено.'))
+            conn.send(xmpp.Message(user, "Такой команды нет"))
 
-    else:
-        if text == "help":
-            conn.send(xmpp.Message(user, '\nhelp - предоставляет список доступных комманд\ncancel - отмена любой из операций\naddorder - добавить заказ\ndeleteorder - удалить заказ\nlistorder - показывает список заказов\nwheather - показывает погоду'))
-        elif text == "cancel":
-            changeOrderStatus(1, user)
-            conn.send(xmpp.Message(user, 'Отменено.'))
-        elif text == "addorder":
-            changeOrderStatus(2, user)
-            conn.send(xmpp.Message(user, 'Укажите имя заказа:'))
-        else:
-            conn.send(xmpp.Message(user, 'Комманда не определена. Воспользуйтесь командой help.'))
-#Изменения статуса
-def changeOrderStatus(statusId, user):
-    with connection.cursor() as cursor:
-        sql = "UPDATE testbotdb.user SET IdStatus = %s WHERE FullName = %s"
-        val = (statusId, user)
-        cursor.execute(sql, val)
-        connection.commit()
-#Метод для добавления имени и пользователя
-def InsertOderName(ordername, orderiduser, user):
-    try:
-        with connection.cursor() as cursor:
-            sqlidUser = "SELECT idUser FROM testbotdb.user WHERE Fullname = %s"
-            cursor.execute(sqlidUser, user)
-            idUser = cursor.fetchone()
-            print(idUser['idUser'])
-            sql = "INSERT INTO testbotdb.order (NameOrder, IdUser) VALUES (%s, %s)"
-            val = (ordername, idUser['idUser'])
-            #orderss.append(OrderS(user, ordername, idUser['idUser']))
-            order = OrderS(user, ordername, idUser['idUser'])
-            orders = [order]
-            resultorder = sorted(orders, key=lambda ord: ord.User)
-            mylist.add(OrderS(user, ordername, idUser['idUser']))
-            for item in resultorder:
-                if user == item.User:
-                    print(item.Name)
-            #cursor.execute(sql, val)
-            #connection.commit()
-            #global IDORDER 
-            #IDORDER = cursor.lastrowid
-            #changeOrderStatus(3, user)
     except Exception as ex:
-        print(ex)
-#Метод для добавления описания
-def InsertOderDescription(orderdescription, idOrder, user):
-    try:
-        with connection.cursor() as cursor:
-            sql = "UPDATE testbotdb.order SET Description = %s WHERE idOrder = %s"
-            val = (orderdescription, idOrder)
-            cursor.execute(sql, val)
-            connection.commit()
-            changeOrderStatus(4, user)
-    except Exception as ex:
-        print(ex)
-#Метод для добавления цены
-def InsertOderPrice(orderprice, idOrder, user):
-    try:
-        with connection.cursor() as cursor:
-            sql = "UPDATE testbotdb.order SET Price = %s WHERE idOrder = %s"
-            val = (float(orderprice), idOrder)
-            cursor.execute(sql, val)
-            connection.commit()
-            changeOrderStatus(5, user)
-    except Exception as ex:
-        print(ex)
+        conn.send(xmpp.Message(user, str(ex)))
+    
+
 #Авторизация и запуск бота
 bot = JabberBot(jid, jidpassword)
 bot.register_handler('message', message_handler)