Телеграмм бот расписания

Erstellt am: 26. Januar 2025

Beantwortet mit O1 von Chat01

Frage

import telebot
from telebot import types

TOKEN = '7628698933:AAHKH2UAkF_KVteNYL3zpLSkgitjPw3M09A'

bot = telebot.TeleBot(TOKEN)

ponedelnik=["1.Разговоры о важном\n2.Литература\n3.Физика\n4.Геометрия\n5.Алгебра и Начало мат анализа\n6.Обществознание\n7.Русский язык"]
vtornik=["1.История\n2.География\n3.ОБЖ\n4.Физика\n5.Геометрия\n6.Литература\n7.Информатика"]
creda=["1.Информатика\n2.Русский язык\n3.Индивидуальный проэкт\n4.Алгебра и Начало мат анализа\n5.Физика\n6.Лабраторный практикум по физике\n7.Биология"]
chetverg=["1.Английский язык\n2.Обществознание\n3.История\n4.Литература\n5.Физкультура\n6.Информатика\n7.Алгебра и начало мат. анализа"]
pyanisa=["1.Английский язык\n2.Физика\n3.Информатика\n4.Геометрия\n5.Алгебра и начало мат. анализа\n6.Вероятность и статистика\n7.Химия"]

def rasp(message):
if message.text == 'Понедельник':
bot.send_message(message.chat.id, ponedelnik)
if message.text == 'Вторник':
bot.send_message(message.chat.id, vtornik)
if message.text == 'Среда':
bot.send_message(message.chat.id, creda)
if message.text == 'Четверг':
bot.send_message(message.chat.id, chetverg)
if message.text == 'Пятница':
bot.send_message(message.chat.id, pyanisa)
bot.register_next_step_handler(message, rasp)

text
if message.text == 'Главная': markup = types.ReplyKeyboardMarkup(resize_keyboard=True) item1 = types.KeyboardButton('Расписание уроков') item2 = types.KeyboardButton('Столовая') item3 = types.KeyboardButton('Праздники, каникулы') markup.add(item1, item2, item3) bot.send_message(message.chat.id, 'Ты вернулся в главное меню') bot.send_message(message.chat.id, 'Выбери что бы ты хотел узнать:', reply_markup=markup) bot.register_next_step_handler(message, raspisanie) bot.clear_step_handler(message)

@bot.message_handler(commands=['start'])
def start(message):
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
item1 = types.KeyboardButton('Расписание уроков')
item2 = types.KeyboardButton('Столовая')
item3 = types.KeyboardButton('Праздники, каникулы')
markup.add(item1, item2, item3)
bot.send_message(message.chat.id, 'Привет, {0.first_name}!'.format(message.from_user))
bot.send_message(message.chat.id, 'Выбери что бы ты хотел узнать:', reply_markup=markup)

@bot.message_handler(content_types=['text'])
def raspisanie (message):
if message.text == 'Расписание уроков':
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
item1 = types.KeyboardButton('Понедельник')
item2 = types.KeyboardButton('Вторник',)
item3 = types.KeyboardButton('Среда')
item4 = types.KeyboardButton('Четверг')
item5 = types.KeyboardButton('Пятница')
back = types.KeyboardButton('Главная')
markup.add(item1, item2, item3, item4, item5, back)
bot.send_message(message.chat.id, 'Ты зашёл в меню «расписание уроков»!')
bot.send_message(message.chat.id, 'Выбери день недели', reply_markup=markup)
bot.register_next_step_handler(message, rasp)

@bot.message_handler(content_types=['text'])
def prezent(message):
if message.text == 'Праздники, каникулы':
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
item1 = types.KeyboardButton('Расписание уроков')
item2 = types.KeyboardButton('Столовая')
item3 = types.KeyboardButton('Праздники, каникулы')
markup.add(item1, item2, item3)
bot.send_message(message.chat.id, 'Привет, {0.first_name}!'.format(message.from_user))
bot.send_message(message.chat.id, 'Выбери что бы ты хотел узнать:', reply_markup=markup)

bot.polling(none_stop=True) исправить код по критерям: там при команде /start появляется 3 кнопки, кнопка расписание уроков работает полностью и настроена, но при этом не работают остальные две, мне нужно чтобы на кнопку столовая выводилось как и в расписании уроков кнопки с днями недели и кнопка главная, а также чтобы нажимая на эти кнопки выводилось расписание питание на каждый день недели тип, само расписание я сам добавлю, а на кнопку Праздники, каникулы должна выводиться фотка которую я кинул тебе вместе с кодом и сообщение которое я тож сам добавлю, и после вывода фотки, должны остаться кнопки которые в главном меню

