浏览代码

Вторая тестовая версия. Добавлена возможность узнавать погоду в Москве используя api запрос. Исправлены некоторые ошибки.

WorldOfPets 2 年之前
父节点
当前提交
5b6d4f1e82
共有 5 个文件被更改,包括 34 次插入13 次删除
  1. 9 1
      README.md
  2. 二进制
      __pycache__/BotClass.cpython-310.pyc
  3. 二进制
      __pycache__/config.cpython-310.pyc
  4. 2 1
      config.py
  5. 23 11
      testBot.py

+ 9 - 1
README.md

@@ -1 +1,9 @@
-# Jabbr Bot
+# Jabber Bot
+## Инструкция для запуска
+* Скачайте репозиторий к себе на компьютер
+* В файле config.py вам необходимо изменить данные
+* В разделе для подключение к бд указать данные своей бд
+* В разделе для покллючения к боту указть логи и пороль от джаббер
+* Запустить бота командой "python testBot.py"
+
+##### Возможно вам потребуется установить python скачав его с официального сайта, а также установить дополнительные библиотеки командой python install "название библиотеки" (название библиотек содержиться в файлах программы)

二进制
__pycache__/BotClass.cpython-310.pyc


二进制
__pycache__/config.cpython-310.pyc


+ 2 - 1
config.py

@@ -3,6 +3,7 @@ host = "host"
 user = "user"
 password = "password"
 db_name = "db_name"
+port = 3306
 #Подключение к боту
-jid = "jid"
+jid = "jid@jabber.ru"
 jidpassword = "jidpassword"

+ 23 - 11
testBot.py

@@ -1,14 +1,18 @@
 #Библиотеки
 from multiprocessing import connection
+from types import NoneType
+from urllib import response
 import xmpp 
 import pymysql
-from config import host, user, password, db_name, jid, jidpassword
+import requests
+from config import host, user, password, db_name, jid, jidpassword, port
 from BotClass import JabberBot
+
 #Проверка соединения и само соединение
 try:
     connection = pymysql.connect(
         host=host,
-        port=3306,
+        port=port,
         user=user,
         password=password,
         database=db_name,
@@ -60,20 +64,22 @@ def add_user(userName):
 
 IDORDER = 0
 mylist = set()
+def proverka(user):
+    with connection.cursor() as cursor:
+            sqlproverka = "SELECT * FROM testbotdb.user WHERE Fullname = %s"
+            cursor.execute(sqlproverka, str(user).split("/")[0])
+            status = cursor.fetchone() 
+    return status
 #Основной метод для обработки сообщинй от пользователя
 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 для ознокомления с моим функционалом.'))
-
+    add_usertrue = add_user(user)
+    status = proverka(user)
+    if add_usertrue:
+        conn.send(xmpp.Message(user, 'Здраствуйте, Вас приветствует бот помощник от компании Sharix. Здесь вы можете найти ответ на интересующий вас вопрос. \nВоспользуйтесь коммандой help для ознокомления с моим функционалом.')) 
     elif status['IdStatus'] == 2 and status['FullName'] == user and text != 'cancel':
         InsertOderName(text, status['idUser'], user)
         conn.send(xmpp.Message(user, 'Укажите описание заказа:'))
@@ -97,13 +103,19 @@ def message_handler(conn, mess):
 
     else:
         if text == "help":
-            conn.send(xmpp.Message(user, '\nhelp - предоставляет список доступных комманд\ncancel - отмена любой из операций\naddorder - добавить заказ\ndeleteorder - удалить заказ\nlistorder - показывает список заказов\nwheather - показывает погоду'))
+            conn.send(xmpp.Message(user, '\nhelp - предоставляет список доступных комманд\ncancel - отмена любой из операций\naddorder - добавить заказ\nweather - показывает погоду в Москве'))
         elif text == "cancel":
             changeOrderStatus(1, user)
             conn.send(xmpp.Message(user, 'Отменено.'))
         elif text == "addorder":
             changeOrderStatus(2, user)
             conn.send(xmpp.Message(user, 'Укажите имя заказа:'))
+        elif text == "weather":
+            response = requests.get("https://api.openweathermap.org/data/2.5/weather?q=Moscow,ru&APPID=682b40b734e34607e32801ee558293a3")
+            town = response.json()['name']
+            tem = round(response.json()['main']['temp'] - 273.15, 1)
+            temfeels = round(response.json()['main']['feels_like'] - 273.15, 1)
+            conn.send(xmpp.Message(user, f'\nГород: {town}\nТемпература:{tem}\nОщущается как:{temfeels}'))
         else:
             conn.send(xmpp.Message(user, 'Комманда не определена. Воспользуйтесь командой help.'))
 #Изменения статуса