Знаю, вопрос мегатупой, но на самоизоляции, видимо, мозги атрофировались настолько, что я уже ничего не соображаю.
До последнего не хотел задавать вопрос по настолько тупой проблеме, но нервы уже на исходе.
Пишу бота в телегу на python
import telebot
import config
from telebot import types
bot = telebot.TeleBot(config.TOKEN)
@bot.message_handler(commands=['start'])
def welcome(message):
sti = open('sticker.webp', 'rb')
bot.send_sticker(message.chat.id, sti)
# keyboard
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
item1 = types.KeyboardButton("Я хочу сделать заказ.")
item2 = types.KeyboardButton("Я хочу принять заказ.")
markup.add(item1, item2)
bot.send_message(message.chat.id, "Добро пожаловать, {0.first_name}!\nЯ - <b>{1.first_name}</b>, бот заказчик, ты можешь заказать у меня еду в школьной столовке, после чего твой заказ увидит любой человек из очереди и купит тебе еду.".format(message.from_user, bot.get_me()),
parse_mode='html', reply_markup=markup)
@bot.message_handler(content_types=['text'])
def lalala(message):
if message.chat.type == 'private':
if message.text == 'Я хочу сделать заказ.':
global busket
busket = []
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
item3 = ('Пицца')
item4 = ('☕Чай☕')
item5 = ('Круассан')
item6 = ('Колобок')
item7 = ('Сырная')
item8 = ('Сосиска в тесте')
item9 = ('На этом все')
markup.add(item3, item4, item5, item6, item7, item8, item9)
bot.send_message(message.chat.id, 'Хорошо, что ты хочешь заказать?', reply_markup=markup)
if message.chat.type == 'private':
if message.text == 'Пицца':
busket.append('Пицца,')
elif message.text == '☕Чай☕':
busket.append('☕Чай,')
elif message.text == 'Круассан':
busket.append('Круассан,')
elif message.text == 'Колобок':
busket.append('Колобок,')
elif message.text == 'Сырная':
busket.append('Сырная,')
elif message.text == 'Сосиска в тесте':
busket.append('Сосиска в тесте,')
elif message.text == 'На этом все':
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
item10 = ('Да')
item11 = ('Нет')
markup.add(item10, item11)
answer = ''
for i in busket:
answer += i
bot.send_message(message.chat.id, 'Хорошо, получается ты заказал:' + answer + ' так?', reply_markup=markup)
if message.chat.type == 'private':
if message.text =='Да':
bot.send_message(message.chat.id, 'Отлично, добавляю это в список заказов, жди когда примут.')
# RUN
bot.polling(none_stop=True)
Нужно, чтобы при конечном ответе 'Нет', бот возращался к началу функции def lalala. По началу решил просто переписать
if message.text == 'Я хочу сделать заказ.':
на
if message.text == 'Я хочу сделать заказ.' or 'Нет':
Но после настолько дерзкого хода бот начал отвечать на каждое сообщение 'Хорошо, что ты хочешь заказать?'
Понимаю, что данный вопрос можно решить циклом, но каждая моя попытка завершалась тем, что бот начинал спамить сообщением 'Хорошо, что ты хочешь заказать?'.
В порывах потери надежды, пишу сюда, чтобы здравые умы сие божественного сайта сказали, что надо делать.