Проблема возникает потому, что при использовании `@bot.callback_query_handler`, функция-обработчик вызывается только один раз.
Если вам нужно, чтобы функция срабатывала каждый раз, можно использовать цикл `while` или рекурсию для повторного вызова функции-обработчика. Например, вы можете добавить цикл `while` перед вызовом `bot.polling()`, чтобы бот постоянно ожидал новых запросов:
```python
import telebot
bot = telebot.TeleBot(TOKEN)
@bot.callback_query_handler(func=lambda callback: True)
def handle_callback(callback):
# Ваш код обработки
while True:
try:
bot.polling()
except Exception:
bot.stop_polling()
# Желательно добавить логирование ошибок
```
Однако цикл `while True` может постоянно выполняться и занимать все ресурсы вашего компьютера. Чтобы избежать этого, можно добавить задержку в цикле или использовать асинхронный подход с помощью библиотеки `aiogram`. Это библиотека для создания асинхронных телеграм-ботов.
```python
import asyncio
from aiogram import Bot, Dispatcher, types
bot = Bot(token=TOKEN)
dp = Dispatcher(bot)
@dp.callback_query_handler()
async def handle_callback(callback: types.CallbackQuery):
# Ваш код обработки
async def start_bot():
await dp.start_polling()
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.run_until_complete(start_bot())
loop.close()
```
В этом примере используется функция `handle_callback`. Она должна быть асинхронной, поэтому добавлено ключевое слово `async`. Также используется `aiogram` для создания бота и диспетчера с обработчиком `callback_query_handler`. Затем запускается асинхронный цикл с помощью `dp.start_polling()`.