Gedanke

Addressing bot functionality

I’m focusing on debugging the bot for the "Столовая" and "Праздники, каникулы" buttons. The aim is to show a week schedule for the cafeteria and send a holiday photo with a message for the latter.

Piecing together the requirements

The bot has handlers for /start, lesson schedule, and holidays. The "Столовая" button lacks functionality, needing a handler for the canteen schedule.

Streamlining message handling

I’m aiming to consolidate message handlers with a single if-else structure to prevent conflicts and ensure all buttons function properly. This leads me to consider both specialized and unified approaches.

Integrating main menu

I’m mapping out how to bring all handler functions together in main_logic for clarity and ease, ensuring the bot's flow is straightforward and efficient for all users.

Simplifying user experience

I’m combining handlers for "Расписание уроков" and "Столовая" in main_logic to streamline the bot experience. The bot now shows a day-of-week markup with a "Главная" button for the canteen schedule.

Clarifying functionality

I’m streamlining the bot by merging overlapping message handlers and addressing issues. The bot now clarifies next steps with "rasp" or "canteen" depending on the user's choice.

Navigating state conflicts

I’m considering simplifying the code by managing button presses within a single function with an if-else structure, preventing state conflicts and streamlining the logic for better handling of user interactions.

Enhancing functionality

I’m unifying message handling with a single function, incorporating if-else logic to manage main menu displays, schedule previews, and holiday messages, ensuring a cohesive and efficient user experience.

Crafting the final code

I’m finalizing the code by integrating all buttons into a single function, ensuring each has clear logic for handling main menu displays and specific day-of-week schedules, including placeholders for cafeteria data.

Crafting the canteen function

I’m mapping out the canteen_handler to manage daily and main menu interactions, ensuring a streamlined approach. It will offer a precise, user-friendly experience, addressing the need for efficiency.

Crafting the final version

I’m honing the bot's main logic, emphasizing a single function for clarity and avoiding clutter. This approach will ensure a smoother user experience and easier maintenance.

Thought about bot menu functionality für 52 Sekunden

Antwort

Ниже приведён один из вариантов кода, в котором все три главные кнопки работают по требуемой логике.
Обратите внимание на следующие моменты:

  1. Используется один основной @bot.message_handler(content_types=['text']), в котором проверяем, какую кнопку нажал пользователь, и в зависимости от этого вызываем разные вспомогательные функции.
  2. Для кнопок «Расписание уроков» и «Столовая» используются next_step_handler-функции (rasp и canteen соответственно) для работы с днями недели.
  3. Для кнопки «Праздники, каникулы» мы отправляем фотографию и сообщение, при этом выводим те же кнопки главного меню.
  4. Вам остаётся лишь добавить/заменить тексты для расписания столовой и текст/фотографию в разделе «Праздники, каникулы» на свои.
