Как объяснить боту, что это разные команды?
Хотел сделать бота с расписанием пар для каждой группы. Но когда выбираешь, условно, понедельник он скидывает расписание той группы, которая в коде идем первой. Объяснил вроде не очень понятно, но надеюсь вы сможете помочь)
@dp.message_handler(lambda message: message.text =='КСК')
async def KSK(message: types.Message):
keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
button_1 = types.KeyboardButton(text="115")
keyboard.add(button_1)
button_2 = "116"
keyboard.add(button_2)
button_3 = "105"
keyboard.add(button_3)
await message.answer("Ваша группа", reply_markup=keyboard)
@dp.message_handler(lambda message: message.text =='115')
async def MYgorup(message: types.Message):
keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
button_1 = types.KeyboardButton(text="Понедельник")
keyboard.add(button_1)
button_2 = "Вторник"
keyboard.add(button_2)
button_3 = "Среда"
keyboard.add(button_3)
button_3 = "Четверг"
keyboard.add(button_3)
button_3 = "Пятница"
keyboard.add(button_3)
button_3 = "Суббота"
keyboard.add(button_3)
await message.answer("День недели", reply_markup=keyboard)
@dp.message_handler(lambda message: message.text =='Понедельник')
async def Ponedelnik(message: types.Message):
await message.answer("1 - 321 Физика Бабченко Т.Н\n2 - 313|322 Родной язык Хуснуллина З.М., Шириева Г.М\n3 - 309 Математика Габдулхакова Г.Р.")
@dp.message_handler(lambda message: message.text =='Вторник')
async def Vtornik(message: types.Message):
await message.answer("1 - 425 Химия\n2 - 309 Математика")
@dp.message_handler(lambda message: message.text =='Среда')
async def Sreda(message: types.Message):
await message.answer("1 -311 Информатика\n2 - c/з Физическая культура|309 Математика\n3 - 407|405 Иностранный язык\n4 - 205 Основы безопасности жизнедеятельности")
@dp.message_handler(lambda message: message.text =='Четверг')
async def Setverg(message: types.Message):
await message.answer("1 - 426 Литература, 405|407 иностранный язык\n2 - 413 Астрономия 1-16 нед|Физика 17-23 нед\n3 - 426 Русский язы\n4 - 419 История")
@dp.message_handler(lambda message: message.text =='Пятница')
async def Friday(message: types.Message):
await message.answer("\n\n 3 - 309 Математика\n4 - 426 Литература")
@dp.message_handler(lambda message: message.text =='Суббота')
async def Sibbota(message: types.Message):
await message.answer("1 - с/з Физическая культура\2 - 311 Информатика\n3 - 419 История")
@dp.message_handler(lambda message: message.text =='116')
async def Denssec(message: types.Message):
keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
button_1 = types.KeyboardButton(text="Понедельник")
keyboard.add(button_1)
button_2 = "Вторник"
keyboard.add(button_2)
button_3 = "Среда"
keyboard.add(button_3)
button_3 = "Четверг"
keyboard.add(button_3)
button_3 = "Пятница"
keyboard.add(button_3)
button_3 = "Суббота"
keyboard.add(button_3)
await message.answer("День недели", reply_markup=keyboard)
Ответы (1 шт):
Автор решения: oleksandrigo
→ Ссылка
Ну к примеру вот так
from aiogram import Bot, Dispatcher, executor
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram.dispatcher.filters.state import State, StatesGroup
from aiogram.dispatcher.storage import FSMContext
from aiogram.utils.exceptions import MessageTextIsEmpty
from aiogram import types
import config
bot = Bot(token=config.BOT_TOKEN)
storage = MemoryStorage()
dp = Dispatcher(bot, storage=storage)
data_lessons = {
"105": {
"monday":
"",
"tuesday":
"",
"wednesday":
"",
"thursday":
"",
"friday":
"",
"saturday":
""
},
"115": {
"monday":
"1 - 321 Физика Бабченко Т.Н\n"
"2 - 313|322 Родной язык Хуснуллина З.М., Шириева Г.М\n"
"3 - 309 Математика Габдулхакова Г.Р.",
"tuesday":
"1 - 425 Химия\n"
"2 - 309 Математика",
"wednesday":
"1 -311 Информатика\n"
"2 - c/з Физическая культура|309 Математика\n"
"3 - 407|405 Иностранный язык\n"
"4 - 205 Основы безопасности жизнедеятельности",
"thursday":
"1 - 426 Литература, 405|407 иностранный язык\n"
"2 - 413 Астрономия 1-16 нед|Физика 17-23 нед\n"
"3 - 426 Русский язы\n"
"4 - 419 История",
"friday":
"\n\n 3 - 309 Математика\n"
"4 - 426 Литература",
"saturday":
"1 - с/з Физическая культура\n"
"2 - 311 Информатика\n"
"3 - 419 История"
},
"116": {
"monday":
"",
"tuesday":
"",
"wednesday":
"",
"thursday":
"",
"friday":
"",
"saturday":
""
}
}
class Lessons(StatesGroup):
input_group = State()
input_auditory = State()
@dp.message_handler(text='КСК')
async def chiose_group(message: types.Message):
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
markup.add("105", "115", "116")
await message.answer("Выберите вашу группу", reply_markup=markup)
await Lessons.input_group.set()
@dp.message_handler(text=list(data_lessons.keys()), state=Lessons.input_group)
async def choise_weekday(message: types.Message, state: FSMContext):
async with state.proxy() as data:
data['choise_group'] = message.text
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
markup.add("Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота")
markup.add("Назад")
await message.answer("Выберите день недели", reply_markup=markup)
await Lessons.next()
@dp.message_handler(text="Назад", state=Lessons.input_auditory)
async def back_but(message: types.Message, state: FSMContext):
await state.reset_data()
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
markup.add("105", "115", "116")
await message.answer("Выберите вашу группу", reply_markup=markup)
await Lessons.previous()
@dp.message_handler(text=["Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"],
state=Lessons.input_auditory)
async def choise_auditory(message: types.Message, state: FSMContext):
dict_ = {
"Понедельник": "monday",
"Вторник": "tuesday",
"Среда": "wednesday",
"Четверг": "thursday",
"Пятница": "friday",
"Суббота": "saturday"
}
async with state.proxy() as data:
try:
await message.answer(f'{data_lessons[data["choise_group"]][dict_[message.text]]}')
except MessageTextIsEmpty:
await message.answer("В словаре нет текта")
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)