Не работает вторая часть кода
Взял код с ютуба по проверке обязательной подписки на телегу, он прекрасно работает, но вот мой код, который начинается Найти фильм/сериал не работает, хотя без обязательно проверки он работал. Помогите
import telebot
from telebot import types
bot = telebot.TeleBot('540*************FnGOfL2ypvDQ5c')
@bot.message_handler(commands=['start'])
def start(message):
channel_link = "t.me/ki**1*t"
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
keyboard = types.KeyboardButton(text="Подтвердить")
markup.add(keyboard)
chat_id = message.chat.id
user = message.chat.first_name
bot.send_message(chat_id, f"Привет, <b>{user}</b>, чтобы пользоваться ботом, будь добр подписаться\n"
f"{channel_link}", reply_markup=markup, parse_mode='html')
@bot.message_handler(content_types=['text'])
def text(message):
if message.chat.type == 'private':
if message.text == 'Подтвердить':
status = ['creator', 'administrator', 'member']
for stat in status:
if stat == bot.get_chat_member(chat_id='@ki****st', user_id=message.from_user.id).status:
bot.send_message(message.chat.id, "Доступ открыт. \n")
break
else:
bot.send_message(message.chat.id, "Не, не, подпишись я говорю!")
@bot.message_handler(content_types=['text'])
def get_user_text(message):
if message.text == "Найти фильм/сериал":
bot.send_message(message.chat.id, "Введите код: ", parse_mode="html")
if message.text == "001":
bot.send_photo(message.chat.id, photo=open('001.jpg', 'rb'))
bot.send_message(message.chat.id, "Код: <b>001</b>\nНазвание: <b>Это все он(2021)</b>", parse_mode="html")
if message.text == "002":
bot.send_photo(message.chat.id, photo=open('002.jpg', 'rb'))
bot.send_message(message.chat.id, "Код: <b>002</b>\nНазвание: <b>2+1 (2016)</b>", parse_mode="html")
else:
bot.send_message(message.chat.id, "Код не найден! Проверьте его ниже\n[Вот сюда жмякай](https://t.me/k***8st/)", parse_mode='Markdown')
bot.polling(none_stop=True)
Ответы (1 шт):
Автор решения: Владимир Антонов
→ Ссылка
У тебя 2 одинаковых хендлера, первый ловит сообщения а до 2 они не доходят, второй не нужен, просто передавай message сразу во вторую функцию после проверке в первой
def get_user_text(message):
if message.text == "Найти фильм/сериал":
bot.send_message(message.chat.id, "Введите код: ", parse_mode="html")
if message.text == "001":
bot.send_photo(message.chat.id, photo=open('001.jpg', 'rb'))
bot.send_message(message.chat.id, "Код: <b>001</b>\nНазвание: <b>Это все он(2021)</b>", parse_mode="html")
if message.text == "002":
bot.send_photo(message.chat.id, photo=open('002.jpg', 'rb'))
bot.send_message(message.chat.id, "Код: <b>002</b>\nНазвание: <b>2+1 (2016)</b>", parse_mode="html")
else:
bot.send_message(message.chat.id, "Код не найден! Проверьте его ниже\n[Вот сюда жмякай](https://t.me/k***8st/)", parse_mode='Markdown')
@bot.message_handler(content_types=['text'])
def text(message):
if message.chat.type == 'private':
if message.text == 'Подтвердить':
status = ['creator', 'administrator', 'member']
for stat in status:
if stat == bot.get_chat_member(chat_id='@ki****st', user_id=message.from_user.id).status:
get_user_text(message)
else:
bot.send_message(message.chat.id, "Не, не, подпишись я говорю!")