python
import telebot from telebot import types TOKEN = 'ВАШ_ТОКЕН_СЮДА' bot = telebot.TeleBot(TOKEN) # Расписание уроков ponedelnik = ["1.Разговоры о важном\n2.Литература\n3.Физика\n4.Геометрия\n5.Алгебра и Начало мат анализа\n6.Обществознание\n7.Русский язык"] vtornik = ["1.История\n2.География\n3.ОБЖ\n4.Физика\n5.Геометрия\n6.Литература\n7.Информатика"] creda = ["1.Информатика\n2.Русский язык\n3.Индивидуальный проект\n4.Алгебра и Начало мат анализа\n5.Физика\n6.Лабораторный практикум по физике\n7.Биология"] chetverg = ["1.Английский язык\n2.Обществознание\n3.История\n4.Литература\n5.Физкультура\n6.Информатика\n7.Алгебра и начало мат. анализа"] pyanisa = ["1.Английский язык\n2.Физика\n3.Информатика\n4.Геометрия\n5.Алгебра и начало мат. анализа\n6.Вероятность и статистика\n7.Химия"] # Расписание столовой (примерные заглушки, замените своими данными) canteen_ponedelnik = ["Завтрак: ...\nОбед: ...", "Что-то ещё..."] canteen_vtornik = ["Завтрак: ...\nОбед: ...", "Что-то ещё..."] canteen_creda = ["Завтрак: ...\nОбед: ...", "Что-то ещё..."] canteen_chetverg = ["Завтрак: ...\nОбед: ...", "Что-то ещё..."] canteen_pyanisa = ["Завтрак: ...\nОбед: ...", "Что-то ещё..."] # Главное меню (функция, чтобы избежать дублирования) def main_menu_markup(): markup = types.ReplyKeyboardMarkup(resize_keyboard=True) item1 = types.KeyboardButton('Расписание уроков') item2 = types.KeyboardButton('Столовая') item3 = types.KeyboardButton('Праздники, каникулы') markup.add(item1, item2, item3) return markup # Функция, которая показывает расписание уроков выбранного дня def rasp(message): # Обработка дней недели: if message.text == 'Понедельник': bot.send_message(message.chat.id, "\n".join(ponedelnik)) bot.register_next_step_handler(message, rasp) # Ждём следующего сообщения снова в rasp elif message.text == 'Вторник': bot.send_message(message.chat.id, "\n".join(vtornik)) bot.register_next_step_handler(message, rasp) elif message.text == 'Среда': bot.send_message(message.chat.id, "\n".join(creda)) bot.register_next_step_handler(message, rasp) elif message.text == 'Четверг': bot.send_message(message.chat.id, "\n".join(chetverg)) bot.register_next_step_handler(message, rasp) elif message.text == 'Пятница': bot.send_message(message.chat.id, "\n".join(pyanisa)) bot.register_next_step_handler(message, rasp) elif message.text == 'Главная': # Возвращаемся в главное меню bot.send_message(message.chat.id, "Ты вернулся в главное меню", reply_markup=main_menu_markup()) # Чтобы выйти из цикла next_step_handler, очистим step-хендлер bot.clear_step_handler_by_chat_id(chat_id=message.chat.id) else: # Если пользователь ввёл что-то другое — переспрашиваем bot.send_message(message.chat.id, "Пожалуйста, выбери день недели или 'Главная'.") bot.register_next_step_handler(message, rasp) # Функция, которая показывает расписание столовой выбранного дня def canteen(message): if message.text == 'Понедельник': bot.send_message(message.chat.id, "\n".join(canteen_ponedelnik)) bot.register_next_step_handler(message, canteen) elif message.text == 'Вторник': bot.send_message(message.chat.id, "\n".join(canteen_vtornik)) bot.register_next_step_handler(message, canteen) elif message.text == 'Среда': bot.send_message(message.chat.id, "\n".join(canteen_creda)) bot.register_next_step_handler(message, canteen) elif message.text == 'Четверг': bot.send_message(message.chat.id, "\n".join(canteen_chetverg)) bot.register_next_step_handler(message, canteen) elif message.text == 'Пятница': bot.send_message(message.chat.id, "\n".join(canteen_pyanisa)) bot.register_next_step_handler(message, canteen) elif message.text == 'Главная': # Возвращаемся в главное меню bot.send_message(message.chat.id, "Ты вернулся в главное меню", reply_markup=main_menu_markup()) bot.clear_step_handler_by_chat_id(chat_id=message.chat.id) else: bot.send_message(message.chat.id, "Пожалуйста, выбери день недели или 'Главная'.") bot.register_next_step_handler(message, canteen) @bot.message_handler(commands=['start']) def start(message): bot.send_message( message.chat.id, f'Привет, {message.from_user.first_name}!', reply_markup=main_menu_markup() ) bot.send_message(message.chat.id, 'Выбери, что бы ты хотел узнать:') @bot.message_handler(content_types=['text']) def main_handler(message): if message.text == 'Расписание уроков': # Показываем кнопки дней недели + "Главная" markup = types.ReplyKeyboardMarkup(resize_keyboard=True) markup.add('Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Главная') bot.send_message(message.chat.id, "Ты зашёл в меню «Расписание уроков»!") bot.send_message(message.chat.id, "Выбери день недели:", reply_markup=markup) bot.register_next_step_handler(message, rasp) elif message.text == 'Столовая': # Аналогично расписанию уроков, но для столовой markup = types.ReplyKeyboardMarkup(resize_keyboard=True) markup.add('Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Главная') bot.send_message(message.chat.id, "Ты зашёл в меню «Столовая»!") bot.send_message(message.chat.id, "Выбери день недели:", reply_markup=markup) bot.register_next_step_handler(message, canteen) elif message.text == 'Праздники, каникулы': # Отправляем фото и сообщение # (Замените 'holiday.png' на путь/название вашего файла, # или используйте урл/ByteIO, если у вас другое хранение) with open('holiday.png', 'rb') as photo: bot.send_photo(message.chat.id, photo) bot.send_message(message.chat.id, "Здесь будет ваше сообщение о праздниках/каникулах!") # Возвращаем пользователю те же кнопки главного меню bot.send_message(message.chat.id, "Главное меню:", reply_markup=main_menu_markup()) else: # Если нажали что-то не из меню, просто возвращаем в главное меню bot.send_message(message.chat.id, "Неизвестная команда. Возвращаю в главное меню:", reply_markup=main_menu_markup()) bot.polling(none_stop=True)

