Ответы пользователя по тегу AIOgram
  • Обработка команды и callback одновременно в одной функции, как реализовать?

    HarisNvr
    @HarisNvr Автор вопроса
    Начинающий кодер Python
    В итоге забил и создал вторую функцию для обработки callback:

    @admin_router.message(Command('proportions'))
    @check_is_admin
    async def proportions(
            message: Message,
            state: FSMContext,
            keep_last_msg: bool = False
    ):
    
        """
        Handles the 'proportions' command. Receive a str value from admin and
        triggers the calculate_proportion function.
    
        :param state:
        :param keep_last_msg:
        :param message:
        :return: None
        """
    
        if not keep_last_msg:
            await message.delete()
            await sleep(DEL_TIME)
    
        await state.set_state(ProportionStates.waiting_for_proportion_input)
        sent_message = await message.answer(
            text='Введите через пробел: '
                 '\nПропорции компонентов '
                 '<b>A</b> и <b>B</b>, '
                 'и общую массу - <b>C</b>'
        )
    
        await record_message_id_to_db(sent_message)
    
    
    @admin_router.callback_query(F.data == 'another_proportion')
    async def callback_proportion(callback: CallbackQuery, state: FSMContext):
        await callback.answer()
        await proportions(callback.message, state=state, keep_last_msg=True)
    Ответ написан
    Комментировать