445
445
import psycopg2
dbname = "cafepython"
user = "postgres"
password = "0000"
host = "127.0.0.1"
port = "5433"
# Токен бота
bot_token = '7753531841:AAHA9Wxxh803K2fLsClKvLIPKPsgMn2VXCc'
bot = telebot.TeleBot(bot_token)
# Подключения к БД
def db_connect():
# Регистрация пользователя в БД
if cur.fetchone() is None:
cur.execute(
"""
""",
)
conn.commit()
def get_user_balance(user_id):
result = cur.fetchone()
# Команда /help
@bot.message_handler(commands=['help'])
def show_help(message):
help_text = (
"Команды бота:\n"
"Сотрудничество: @Karto_Fan863"
bot.send_message(message.chat.id, help_text)
# Команда /balance
@bot.message_handler(commands=['balance'])
def show_balance(message):
user_id = message.from_user.id
balance = get_user_balance(user_id)
else:
@bot.message_handler(commands=['start'])
def send_welcome(message):
user_id = message.from_user.id
add_user_if_not_exists(user_id, username)
balance = get_user_balance(user_id)
show_categories(message)
# Команда /category
@bot.message_handler(commands=['category'])
def show_categories(message):
categories = cur.fetchall()
if categories:
markup = ReplyKeyboardMarkup(resize_keyboard=True)
markup.add(KeyboardButton(category[0]))
else:
# Все категорий
def get_all_categories():
cur.execute("""
FROM Products p
WHERE p.category = %s
""", (category,))
products = cur.fetchall()
if products:
markup = ReplyKeyboardMarkup(resize_keyboard=True)
if stock_quantity > 0:
markup.add(KeyboardButton("Назад"))
else:
# Выбор категории
def select_product(message):
category = message.text
show_products_in_category(message, category)
# Кнопка Назад
def go_back(message):
show_categories(message)
# Оформление заказа
def place_order(message):
product_name = product_info[0]
user_id = message.from_user.id
user_points = cur.fetchone()[0]
product_price = cur.fetchone()
if product_price:
product_price = product_price[0]
cur.execute(
"INSERT INTO Orders (customer_id, total_price, order_date) VALUES (%s, %s, NOW())
RETURNING order_id;",
(user_id, product_price)
order_id = cur.fetchone()[0]
cur.execute(
"INSERT INTO Order_items (order_id, product_name, price) VALUES (%s, %s, %s);",
else:
else:
bot.polling()