From 37bfa0f757c92af61fb2905e14c68d849dee29bf Mon Sep 17 00:00:00 2001 From: Sanich777 Date: Mon, 22 May 2023 23:44:48 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B0=D1=80=D1=81=D0=B5=D1=80=20=D0=91?= =?UTF-8?q?=D0=9E=D0=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/workspace.xml | 14 ++++---- Задания/task1/Kulikov/L_BOT_try1.py | 53 +++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 8 deletions(-) create mode 100644 Задания/task1/Kulikov/L_BOT_try1.py diff --git a/.idea/workspace.xml b/.idea/workspace.xml index d30f954..eb603c8 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -5,10 +5,8 @@ - - + - - { + "keyToString": { + "last_opened_file_path": "C:/Users/Honor/Desktop/учеба/прога/c22712/Задания/task1/Prokhorova", + "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable" } -}]]> +} diff --git a/Задания/task1/Kulikov/L_BOT_try1.py b/Задания/task1/Kulikov/L_BOT_try1.py new file mode 100644 index 0000000..73a0faa --- /dev/null +++ b/Задания/task1/Kulikov/L_BOT_try1.py @@ -0,0 +1,53 @@ +import telebot +import psycopg2 +import config +bot = telebot.TeleBot(6053050329:AAFEBguQ5-UE80bB_aNjjSoUdIT91BlPJCY) + +def select(request): + try: + connection = psycopg2.connect(host=config.host, dbname=config.dbname, user=config.user, + password=config.password) + cursor = connection.cursor() + cursor.execute(request) + result = cursor.fetchall() + except: + result = "Ошибка" + finally: + cursor.close() + connection.close() + return result + +max_id = int(select("select max(id) from laptops")[0][0]) +bot = telebot.TeleBot(6053050329:AAFEBguQ5-UE80bB_aNjjSoUdIT91BlPJCY) +@bot.message_handler(commands=["start"]) +def start(m, res=False): + bot.send_message(m.chat.id, f'Привет. Введите идентификатор от 1 до {max_id}, чтобы получить данные: ') + +@bot.message_handler(content_types=["text"]) +def from_bd(message): + try: + current_id = int(message.text) + except BaseException: + bot.send_message(message.chat.id, "Вы неправильно ввели ID. Попробуйте снова:") + return + if current_id > max_id: + bot.send_message(message.chat.id, "ID больше, чем количество товаров. Попробуйте снова:") + return + else: + try: + data = select(f"select * from laptops where id = {current_id}")[0][1:] + if type(data) == str: + bot.send_message(message.chat.id, "Ошибка на сервере") + return + s = data[:-1] + names_of_columns = ["Товар", "Цена", "Диагональ", "Разрешение", "Процессор", "Оперативная память", + "Графический контроллер", "Объём диска"] + everydata = [] + for data_name, column_name in zip(s, names_of_columns): + everydata.append(column_name.capitalize() + ": " + data_name) + bot.send_message(message.chat.id, "\n\n".join(everydata)) + bot.send_photo(message.chat.id, open(data[-1], 'rb')) + except: + bot.send_message(message.chat.id, "Ошибка на сервере") + bot.send_message(message.chat.id, f"Введите следующий ID от 1 до {max_id}:") +bot.polling(none_stop=True, interval=0)