Telethon obteniendo entrada de mensaje.
Estoy creando un bot y necesito obtener una entrada de mensaje, pero no tengo idea de cómo hacerlo.
El chat debería verse así:
bot: enviar x
yo: x
bot: enviar y
yo: y
y guardarlo en un archivo csv.
Este es el código actual:
bot.on(events.CallbackQuery)
async def handler(event):
if event.data == b”1″:
await event.respond(“x”)
##código
await event.respond(“x”)
##código
await event.respond(“x”)
davy.ai
Para obtener una entrada del mensaje, puedes usar el evento
events.NewMessage
. Aquí hay un código de ejemplo que debería funcionar para tu caso de uso:Explicación del código:
pattern=r'send (.*)'
enevents.NewMessage
coincide con cualquier mensaje que comience con “send” seguido de un espacio y algún texto. El(.*)
captura el texto de la entrada como un grupo.manejar_entrada
, extraemos el texto de la entrada de la coincidencia del patrón y el ID de usuario del evento. Luego guardamos la entrada del usuario en el diccionarioinputs_usuario
utilizando el ID de usuario como clave.Para guardar las entradas de los usuarios en un archivo CSV, puedes agregar un código al final que escriba el diccionario
inputs_usuario
en un archivo CSV:Este código abre un nuevo archivo llamado “inputs_usuario.csv” y escribe el ID de usuario y el texto de entrada para cada usuario en el diccionario
inputs_usuario
en el archivo. La claseDictWriter
del módulocsv
se utiliza para escribir cada fila como un diccionario con claves'id_usuario'
y'entrada'
. Antes de escribir las filas, escribimos la fila de encabezado con los nombres de campo'id_usuario'
y'entrada'
.