Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите понять, почему бот на python telebot не реагирует на команды

Алексей Макаров Ученик (209), открыт 1 неделю назад
Здравствуйте! Подскажите, почему код может не заходить в следующий блок кода:
 @BOT.message_handler(commands=['tomorrow']) 
def tomorrow(message):
current_null_count = 0
st = 0
now = datetime.datetime.now()
day = now.day
conn = sqlite3.connect(f'year_{now.year}.db')
cur = conn.cursor()
month = months[now.month - 1]
try:
x = dict(cur.execute(f'''SELECT * FROM {month} WHERE day = ?''', (day + 1,)).fetchall())

Структура кода:

import

BOT = telebot.TeleBot('token')
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.DEBUG)
logger = logging.getLogger(__name__)

@BOT.message_handler(commands=['start']) # Начало общения
def start(message):

@BOT.callback_query_handler(func=lambda callback: True) # Обработчик нажатия кнопок
def change(callback):


@BOT.message_handler(content_types=['text'])
def get(message):

@BOT.message_handler(commands=['tomorrow'])
def tomorrow(message):

BOT.polling(non_stop=True)
1 ответ
V̲i̲s̲t̲a̲s̲t̲e̲r̲ Искусственный Интеллект (265245) 1 неделю назад
Логи надо писать отладочные.. И лучше вначале запустить на своей структуре базовые действия, это и будет фундаментом — разработка никогда не начинается с крыши.

 import telebot 
import logging

# Инициализация бота и логирования
BOT = telebot.TeleBot('token')
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.DEBUG)
logger = logging.getLogger(__name__)

# Обработчик команды /start
@BOT.message_handler(commands=['start'])
def start(message):
BOT.send_message(message.chat.id, "Привет! Я ваш бот. Чем могу помочь?")

# Обработчик нажатия кнопок
@BOT.callback_query_handler(func=lambda callback: True)
def change(callback):
BOT.answer_callback_query(callback.id, "Кнопка нажата!")
BOT.send_message(callback.message.chat.id, "Вы нажали кнопку.")

# Обработчик текстовых сообщений
@BOT.message_handler(content_types=['text'])
def get(message):
BOT.send_message(message.chat.id, f"Вы написали: {message.text}")

# Обработчик команды /tomorrow
@BOT.message_handler(commands=['tomorrow'])
def tomorrow(message):
BOT.send_message(message.chat.id, "Завтра будет отличный день!")

# Запуск бота
BOT.polling(non_stop=True, skip_pending=True)
Алексей МакаровУченик (209) 1 неделю назад
С логами-то понятно. Вопрос был в положении блока кода. Нужно было обработку команды ставить в начале. Спасибо
Похожие вопросы