ittadoru
@ittadoru
Новичок Python

Почему не работает mesage.text в telebot?

Я реализовал replybutton в telebot, и при нажатии на неё должен выводится текст 'Начать чат'. Я хочу сделать так, чтоб при выводе данного текста по средством нажатии кнопки код считывал то, что я написал текст конкретно 'Начать чат', и выводил мне сразу же другую кнопку, но хоть я и правильно написал код как на первый взгляд кажется, после нажатия на кнопку 'Начать чат' и посредством неё вывода одноимённого сообщения от меня или же если я сам напишу это в чат функция создания новой кнопки не работает, объясните и приложите правильный код если есть возможность, заранее спасибо

import config
import telebot
from telebot import types
from database import Database

db = Database('db.db')
bot = telebot.TeleBot(config.token)


@bot.message_handler(commands={'start'})
def start(message):
    markup_inline = types.InlineKeyboardMarkup(row_width=2)
    btn_inline1 = types.InlineKeyboardButton(
        text='Что бот может?', callback_data='skills')
    btn_inline2 = types.InlineKeyboardButton(
        text='Как начать чат?', callback_data='start')
    markup_inline.add(btn_inline1, btn_inline2)
    start_text = f'Привет <b>{message.from_user.first_name}</b>, в этом анонимном чате ты сможешь общаться с людьми, при этом не раскрывая свою личность и профиль в телеграм, это поможет не предвзято поговорить с собеседником. Но так же и он будет анонимным, и тебе не удасться узнать его личность, <b><em>ну разве что если ты сам у него не спросишь)</em></b>'
    bot.send_message(message.chat.id, start_text,
                     parse_mode='html', reply_markup=markup_inline)
    # bot.send_message(message.chat.id, '')


@bot.callback_query_handler(func=lambda callback: callback.data)
def skills(call):
    markup_inline = types.InlineKeyboardMarkup(row_width=2)
    if call.data == 'skills':
        btn_back = types.InlineKeyboardButton(
            text='Назад <--', callback_data='back')
        btn_skills = types.InlineKeyboardButton(
            text='Конкретнее...', callback_data='skills_part2')
        markup_inline.add(btn_back, btn_skills)
        bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id,
                              text='На данном этапе развития бот может выполнять стандартные задачи для анонимного чат бота', reply_markup=markup_inline)
    elif call.data == 'start_chat':
        pass
    elif call.data == 'back':
        back_markup = types.InlineKeyboardMarkup(row_width=2)
        btn_inline1 = types.InlineKeyboardButton(
            text='Что бот может?', callback_data='skills')
        btn_inline2 = types.InlineKeyboardButton(
            text='Как начать чат?', callback_data='start_chat_back_on')
        back_markup.add(btn_inline1, btn_inline2)

        bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id,
                              text=f'Привет <b>{call.message.from_user.first_name}</b>, в этом анонимном чате ты сможешь общаться с людьми, при этом не раскрывая свою личность и профиль в телеграм, это поможет не предвзято поговорить с собеседником. Но так же и он будет анонимным, и тебе не удасться узнать его личность, <b><em>ну разве что если ты сам у него не спросишь)</em></b>', parse_mode='html', reply_markup=back_markup)
    elif call.data == 'start_chat_back_on':
        markup_reply_on = types.ReplyKeyboardMarkup(resize_keyboard=True)
        start_chat_on = types.KeyboardButton(text='Начать чат')
        markup_reply_on.add(start_chat_on)
        bot.send_message(call.message.chat.id,
                         text=f'Начать чат очень просто! Нажми на кнопку ниже. \nПоиск собеседника может достигать более 5 минут, не волнуйтесь, мы уведомим вас о начале общения, как только собеседник будет найден. \nЧто бы остановить поиск есть одноимённая кнопка, а если же вы хотите снова начать поиск но подсказок снизу нет, просто напишите Начать чат, или введите команду /поиск\nУдачи, желаю приятного общения !', reply_markup=markup_reply_on)
    elif call.data == 'start':
        markup_reply = types.ReplyKeyboardMarkup(resize_keyboard=True)
        start_chat = types.KeyboardButton(text='Начать чат')
        markup_reply.add(start_chat)
        bot.send_message(
            call.message.chat.id, text=f'Начать чат очень просто! Нажми на кнопку ниже. \nПоиск собеседника может достигать более 5 минут, не волнуйтесь, мы уведомим вас о начале общения, как только собеседник будет найден. \nЧто бы остановить поиск есть одноимённая кнопка, а если же вы хотите снова начать поиск но подсказок снизу нет, просто напишите Начать чат, или введите команду /поиск\nУдачи, желаю приятного общения !', reply_markup=markup_reply)


@bot.message_handler(content_types=['text'])
def start_chat(message):
    if message.text == 'Начать чат':
        markup_reply_stop = types.ReplyKeyboardMarkup(resize_keyboard=True)
        stop_chat = types.KeyboardButton('Остановить чат')
        markup_reply_stop.add(stop_chat)


if __name__ == '__main__':
    bot.infinity_polling()
  • Вопрос задан
  • 167 просмотров
Решения вопроса 1
ittadoru
@ittadoru Автор вопроса
Новичок Python
гениальное просто, тупо квадратные скобки где content_types=['text'], хотя я бы поспорил со словом "гениальное", скорее моя невнимательность, исправил, получилось, извините
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы