From aaae073b37b3f4f9e70c69df31807d01d7d83f4b Mon Sep 17 00:00:00 2001 From: Ilya_Chis Date: Tue, 4 Feb 2025 15:45:09 +0500 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BA=D0=BD=D0=BE=D0=BF=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=9E=20=D0=9A=D0=BB=D0=B8=D0=BD=D0=B8=D0=BA=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BotPM.py | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 87 insertions(+), 4 deletions(-) diff --git a/BotPM.py b/BotPM.py index dfa55fa..3a42def 100644 --- a/BotPM.py +++ b/BotPM.py @@ -38,7 +38,7 @@ last_bot_message_id = {} # Авторизация и доступ к таблице scope = ["https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/drive"] -credentials = ServiceAccountCredentials.from_json_keyfile_name("botforclinic-436512-0c117dd103a8.json", scope) +credentials = ServiceAccountCredentials.from_json_keyfile_name(r"C:\Users\ilyac\PycharmProjects\Bot_Polimed\botforclinic-436512-0c117dd103a8.json", scope) client = gspread.authorize(credentials) sheet = client.open("Пациенты клиники").sheet1 # Открытие таблицы, используйте название вашей таблицы @@ -85,7 +85,9 @@ logging.basicConfig(level=logging.INFO) # Главное меню main_menu = InlineKeyboardMarkup(row_width=2).add( InlineKeyboardButton("🌍 Контакты", callback_data="menu_contacts"), - InlineKeyboardButton("📞 Связь", callback_data="menu_contact") + InlineKeyboardButton("📞 Связь", callback_data="menu_contact"), + InlineKeyboardButton("✅ Добавить пациента", callback_data="menu_registration"), + InlineKeyboardButton("🏥 О Клинике", callback_data="o_klinike") ) # Подменю "контакты" @@ -93,15 +95,27 @@ contacts_menu = InlineKeyboardMarkup(row_width=1).add( InlineKeyboardButton("▶️ Назад", callback_data="main_menu") ) +# Подменю "О Клинике" +Klinik_o = InlineKeyboardMarkup(row_width=1).add( + InlineKeyboardButton("▶️ Назад", callback_data="main_menu") +) + # Меню связь contact_menu = InlineKeyboardMarkup(row_width=1).add( InlineKeyboardButton("💬 Отправить сообщение администратору Клиники", callback_data="contact_administrator"), InlineKeyboardButton("🛎 Заказать звонок от администратора Клиники", callback_data="order_call"), - InlineKeyboardButton("▶️ Назад", callback_data="main_menu"), + InlineKeyboardButton("▶️ Назад", callback_data="main_menu") ) +# # Меню Добавить пациента +# registration_menu = InlineKeyboardMarkup(row_width=1).add( +# InlineKeyboardButton(text="Заполнить форму",web_app=WebAppInfo(url=form_url), callback_data="form_regist"), +# InlineKeyboardButton("▶️ Назад", callback_data="main_menu") +# ) + + administrator_contact = InlineKeyboardMarkup(row_width=1).add( InlineKeyboardButton("✍🏼 Написать сообщение", callback_data="message_admin"), InlineKeyboardButton("▶️ Назад", callback_data="menu_contact"), @@ -133,6 +147,10 @@ whatsapp = InlineKeyboardMarkup(row_width=1).add( # Обработка нажатий на инлайн-кнопки @dp.callback_query_handler(lambda c: c.data.startswith("menu_") or c.data == "main_menu") async def handle_main_menu(call: types.CallbackQuery): + user_id = call.from_user.id + + # Генерируем ссылку с user_id + form_url = f"https://tgbotpolimed.pirogov.ai/?user_id={user_id}" if call.data == "main_menu": await call.message.edit_text("В настоящее время я, как Ваш виртуальный помощник, активно развиваюсь." " В ближайшее время у меня появятся новые функции и возможности." @@ -164,6 +182,68 @@ async def handle_main_menu(call: types.CallbackQuery): "Присоединяйтесь к нашему каналу новостей в Telegram.", reply_markup=contacts_menu, parse_mode="HTML") elif call.data == "menu_contact": await call.message.edit_text("Выберите способ связи", reply_markup=contact_menu) + elif call.data == "menu_registration": + await call.message.edit_text("Обращаем Ваше внимание, что добавить можно только тех пациентов, которые ранее уже посещали нашу клинику.\n" + "Для ввода данных, пожалуйста, заполните форму, нажав на кнопку ниже: 'Заполнить форму'\n" + "После заполнения формы вернитесь к боту и нажмите на кнопку ниже: 'Проверить данные'", reply_markup=InlineKeyboardMarkup(row_width=1).add(InlineKeyboardButton(text="Заполнить форму", web_app=WebAppInfo(url=form_url)), + InlineKeyboardButton(text="Проверить данные",callback_data="check_verification"), + InlineKeyboardButton("▶️ Назад", callback_data="main_menu"))) + + + + + + + +# Обработка нажатия на "Запись на исследование" +@dp.callback_query_handler(lambda c: c.data == "form_regist") +async def handle_call_menu(call: types.CallbackQuery): + await call.message.edit_text("После того как Вы заполните форму, нажмите на кнопку ниже для проверки данных.\n" + "Если Вы хотите начать общение с ботом заново, нажмите /start.", reply_markup=InlineKeyboardMarkup().add(InlineKeyboardButton( + text="Проверить данные", + callback_data="check_verification" + ) + ) + ) + + + +# Обработка нажатия на "Запись на исследование" +@dp.callback_query_handler(lambda c: c.data == "o_klinike") +async def klinik_inf(call: types.CallbackQuery): + await call.message.edit_text("Добро пожаловать в специализированную ЛОР-клинику им. проф.Е.Н. Оленевой! 🎉🤗\n\n" + "С 2007 года мы заботимся о здоровье наших пациентов, предоставляя высококачественные медицинские услуги.\n\n" + "✨ Наши преимущества\n" + "🔹Команда из 47 профессиональных специалистов, включая 5 кандидатов медицинских наук и 1 доктора медицинских наук\n" + "🔹Комплексный подход к лечению с учетом индивидуальных особенностей каждого пациента\n" + "🔹Высокое качество первичной диагностики\n" + "🔹Оснащение клиники современным оборудованием экспертного класса\n" + "🔹Прием пациентов всех возрастных категорий\n\n" + "💼Наши услуги\n" + "🔹Прием специалистов: ЛОР-врачи, сурдологи, отоневрологи (вестибулологи), фониатр, пульмонологи, аллергологи-иммунологи\n" + "🔹Диагностика: эндоскопическая диагностика, аудиометрия, тимпанометрия, ОАЭ, УЗИ, ЭКГ, КТ, КСП\n" + "🔹Терапия: ФДТ, АСИТ-терапия, галотерапия\n" + "🔹Хирургия: малоинвазивные ЛОР-операции\n" + "🔹Слухопротезирование: диагностика слуха, подбор слуховых аппаратов\n\n" + "🏢 Наши клиники\n" + "🔹Клиника ухо,горло, нос им. проф. Е.Н. Оленевой\n" + "🔹Клиника лечения кашля и аллергии им. проф. Е.Н. Оленевой\n" + "🔹Центр диагностики и реабилитации им. проф. Е.Н. Оленевой\n\n" + "Работаем 7 дней в неделю для вашего удобства!\n\n" + "🕙 Часы работы\n" + "Пн-пт: 9:00 – 21:00\n" + "Сб-вс: 9:00 – 19:00\n" + "❗️Каждый 4-ый четверг месяца клиника работает до 17:00\n\n" + "📍 Наши адреса\n" + "г. Пермь, ул. Клары Цеткин, 9\n" + "г. Пермь, ул. Газеты Звезда, 31А\n\n" + "📧clinic-lor@mail.ru\n\n\n" + "Будьте здоровы вместе с нами❣️", reply_markup=Klinik_o, parse_mode='HTML') + + + + + # Обработка нажатия на "Запись на исследование" @@ -171,6 +251,9 @@ async def handle_main_menu(call: types.CallbackQuery): async def handle_call_menu(call: types.CallbackQuery): await call.message.edit_text("💬 Для отправки сообщения администратору Клиники нажмите кнопку ниже 'Написать сообщение'.", reply_markup=administrator_contact) + + + # Обработка нажатия на "Запись на исследование" @dp.callback_query_handler(lambda c: c.data == "order_call") async def handle_admin_call_menu(call: types.CallbackQuery): @@ -389,7 +472,7 @@ async def handle_start(message: types.Message, state: FSMContext): await state.storage.reset_data(user=message.from_user.id) # Удаляет все данные пользователя в FSM хранилище # Отправляем фото - with open("s-blob-v1-IMAGE-tdNCrEv8Ldo.png", "rb") as photo: + with open(r"C:\Users\ilyac\PycharmProjects\Bot_Polimed\s-blob-v1-IMAGE-tdNCrEv8Ldo.png", "rb") as photo: await bot.send_photo( chat_id=message.from_user.id, photo=photo,