es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Aiogram con re

@dp.message_handler(AdminFilter(), state="get_price", regexp=re.compile(r"^[0-9]*\|.*\|[0-9]*"))
async def get_price(message: types.Message, state: FSMContext):
    m = message.text
    id = re.findall(r"^0[0-9]*", m)
    name = re.findall(r"^[a-zA-Z0-9 ]*₽$", m)
    cost = re.findall(r"^[0-9]*0$", m)
    await message.answer(
        f'''El producto ha sido añadido:
        id: {id[0]}
        name: {name}
        cost: {cost}
        '''
    )

Necesito que este controlador capture mensajes en el formato id|name|costo y luego asigne los valores de id, name y costo a diferentes variables.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Este función manejadora de mensajes en Python utiliza la biblioteca aiogram para capturar mensajes que coinciden con un patrón regex específico, utilizando la biblioteca python-re. El patrón regex coincidirá con mensajes en el formato “id|nombre|costo”.

    Una vez capturado un mensaje coincidente, se utilizan tres comandos regex para analizar el texto del mensaje en tres variables separadas: id, nombre y costo. Estas variables se utilizan luego para construir un mensaje de respuesta que confirma los detalles del producto agregado.

    Para utilizar esta función manejadora de mensajes en tu propio programa, debes asegurarte de haber importado las bibliotecas necesarias (aiogram y python-re) y haber configurado una instancia de bot funcionando con un despachador correspondiente (dp).

    También necesitarás definir la clase AdminFilter a la que esta función manejadora de mensajes hace referencia, así como el FSMContext (contexto de la máquina de estados finitos), que puede ser utilizado para llevar un registro del estado actual o progreso del usuario dentro de la conversación.

Comments are closed.