Как работает данный код

  1. При /start или неизвестной команде выводится главное меню с тремя кнопками:
    • Расписание уроков
    • Столовая
    • Праздники, каникулы
  2. Расписание уроков и Столовая переведут бота в режим, когда он ждёт, какой день недели вы выберете. После выбора дня отправляется соответствующее расписание.
  3. В обоих подменю есть кнопка «Главная», которая возвращает пользователя обратно в главное меню и сбрасывает next_step_handler.
  4. Праздники, каникулы отправляет фотографию и сообщение, после чего остаётся в главном меню без перехода в дополнительную логику.

При необходимости можно дополнять логику, изменять тексты, пути к фотографиям, и т.д. Главное — структура и вызов bot.register_next_step_handler(message, нужная_функция) сделаны так, чтобы разные разделы (расписание/столовая) не мешали друг другу, и чтобы при нажатии «Главная» пользователь возвращался на основной экран.

Frage

выскакивает Ты зашёл в меню «Расписание уроков»! фикс

Gedanke

Interpreting the request

I’m assessing how to address the unclear need for refined phrasing or adjusting text in a messaging context. Options include omitting the message or fixing grammatical errors, like changing quotes or text.

Thought about bot message issue für 5 Sekunden

Antwort

Если вам не нужно, чтобы при нажатии «Расписание уроков» выводилось сообщение «Ты зашёл в меню «Расписание уроков»!», просто удалите или измените соответствующий вызов bot.send_message() в обработчике.

Например, вот как можно убрать его полностью или заменить на более лаконичное сообщение:

python
@bot.message_handler(content_types=['text']) def main_handler(message): if message.text == 'Расписание уроков': markup = types.ReplyKeyboardMarkup(resize_keyboard=True) markup.add('Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Главная') # Убрали «Ты зашёл в меню «Расписание уроков»!»: # bot.send_message(message.chat.id, "Ты зашёл в меню «Расписание уроков»!") # Оставили только одно сообщение: bot.send_message(message.chat.id, "Выбери день недели:", reply_markup=markup) bot.register_next_step_handler(message, rasp) elif message.text == 'Столовая': markup = types.ReplyKeyboardMarkup(resize_keyboard=True) markup.add('Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Главная') bot.send_message(message.chat.id, "Выбери день недели:", reply_markup=markup) bot.register_next_step_handler(message, canteen) elif message.text == 'Праздники, каникулы': # тут логика для праздников, фото и т.д. pass else: # любое другое сообщение возвращает в главное меню pass

Так бот не будет присылать фразу «Ты зашёл в меню «Расписание уроков»!», а сразу покажет кнопки выбора дня недели.

Если же вы хотите лишь поправить текст (к примеру, поменять кавычки), можете оставить эту строчку, но переписать её, например, так:

python
bot.send_message(message.chat.id, "Вы выбрали меню 'Расписание уроков'!")

или

python
bot.send_message(message.chat.id, "Вы находитесь в разделе «Расписание уроков».")

Таким образом вы устраните нежелательный текст или замените его на более подходящий.

Frage

отправляется сообщение "Ты зашёл в меню «Расписание уроков»!" нужно сделать чтобы было только "Расписание уроков"

Gedanke

Refining the message

I’m simplifying the message to align with the user's request, ensuring the content focuses solely on "Расписание уроков" and integrates harmoniously with the daily schedule.

Thought about message content adjustment für 7 Sekunden

Antwort

Чтобы при нажатии кнопки «Расписание уроков» бот отправлял только одно сообщение «Расписание уроков» (и не отправлял «Ты зашёл в меню «Расписание уроков»!»), найдите соответствующее место в функции, которая обрабатывает нажатие кнопок (вероятно, это main_handler), и измените эти строки:

