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()
  • Вопрос задан
  • 156 просмотров
Решения вопроса 1
ittadoru
@ittadoru Автор вопроса
Новичок Python
гениальное просто, тупо квадратные скобки где content_types=['text'], хотя я бы поспорил со словом "гениальное", скорее моя невнимательность, исправил, получилось, извините
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
SpectrumData Екатеринбург
от 150 000 до 200 000 ₽
Гринатом Москва
от 150 000 ₽
DIGITAL SECTOR Краснодар
от 150 000 до 250 000 ₽
19 июн. 2024, в 06:58
15000 руб./за проект
19 июн. 2024, в 01:11
7000 руб./за проект
18 июн. 2024, в 23:10
15000 руб./за проект