Не работают команды в телеграм боте

Всем привет. Я недавно начал писать ботов в телеграм (через телебота) И столкнулся с такой проблемой, что добавив меню, у меня перестали работать команды, которые я ранее писал. Скажите пожалуйста где я ошибся код:

import telebot
from telebot import types

bot = telebot.TeleBot('Тут токен, но я его палить не буду')


@bot.message_handler(commands=['menu'])
def menu(message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    item1 = types.KeyboardButton('? Курс валют')
    item2 = types.KeyboardButton('? Профиль')
    item3 = types.KeyboardButton('? Связь с разработчиком')

    markup.add(item1, item2, item3)


@bot.message_handler(content_types=['text'])
def bot_message(message):
    if message.chat.type == 'private':
        if message.text == '? Курс валют':
            bot.send_message(message.chat.id, 'Курс валют\n?? $ ~91 руб.\n??€ ~98 руб.\n??₸ ~0,2\n??¥ ~12,5 руб.')
        elif message.text == '? Связь с разработчиком':
            bot.send_message(message.chat.id, 'Социальные сети\nvk: https://vk.com/hzchotytpisat1\nDiscord: energ0zzz1')
        elif message.text == '? Профиль':
            mess = f'Профиль\nПолное имя: {message.from_user.full_name}\nВаш ID: {message.from_user.id}'
            bot.send_message(message.from_user.id, mess)


@bot.message_handler(commands=['start'])
def start(message):
    bot.send_message(message.from_user.id, f'Привет, {message.from_user.first_name}!')


@bot.message_handler(commands=['help'])
def help_func(message):
    bot.send_message(message.from_user.id, f'Команды, доступные в боте:\n/menu - открытие меню бота')


bot.polling(none_stop=True)

Если что, то ошибок в терминале никаких нету, всё в порядке, но вот команды не работают


Ответы (1 шт):

Автор решения: Bi Diaz

К сожалению, я не изучал библиотеку telebot, но знаком с aiogram - как по мне это лучший вариант, поэтому на его основе могу предложить работающий код.

Подразумевается создание четырех файлов: bot.py, handlers.py, keyboards.py, config.py

    # bot.py
    from aiogram import Bot, Dispatcher
    import asyncio

    from handlers import router
    from config import TOKEN

    async def main():
        bot = Bot(token=TOKEN)
        dp = Dispatcher()
        dp.include_router(router)
        await dp.start_polling(bot)

    if __name__ == '__main__':
        try:
            asyncio.run(main())
        except KeyboardInterrupt:
            print("App closed")
    # handlers.py
    from aiogram import F, Router
    from aiogram.types import Message, CallbackQuery
    from aiogram.filters import CommandStart, Command

    import keyboards as kb


    router = Router()

    @router.message(CommandStart())
    async def cmd_start(message: Message):
        await message.answer(f'Привет, 
    {message.from_user.first_name}', reply_markup=kb.menu)

    @router.message(Command('help'))
    async def cmd_help(message: Message):
        await message.answer('тут будет справка') 
        # не стал добавлять оригинальный текст, ведь теперь меню 
    появляется когда тапают /start ;(

    @router.message()
    async def cmd_menu(message: Message):
        if message.text == '? Курс валют':
            await message.answer('Курс валют\n?? $ ~91 руб.\n??€ ~98 
    руб.\n??₸ ~0,2\n??¥ ~12,5 руб.')
        elif message.text == '? Профиль':
            await message.answer(f'Профиль\nПолное имя: 
    {message.from_user.full_name}\nВаш ID: {message.from_user.id}')
        elif message.text == '? Связь с разработчиком':
            await message.answer('Социальные сети\nvk: 
    https://vk.com/hzchotytpisat1\nDiscord: energ0zzz1')    
    #keyboards.py
    from aiogram.types import (ReplyKeyboardMarkup, KeyboardButton,
                       InlineKeyboardButton, InlineKeyboardMarkup)

    menu = ReplyKeyboardMarkup(keyboard=[
        [KeyboardButton(text='? Курс валют')],
        [KeyboardButton(text='? Профиль')],
        [KeyboardButton(text='? Связь с разработчиком')]], # ох уж 
   эти разработчики ;)
        resize_keyboard=True)
    # config.py
    TOKEN = ''
→ Ссылка