Python telebot сохранение текста в переменную
Наткнулся на это: Как записать в переменную сообщение? Варианты telebot и aiogram
И вот вопрос. Как сделать так, чтобы ты этот текст записывался в переменную, а потом, по какой нибудь команде, например /text, выводились бы это сообщение, записано в переменную. Что-то вроде эхо-бота. Но по команде. Пытался через return, но как-то не вышло
Ответы (3 шт):
Автор решения: Михаил
→ Ссылка
a = bot.send_message(message.chat.id, 'Введите текст:')
bot.register_next_step_handler(a, b)
@bot.message_handler(commands=['text'])
def start_message(message):
bot.send_message(message.chat.id, f'Ваш текст: {b}')
Автор решения: Utsiye
→ Ссылка
@bot.message_handler(commands=["start"])
def starting(message):
a = bot.send_message(message.chat.id, 'Введите текст:')
bot.register_next_step_handler(a, returning)
@bot.message_handler(commands=['return'])
def returning(message):
bot.send_message(message.chat.id, f'Ваш текст: {message.text}')
Автор решения: Микита Білогур
→ Ссылка
Надеюсь, я правильно тебя понял
Вот как эту проблему решил я, бот локально сохраняет в форме (так называемом состоянии) и далее использует данные введенные пользователем
class OutputForm(StatesGroup):
Output = State()
@dp.callback_query_handler(text="Sber_output")
async def sber_output(callback: types.CallbackQuery):
await bot.delete_message(callback.from_user.id, callback.message.message_id)
await bot.send_message(callback.from_user.id, "Введите номер карты")
await OutputForm.Output.set()
Использовать можно вот так
@dp.message_handler(state='*', commands='cancel')
@dp.message_handler(state=OutputForm.Output)
async def process_city(message: types.Message, state: FSMContext):
Output = message.text