python
if message.text == 'Расписание уроков': markup = types.ReplyKeyboardMarkup(resize_keyboard=True) markup.add('Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Главная') # УДАЛИТЕ или закомментируйте старое сообщение: # bot.send_message(message.chat.id, "Ты зашёл в меню «Расписание уроков»!") # ИСПОЛЬЗУЙТЕ одно новое сообщение: bot.send_message(message.chat.id, "Расписание уроков", reply_markup=markup) bot.register_next_step_handler(message, rasp)

Если вам нужно, чтобы в этом же сообщении была подсказка «Выбери день недели:», можете объединить:

python
bot.send_message(message.chat.id, "Расписание уроков\n\nВыбери день недели:", reply_markup=markup)

Таким образом бот будет отправлять только одно нужное вам сообщение (без лишнего текста) и показывать клавиатуру с днями недели.

Frage

фиксани в полном коде

Gedanke

Refining the interface

I suggested removing the "Ты зашёл в меню «Расписание уроков»!" phrase to streamline the user experience, replacing it with just "Расписание уроков" or a similar concise phrase.

Enhancing clarity

I noticed the code now uses "Расписание уроков" instead of "Ты зашёл в меню «Расписание уроков»!" to streamline the user interface, ensuring a more concise interaction.

Gedanken für 9 Sekunden

Antwort

Ниже приведён полный код, в котором убрано сообщение «Ты зашёл в меню «Расписание уроков»!» и вместо него выводится только «Расписание уроков». Аналогично для «Столовая» выводится одно сообщение. В остальном логика осталась прежней.
Обратите внимание, что в блоке «Праздники, каникулы» указан пример с отправкой картинки holiday.png – при необходимости замените это на свой файл или URL.

