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.

Telethon telegram, distínguete de los mensajes de canal y mensajes privados.

Tengo que enviar algunos comandos privados al bot. ¿Cómo sabes si el mensaje del evento es privado o proviene de un canal/grupo?

Encontré esto en el mensaje obj:

PeerUser(user_id=xxxxxxxxx) - mensaje privado del usuario
from_id=None  <-- ninguno

PeerChannel(channel_id=hhhhhhhhhh)  - mensaje del canal
from_id=PeerUser(user_id=xxxxxxxxxx) - from_id obtuvo el user_id

¿Cómo probarlo? ¿Debo buscar el atributo PeerUser o PeerChannel?
¿O debo probar ‘from_id’?:

if not from_id :
  # mensaje privado
 else:
  # mensaje del canal

Gracias.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para saber si el mensaje del evento es privado o de un canal/grupo, puedes probar el atributo ‘from_id’. Si el ‘from_id’ es None, entonces es un mensaje privado. Si el ‘from_id’ tiene un valor de ‘PeerChannel’, entonces es de un canal/grupo. Por lo tanto, puedes usar la siguiente declaración para probar:

    if not from_id:
        # Mensaje privado
    else:
        # Mensaje de canal/grupo
    

    No es necesario buscar el atributo ‘PeerUser’ o ‘PeerChannel’. En su lugar, puedes confiar en el atributo ‘from_id’ para determinar el tipo de mensaje.

Comments are closed.