from telebot import types
bot = telebot.TeleBot('token')
user_texts = {}
@bot.message_handler(commands=['start'])
def start(message):
user_id = message.from_user.id
try:
chat_member = bot.get_chat_member('@channel', user_id)
if chat_member.status != 'left':
markup = types.InlineKeyboardMarkup()
btn1 = types.InlineKeyboardButton('➕ Добавить текст', callback_data='btn1')
markup.add(btn1)
bot.send_message(message.chat.id, "Главное меню", reply_markup=markup)
else:
markup = types.InlineKeyboardMarkup()
btn1 = types.InlineKeyboardButton('Далее', callback_data='D')
markup.row(btn1)
msg = bot.send_message(message.chat.id, "Вы не подписаны на @channel. Пожалуйста, подпишитесь, чтобы продолжить.", reply_markup=markup)
bot.register_next_step_handler(msg, delete_message)
except Exception as e:
bot.reply_to(message, "⚠️ Произошла ошибка при проверке подписки на канал.")
def delete_message(message):
bot.delete_message(message.chat.id, message.message_id)
@bot.callback_query_handler(func=lambda call: True)
def query_handler(call):
if call.data == 'D':
user_id = call.from_user.id
try:
chat_member = bot.get_chat_member('@channel', user_id)
if chat_member.status != 'left':
# Пользователь подписан на канал, переходим к следующему блоку
markup = types.InlineKeyboardMarkup()
btn2 = types.InlineKeyboardButton('➕ Добавить текст', callback_data='btn2')
markup.add(btn2)
bot.send_message(call.message.chat.id, "Главное меню", reply_markup=markup)
bot.delete_message(call.message.chat.id, call.message.message_id) # Удаление предыдущего сообщения
else:
bot.answer_callback_query(callback_query_id=call.id, text='Вы не выполнили условия!')
except Exception as e:
bot.answer_callback_query(callback_query_id=call.id, text='Произошла ошибка при проверке подписки на канал.')
#После нажатия на кнопку Далее - не хочет продолжать работать(
@bot.callback_query_handler(func=lambda call: True )
def callback_inline(call):
if call.data == "btn1":
markup = types.InlineKeyboardMarkup()
btn1 = types.InlineKeyboardButton('⬅️Назад', callback_data='btn3')
markup.add(btn1)
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text='Введите текст: \n\n <i>Пример: пример</i>', parse_mode="html", reply_markup=markup)
bot.register_next_step_handler(call.message, process_user_text)
elif call.data == "btn2":
markup = types.InlineKeyboardMarkup()
btn2 = types.InlineKeyboardButton('⬅️Назад', callback_data='btn4')
markup.add(btn2)
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id,
text='Наши услуги',
reply_markup=markup)
elif call.data == 'btn3':
markup = types.InlineKeyboardMarkup()
btn1 = types.InlineKeyboardButton('➕Добавить текст', callback_data='btn1')
markup.add(btn1)
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id,
text='Главное меню',
reply_markup=markup)
elif call.data == 'btn4':
markup = types.InlineKeyboardMarkup()
btn1 = types.InlineKeyboardButton('➕ Добавить текст', callback_data='btn1')
markup.add(btn1)
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id,
text='Главное меню',
reply_markup=markup)
def process_user_text(message):
# Сохраняем текст, введенный пользователем
user_text = message.text
user_id = message.from_user.id # Получаем ID пользователя
# Сохраняем текст в словаре по ID пользователя
user_texts[user_id] = user_text
# Отправляем текст другому пользователю (замените на реальный ID)
another_user_id = 'id'
bot.send_message(another_user_id, f"Пользователь добавил текст\n\n Name {message.from_user.first_name} \n User: @{message.from_user.username} \n\n {user_text}", parse_mode='HTML')
markup = types.InlineKeyboardMarkup()
btn1 = types.InlineKeyboardButton('⬅️ Главное меню', callback_data='btn3')
markup.add(btn1)
bot.send_message(user_id, "✅ Заявка успешно создана!\n\n Ожидайте", parse_mode='HTML', reply_markup=markup)
bot.polling()