diff --git a/BotPM.py b/BotPM.py index b2cacdc..52682e5 100644 --- a/BotPM.py +++ b/BotPM.py @@ -17,6 +17,7 @@ import re from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton, WebAppInfo import logging from aiogram.types import ReplyKeyboardRemove +from aiogram.utils.callback_data import CallbackData TOKEN = '7907319434:AAEEM55xbWHhp5uPAlJ5AS2vNoleES_z_Kk' @@ -144,6 +145,13 @@ whatsapp = InlineKeyboardMarkup(row_width=1).add( ) +# Обработчик команды /menu +@dp.message_handler(Command("menu")) +async def show_menu(message: types.Message): + await message.answer("В настоящее время я, как Ваш виртуальный помощник, активно развиваюсь." + " В ближайшее время у меня появятся новые функции и возможности." + " А пока Вы можете ознакомиться с текущим меню.", reply_markup=main_menu) + # Обработка нажатий на инлайн-кнопки @dp.callback_query_handler(lambda c: c.data.startswith("menu_") or c.data == "main_menu") async def handle_main_menu(call: types.CallbackQuery): @@ -156,8 +164,8 @@ async def handle_main_menu(call: types.CallbackQuery): " В ближайшее время у меня появятся новые функции и возможности." " А пока Вы можете ознакомиться с текущим меню.", reply_markup=main_menu) elif call.data == "menu_contacts": - await call.message.edit_text("Клиники им. проф. Е.Н.Оленевой\n\n" - "Клиника УХО•ГОРЛО•НОС\n" + await call.message.edit_text("Клиники им. проф. Е.Н.Оленевой\n\n" + "Клиника УХО•ГОРЛО•НОС\n" "Записаться на приём, задать вопрос:\n" "📞 +7 (342) 207-03-03\n\n" "Больше информации о клинике и врачах на нашем 🔗САЙТЕ\n" @@ -165,7 +173,7 @@ async def handle_main_menu(call: types.CallbackQuery): "(ост. Строительный факультет)\n" "Построить маршрут\n\n" "--------------\n\n" - "Клиника лечения КАШЛЯ•АЛЛЕРГИИ\n" + "Клиника лечения КАШЛЯ•АЛЛЕРГИИ\n" "Записаться на приём, задать вопрос:\n" "📞 +7 (342) 200-02-03\n\n" "Больше информации о клинике и врачах на нашем 🔗САЙТЕ\n\n" @@ -173,7 +181,7 @@ async def handle_main_menu(call: types.CallbackQuery): "(ост. Г. Звезда)\n" "Построить маршрут\n\n" "--------------\n\n" - "Центр ДИАГНОСТИКИ И РЕАБИЛИТАЦИИ \n" + "Центр ДИАГНОСТИКИ И РЕАБИЛИТАЦИИ \n" "📞 +7 (342) 287-16-94\n\n" "Больше информации о клинике и врачах на нашем 🔗САЙТЕ\n\n" "📍 г. Пермь, ул. Пермь, ул. Г. Звезда, 31А\n" @@ -738,7 +746,31 @@ def find_patient_by_id(telegram_id): return None # Возвращаем None, если номер неправильной длины return None +# Коллбек-дата для кнопок +patient_callback = CallbackData("patient", "index") + +@dp.message_handler(Command("patients")) +async def show_patients(message: types.Message): + telegram_id = message.from_user.id + patients = find_patients_by_id(telegram_id) + + if not patients: + await message.answer("Пациенты с вашим Telegram ID не найдены.") + return + + keyboard = InlineKeyboardMarkup(row_width=3) # Теперь 2 кнопки в строке + buttons = [ + InlineKeyboardButton( + text=patient["ФИО"], + callback_data=patient_callback.new(index=index) + ) + for index, patient in enumerate(patients) + ] + + # Добавляем кнопки в клавиатуру по 2 в строке + keyboard.add(*buttons) + await message.answer("Выберите пациента:", reply_markup=keyboard) def authorize_google():