From 2ba717b19b69044716b9e4d44855e0805b40c643 Mon Sep 17 00:00:00 2001 From: Lady Di <93448337+dialuna@users.noreply.github.com> Date: Tue, 23 May 2023 11:50:48 +0300 Subject: [PATCH] Add files via upload --- Задания/task1/Gasanova/tbot.py | 90 ++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 Задания/task1/Gasanova/tbot.py diff --git a/Задания/task1/Gasanova/tbot.py b/Задания/task1/Gasanova/tbot.py new file mode 100644 index 0000000..8b894d3 --- /dev/null +++ b/Задания/task1/Gasanova/tbot.py @@ -0,0 +1,90 @@ +import telebot +import psycopg2 +from telebot import types +import random + +connection = psycopg2.connect(host='localhost', dbname='work', user='dialuna', password='Timka07') # да-да :D +cursor = connection.cursor() + +try: + sel_query = """SELECT * FROM bot""" + cursor.execute(sel_query) +except psycopg2.errors.UndefinedTable: + connection.rollback() + import problems + sel_query = """SELECT * FROM bot""" + cursor.execute(sel_query) + +array = list(cursor.fetchall()) + +def select(ID): + s_query = f'''SELECT * FROM bot where ID = {ID}''' + cursor.execute(s_query) + return cursor.fetchone() + + + + +bot = telebot.TeleBot('secret') + +@bot.message_handler(commands=['start']) +def start(message): + sti = open('st.webp', 'rb') + bot.send_sticker(message.chat.id, sti) + bot.send_message(message.chat.id, "ЙОУ, {0.first_name}!\nЯ твой помощник в мире скейтбординга😎".format(message.from_user, bot.get_me())) + + markup = types.ReplyKeyboardMarkup(resize_keyboard=True) #создание кнопок + btn1 = types.KeyboardButton("Лучший скейтборд этого сезона") + btn2 = types.KeyboardButton("Предложение дня") + btn3 = types.KeyboardButton("Выбор скейта по ID") + markup.add(btn1, btn2, btn3) + bot.send_message(message.chat.id, + 'Лучший скейтборд этого сезона - это именно то, что тебе нужно, если хочешь быть самым крутым.\nПредложение дня - то, что актуально на сегодняшний день.\nВыбор скейта по ID - просто доверься выбору наших сотрудников и тебе понравится :)\n', + reply_markup=markup) + + +@bot.message_handler(content_types=['text']) +def handle_text(message): + if (message.text.strip() == "Лучший скейтборд этого сезона"): + i = random.choice(array) + inf = f'Название: {i[2]}\nЦена: {i[3]}\n' + bot.send_message(message.chat.id, inf) + bot.send_photo(message.chat.id, open(i[4], 'rb')) + cat = open('kotik.webm', 'rb') + bot.send_video(message.chat.id, cat) + elif (message.text.strip() == "Предложение дня"): + i = random.choice(array) + inf = f'Название: {i[2]}\nЦена: {i[3]}\n' + bot.send_message(message.chat.id, inf) + bot.send_photo(message.chat.id, open(i[4], 'rb')) + cat = open('kotik.webm', 'rb') + bot.send_video(message.chat.id, cat) + elif (message.text.strip() == "Выбор скейта по ID"): + sent = bot.send_message(message.chat.id, + f'Введите идентификатор(ID, целое число) от 1 до 13, чтобы получить информацию о конкретном предложении: ') + bot.register_next_step_handler(sent, ret_id) + else: + bot.send_message(message.chat.id, "Наш бот поможет подобрать вам или близким скейтборд мечты. Скорее пробуйте! ") + +def ret_id(message): + try: + now_id = (message.text) + now_id = int(float(now_id)) + z = list(select(now_id)) + a2 = f'Название: {z[2]};\nЦена: {z[3]};\n' + bot.send_message(message.chat.id, a2) + bot.send_photo(message.chat.id, open(z[4], 'rb')) + bot.send_message(message.chat.id, "Для повторного поиска по ID воспользуйтесь соответствующей кнопкой в 'меню'") + except ValueError: + bot.send_message(message.chat.id, + "По такому ID нет данных. Попробуйте заново через 'меню' кнопок найти интересующее вас предложение") + + + +bot.polling(none_stop=True, interval=0) + +cursor.close() +connection.close() + + +