Есть бот, который проводит консультацию по заболеваниям животных в дельфинарии. Можно ли как то с помощью базы данных вытаскивать последовательность ответов пользователя и в конце на основании всех ответов выводит какой то текст. Например при нажатии на кнопки "Дельфин", "37.1-38", "Да" выводилось сообщение "Предположительный диагноз: отравление".
import telebot
import config
token =('')
bot=telebot.TeleBot(token)
from telebot import types
bot = telebot.TeleBot(config.TOKEN)
@bot.message_handler(commands=['start'])
def welcome(message):
# 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Я - {1.first_name} бот, который поможет разобраться с самочувствием млекопитающих в вашем дельфинарии.".format(message.from_user, bot.get_me()), reply_markup=markup)
@bot.message_handler(content_types=['text'])
def lalala(message):
if message.text == "Номер ветеринарной клиники":
markup = types.InlineKeyboardMarkup()
item1 = types.InlineKeyboardButton("Набережные Челны", callback_data='Naberezhnye Chelny')
item2 = types.InlineKeyboardButton("Анапа", callback_data='Anapa')
markup.add(item1, item2)
bot.send_message(message.chat.id, "Выберите нужный город", reply_markup=markup)
elif message.text == "Провести консультацию":
markup = types.InlineKeyboardMarkup()
item1 = types.InlineKeyboardButton("Дельфин", callback_data='Dolphin')
item2 = types.InlineKeyboardButton("Морской котик", callback_data='Ful seal')
markup.add(item1, item2)
bot.send_message(message.chat.id, "Выберите животное", reply_markup=markup)
@bot.callback_query_handler(func=lambda call: True)
def tempo(call):
if call.data == 'Naberezhnye Chelny':
bot.send_message(call.message.chat.id, text='Ветеринарный центр ')
elif call.data == 'Anapa':
bot.send_message(call.message.chat.id, text='Ветеринарная клиника')
if call.data == 'Dolphin':
keyboard = types.InlineKeyboardMarkup()
item1 = types.InlineKeyboardButton("36-37", callback_data='Normal')
item2 = types.InlineKeyboardButton("37.1-38", callback_data='Middling')
item3 = types.InlineKeyboardButton("38.1-39", callback_data='Hight')
keyboard.add(item1, item2, item3)
bot.send_message(call.message.chat.id, text='Выберите температуру тела у дельфина', reply_markup=keyboard)
elif call.data == 'Ful seal':
keyboard = types.InlineKeyboardMarkup()
item1 = types.InlineKeyboardButton("38-39", callback_data='Normal')
item2 = types.InlineKeyboardButton("39.1-41", callback_data='Middling')
item3 = types.InlineKeyboardButton("41.1-43", callback_data='Hight')
keyboard.add(item1, item2, item3)
bot.send_message(call.message.chat.id, text='Выберите температуру тела у морского котика', reply_markup=keyboard)
if call.data == 'Normal' or call.data == 'Middling':
keyboard = types.InlineKeyboardMarkup()
item1 = types.InlineKeyboardButton("Да", callback_data='Yes')
item2 = types.InlineKeyboardButton("Нет", callback_data='No')
keyboard.add(item1, item2)
bot.send_message(call.message.chat.id, text='Была ли рвота у животного в последние 3 дня?', reply_markup=keyboard)
elif call.data == 'Hight':
bot.send_message(call.message.chat.id, text='У животного слишком высокая температура.Выберите пункт "Номер ветеринарной клиники" и обратитесь к врачу')
if call.data == 'No':
keyboard = types.InlineKeyboardMarkup()
item1 = types.InlineKeyboardButton("Да", callback_data='Yes1')
item2 = types.InlineKeyboardButton("Нет", callback_data='No1')
keyboard.add(item1, item2)
bot.send_message(call.message.chat.id, text='Появились ли у животного красные пятна на теле, зуд кожи?', reply_markup=keyboard)
elif call.data == 'Yes':
bot.send_message(call.message.chat.id, text='Учитывая наличие повышенной темпераутры и наличие рвоты в последние 3 дня предположительный диагноз: отравление.')
if call.data == 'No1':
bot.send_message(call.message.chat.id, text='Данных полученных во время консультации не достаточно для поставки точного диагноза. Выберите пункт меню "Номер ветеринарной клиники" и свяжитесь с специалистом.')
elif call.data == 'Yes1':
bot.send_message(call.message.chat.id, text='Учитывая наличие повышенной температуры и появление красных пятен и зуда кожи предположительный диагноз: аллергия.')
bot.polling(none_stop=True)