@szjyakgf

Как повторить код из команды в обработчике нажатий кнопки?

Если при нажатии кнопки нужно выполнить тоже самое что и в команде. Нужно снова прописывать это или есть что-то проще?
@dp.message_handler(commands=['test'])
async def test(message):
    user_id = message.from_user.id
    keyboard = types.InlineKeyboardMarkup()
    callback_button1 = types.InlineKeyboardButton(text="повторить", callback_data="test1")
    keyboard.add(callback_button1)
    rrr = str(random.randint(1, 51))
    await message.reply(f'Твое число{rrr}', reply_markup=keyboard)

@dp.callback_query_handler(lambda call: True)
async def callback_inline1(call):
    user_id = call.from_user.id
    result = cur.execute("SELECT * FROM users WHERE user_id = ?", (user_id, )).fetchone()
    with suppress(MessageNotModified):
        if call.message:
            if call.data == "test1":
                #тут я должен повторить все как в команде /test

P.S .Код приведен для примера, в моем проекте нужно повторять 200+ строчек
  • Вопрос задан
  • 77 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
А вызвать await test(call.message) что мешает?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы