Короче не могу понять как правильно разделить 2 и 3 функцию чтоб работала можете пожалуйста помочь
import telebot
from telebot import types
from configure import token
bot = telebot.TeleBot(token)
class food():
def __init__(self, name, price, description):
self.name = name
self.price = price
self.des = description
sa1 = food('Цезарь с куриной грудкой', '560', '')
sa2 = food('Цезарь с креветками', '635', '')
sa3 = food('Салат с тунцом и грейпфрутом', '645', 'Освежающий салат с кусочками свежего тунца, дольками грейпфрута, черри, оливками и салатным миксом под цитрусовой заправкой')
so1 = food('Семейный очаг', '499', 'Сытный мясной суп с говядиной, курицей, свининой и овощами. Заботливо согревает и обволакивает')
so2 = food('Суп с чечевицей и овощами', '329', 'Зелёный свет! Суп с чечевицей, брокколи, цветной капустой и грибами ')
so3 = food('Сырный суп в хлебе', '579', 'Ароматный сырный крем-суп с орегано и картофельными чипсами. Подаём в хлебе')
p1 = food('Маргарита 28|40 см', '399|569', 'Фирменный томатный соус, сливочная моцарелла и базилик. Классика, к которой иногда так хочется вернуться')
p2 = food('Пепперони 28|40 см', '535|769', 'Пицца, которая умеет подстроиться под любую ситуацию. Пепперони, моцарелла, фирменный томатный соус и петрушка')
p3 = food('Ветчина и грибы 28|40 см', '699|989', 'Шампиньоны, моцарелла, фирменный томатный соус, орегано и ветчина. Ничего лишнего, только любимое')
d1 = food('Эспрессо 30|60 мл', '139|199', '')
d2 = food('Американо 180|300 мл', '199|329', '')
d3 = food('Латте 250|430 мл', '229|329', '')
c1 = food('Лимонад маракуйя 120|620 мл', '319|749', 'Уже при первом знакомстве маракуйя, цветочный сироп, лимон и содовая без капли стеснения подхватывают вас и кружат словно в вальсе. Глоток, ещё один – и всё вокруг уже заиграло новыми красками')
c2 = food('Ягодный лимонад 280|700 мл', '319|749', 'Сочетание летних ягод малины и черники с добавлением черносмородинового сиропа, вишнёвого и клюквенного сока, газированной воды и сауэр микс')
c3 = food('Тархун 290|820 мл', '299|699', 'Пряный тархун в сочетании с лимонным и яблочным соками и газированной водой ')
a1 = food('Каппитан морган кола', '345', 'Ром Капитан Морган Пряный Золотой, Кока–Кола')
a2 = food('Дюарс хайбол', '355', 'Дюарс Уайт Лэйбл, сауэр микс, ванильный сироп, содовая, лайм')
a3 = food('Джек с колой', '355', 'Джек Дэниел’с Олд №7, Кока-Кола')
@bot.message_handler(commands = ['start'])
def first_part(message):
main_markup = types.InlineKeyboardMarkup()
basket = types.InlineKeyboardButton(text = 'Корзина', callback_data = 'basket')
salad = types.InlineKeyboardButton(text = 'Салаты', callback_data = 'salad')
soup = types.InlineKeyboardButton(text = 'Суп', callback_data = 'soup')
pizza = types.InlineKeyboardButton(text = 'Пицца', callback_data = 'pizza')
drink = types.InlineKeyboardButton(text = 'Напитки', callback_data = 'drink')
cocktail = types.InlineKeyboardButton(text = 'Коктели', callback_data = 'cocktail')
alcohol = types.InlineKeyboardButton(text = 'Алькоголь', callback_data = 'alcohol')
main_markup.add(salad, soup, pizza, drink, cocktail, alcohol, basket)
bot.send_message(message.from_user.id, 'Выберите вид еды которую хотите закзать', reply_markup = main_markup)
@bot.callback_query_handler(func = lambda call: True)
def second_part(call):
main_markup = types.InlineKeyboardMarkup()
back = types.InlineKeyboardButton(text = 'Назад', callback_data = 'back')
basket = types.InlineKeyboardButton(text = 'Корзина', callback_data = 'basket')
menu = types.InlineKeyboardButton(text = 'Меню', callback_data = 'menu')
if call.data == 'salad':
bsa1 = types.InlineKeyboardButton(text = sa1.name, callback_data = sa1)
bsa2 = types.InlineKeyboardButton(text = sa2.name, callback_data = sa2)
bsa3 = types.InlineKeyboardButton(text = sa3.name, callback_data = sa3)
main_markup.add(bsa1, bsa2, bsa3)
if call.data == 'soup':
bso1 = types.InlineKeyboardButton(text = so1.name, callback_data = so1)
bso2 = types.InlineKeyboardButton(text = so2.name, callback_data = so2)
bso3 = types.InlineKeyboardButton(text = so3.name, callback_data = so3)
main_markup.add(bso1, bso2, bso3)
if call.data == 'pizza':
bp1 = types.InlineKeyboardButton(text = p1.name, callback_data = p1)
bp2 = types.InlineKeyboardButton(text = p2.name, callback_data = p2)
bp3 = types.InlineKeyboardButton(text = p3.name, callback_data = p3)
main_markup.add(bp1, bp2, bp3)
if call.data == 'drink':
bd1 = types.InlineKeyboardButton(text = d1.name, callback_data = d1)
bd2 = types.InlineKeyboardButton(text = d2.name, callback_data = d2)
bd3 = types.InlineKeyboardButton(text = d3.name, callback_data = d3)
main_markup.add(bd1, bd2, bd3)
if call.data == 'cocktail':
bc1 = types.InlineKeyboardButton(text = c1.name, callback_data = c1)
bc2 = types.InlineKeyboardButton(text = c2.name, callback_data = c2)
bc3 = types.InlineKeyboardButton(text = c3.name, callback_data = c3)
main_markup.add(bc1, bc2, bc3)
if call.data == 'alcohol':
ba1 = types.InlineKeyboardButton(text = a1.name, callback_data = a1)
ba2 = types.InlineKeyboardButton(text = a2.name, callback_data = a2)
ba3 = types.InlineKeyboardButton(text = a3.name, callback_data = a3)
main_markup.add(ba1, ba2, ba3)
main_markup.add(back, basket, menu)
bot.send_message(call.message.chat.id, 'Выберите еду которую хотите заказать', reply_markup = main_markup)
@bot.callback_query_handler(func = lambda call: True)
def third_part(call):
main_markup = types.InlineKeyboardMarkup()
add = types.InlineKeyboardButton(text = 'Добавить в корзину', callback_data = 'add')
back = types.InlineKeyboardButton(text = 'Назад', callback_data = 'back')
basket = types.InlineKeyboardButton(text = 'Корзина', callback_data = 'basket')
menu = types.InlineKeyboardButton(text = 'Меню', callback_data = 'menu')
main_markup.add(back, basket, menu, add)
bot.send_message(call.message.chat.id, f'{call.data.name} {call.data.price}\n{call.data.des}', reply_markup = main_markup)
if __name__ == '__main__':
bot.polling(non_stop = True, interval = 0)