python
import telebot from telebot import types TOKEN = 'ВАШ_ТОКЕН_СЮДА' bot = telebot.TeleBot(TOKEN) # Расписание уроков ponedelnik = [ "1. Разговоры о важном", "2. Литература", "3. Физика", "4. Геометрия", "5. Алгебра и Начало мат анализа", "6. Обществознание", "7. Русский язык" ] vtornik = [ "1. История", "2. География", "3. ОБЖ", "4. Физика", "5. Геометрия", "6. Литература", "7. Информатика" ] creda = [ "1. Информатика", "2. Русский язык", "3. Индивидуальный проект", "4. Алгебра и Начало мат анализа", "5. Физика", "6. Лабораторный практикум по физике", "7. Биология" ] chetverg = [ "1. Английский язык", "2. Обществознание", "3. История", "4. Литература", "5. Физкультура", "6. Информатика", "7. Алгебра и начало мат. анализа" ] pyanisa = [ "1. Английский язык", "2. Физика", "3. Информатика", "4. Геометрия", "5. Алгебра и начало мат. анализа", "6. Вероятность и статистика", "7. Химия" ] # Расписание столовой (пример; замените содержимое своими данными) canteen_ponedelnik = [ "Завтрак: ...\nОбед: ...\nПолдник: ...", "Другое блюдо, десерт..." ] canteen_vtornik = [ "Завтрак: ...\nОбед: ...\nПолдник: ...", "Другое блюдо, десерт..." ] canteen_creda = [ "Завтрак: ...\nОбед: ...\nПолдник: ...", "Другое блюдо, десерт..." ] canteen_chetverg = [ "Завтрак: ...\nОбед: ...\nПолдник: ...", "Другое блюдо, десерт..." ] canteen_pyanisa = [ "Завтрак: ...\nОбед: ...\nПолдник: ...", "Другое блюдо, десерт..." ] # Главное меню (функция для избежания дублирования кода) def main_menu_markup(): markup = types.ReplyKeyboardMarkup(resize_keyboard=True) item1 = types.KeyboardButton('Расписание уроков') item2 = types.KeyboardButton('Столовая') item3 = types.KeyboardButton('Праздники, каникулы') markup.add(item1, item2, item3) return markup # ----------------------------- # # Обработчики для подменю # # ----------------------------- # def rasp(message): """Обработка расписания уроков по дням недели""" if message.text == 'Понедельник': bot.send_message(message.chat.id, "\n".join(ponedelnik)) bot.register_next_step_handler(message, rasp) elif message.text == 'Вторник': bot.send_message(message.chat.id, "\n".join(vtornik)) bot.register_next_step_handler(message, rasp) elif message.text == 'Среда': bot.send_message(message.chat.id, "\n".join(creda)) bot.register_next_step_handler(message, rasp) elif message.text == 'Четверг': bot.send_message(message.chat.id, "\n".join(chetverg)) bot.register_next_step_handler(message, rasp) elif message.text == 'Пятница': bot.send_message(message.chat.id, "\n".join(pyanisa)) bot.register_next_step_handler(message, rasp) elif message.text == 'Главная': bot.send_message(message.chat.id, "Ты вернулся в главное меню", reply_markup=main_menu_markup()) bot.clear_step_handler_by_chat_id(chat_id=message.chat.id) else: bot.send_message(message.chat.id, "Пожалуйста, выбери день недели или 'Главная'.") bot.register_next_step_handler(message, rasp) def canteen(message): """Обработка расписания столовой по дням недели""" if message.text == 'Понедельник': bot.send_message(message.chat.id, "\n".join(canteen_ponedelnik)) bot.register_next_step_handler(message, canteen) elif message.text == 'Вторник': bot.send_message(message.chat.id, "\n".join(canteen_vtornik)) bot.register_next_step_handler(message, canteen) elif message.text == 'Среда': bot.send_message(message.chat.id, "\n".join(canteen_creda)) bot.register_next_step_handler(message, canteen) elif message.text == 'Четверг': bot.send_message(message.chat.id, "\n".join(canteen_chetverg)) bot.register_next_step_handler(message, canteen) elif message.text == 'Пятница': bot.send_message(message.chat.id, "\n".join(canteen_pyanisa)) bot.register_next_step_handler(message, canteen) elif message.text == 'Главная': bot.send_message(message.chat.id, "Ты вернулся в главное меню", reply_markup=main_menu_markup()) bot.clear_step_handler_by_chat_id(chat_id=message.chat.id) else: bot.send_message(message.chat.id, "Пожалуйста, выбери день недели или 'Главная'.") bot.register_next_step_handler(message, canteen) # ----------------------------- # # Основные хендлеры # # ----------------------------- # @bot.message_handler(commands=['start']) def start(message): """Первый запуск бота или команда /start""" bot.send_message( message.chat.id, f'Привет, {message.from_user.first_name}!', reply_markup=main_menu_markup() ) bot.send_message(message.chat.id, 'Выбери, что бы ты хотел узнать:') @bot.message_handler(content_types=['text']) def main_handler(message): """Обрабатывает нажатия основных кнопок главного меню.""" if message.text == 'Расписание уроков': # Создаём клавиатуру с днями недели markup = types.ReplyKeyboardMarkup(resize_keyboard=True) markup.add('Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Главная') # Только одно сообщение «Расписание уроков»: bot.send_message(message.chat.id, "Расписание уроков", reply_markup=markup) # После этого бот ждёт выбора дня недели в функции rasp bot.register_next_step_handler(message, rasp) elif message.text == 'Столовая': # Аналогичный подход для столовой markup = types.ReplyKeyboardMarkup(resize_keyboard=True) markup.add('Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Главная') bot.send_message(message.chat.id, "Столовая", reply_markup=markup) # После этого бот ждёт выбора дня недели в функции canteen bot.register_next_step_handler(message, canteen) elif message.text == 'Праздники, каникулы': # Пример отправки изображения (holiday.png) и сообщения # Замените holiday.png на свой файл, если нужно with open('holiday.png', 'rb') as photo: bot.send_photo(message.chat.id, photo) bot.send_message(message.chat.id, "Здесь будет ваше сообщение о праздниках/каникулах!") # Показываем снова главное меню bot.send_message(message.chat.id, "Главное меню:", reply_markup=main_menu_markup()) else: # Если ввели что-то другое — возвращаем в главное меню bot.send_message( message.chat.id, "Неизвестная команда. Возвращаю в главное меню:", reply_markup=main_menu_markup() ) bot.polling(none_stop=True)

Что изменено:

  • Убрали строку bot.send_message(message.chat.id, "Ты зашёл в меню «Расписание уроков»!"),
    вместо неё теперь отправляется одно сообщение:
    python
    bot.send_message(message.chat.id, "Расписание уроков", reply_markup=markup)
  • Аналогично для «Столовая» выводится только «Столовая», а не два сообщения.
  • Остальная логика и структура бота сохранены.

Diesen Q&A teilen