Нужно записать url который прислал пользователь, чтобы дальше работать с pytube
Есть бот, где пользователь выбирает режим скачивания и затем ему присылают сообщение : Жду ссылку. В этот момент нужно как-то записать значение которое написал пользователь в новую перменную чтобы дальше с ним работать. Как это реализовать?
import telebot as tb
import config
from telebot import types
bot = tb.TeleBot(config.TOKEN, parse_mode=None) # Вызов бота по TOKEN
@bot.message_handler(commands=['start'])
def sendWelcome(message):
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=1)
download = types.KeyboardButton('Скачать')
markup.add(download)
bot.send_message(message.chat.id, f'Привет, {message.from_user.first_name} ...', reply_markup = markup)
bot.send_sticker(message.chat.id, config.sticker_welcome)
@bot.message_handler(content_types=['text'])
def openSettings(message):
get_message_text = message.text
'''print(get_message_text)'''
if get_message_text == 'Скачать':
download_markup = types.InlineKeyboardMarkup(row_width=2)
video = types.InlineKeyboardButton('Видео \N{movie camera}', callback_data='video')
audio = types.InlineKeyboardButton('Аудио \N{headphone}', callback_data='audio_link')
download_markup.add(video, audio)
bot.send_message(message.chat.id, 'Выберите формат скачивания', reply_markup = download_markup)
else:
pass
@bot.callback_query_handler(func = lambda call: True)
def download(call):
if call.data == 'video':
video_keyboard = types.InlineKeyboardMarkup(row_width=1)
change_settings = types.InlineKeyboardButton('Изменить качество \N{gear}', callback_data='change_settings')
video_link = types.InlineKeyboardButton('Вставить ссылку', callback_data='video_link')
video_keyboard.add(change_settings, video_link)
bot.answer_callback_query(call.id, '', show_alert=False)
bot.send_message(call.message.chat.id, 'Желаете изменить качество?', reply_markup=video_keyboard)
elif call.data == 'audio_link':
bot.answer_callback_query(call.id, '', show_alert=False)
bot.send_message(call.message.chat.id, 'Жду ссылку \U0001F9A7')
while call.message == call.message.from_user:
print(call.message.text)
elif call.data == 'video_link':
bot.answer_callback_query(call.id, '', show_alert=False)
bot.send_message(call.message.chat.id, 'Жду ссылку \U0001F9A7')
elif call.data == 'change_settings':
bot.answer_callback_query(call.id, '', show_alert=False)
config.settings(call.message)
else:
pass
bot.polling(none_stop=True)
Ответы (1 шт):
Автор решения: Violet
→ Ссылка
elif call.data == 'audio_link':
msg = bot.send_message(call.message.chat.id, 'Жду ссылку \U0001F9A7')
bot.register_next_step_handler(msg, audio)
elif call.data == 'video_link':
msg = bot.send_message(call.message.chat.id, 'Жду ссылку \U0001F9A7')
bot.register_next_step_handler(msg, video)
def audio(message):
print('ссылка на аудио:', message.text)
def video(message):
print('ссылка на видео:', message.text)
используйте bot.register_next_step_handler()