Paso 6: Reconocer los mensajes del Chat
No todos los mensajes del servidor son dignos de atención del bot. No necesitamos saber quién es uniéndose o saliéndose del canal, y no es muy importante que los otros moderadores. Sin embargo, queremos ver los mensajes de chat, que esta apariencia:
:nickname!nickname PRIVMSG #channel :message
De formato de un mensaje de chat de IRC es bastante complicado, por lo que usaremos una expresión regular para seleccionar los mensajes que coincidan con este patrón. Importación de Python módulo de expresiones regulares:
# bot.pyimport re
y definir el patrón que estamos buscando.
# Make sure you prefix the quotes with an 'r'!CHAT_MSG=re.compile(r"^:\w+!\w+ PRIVMSG #\w+ :")
Una vez que hemos determinado que se trata de un mensaje de chat, podemos tira más del texto, ya que sólo necesitamos una copia del nombre de usuario y su mensaje. En primer lugar, tenemos que elegir el nombre de usuario de la cadena. El nombre de usuario será la primera subcadena compuesta únicamente por caracteres de palabra regex, que consisten en caracteres alfanuméricos y guiones bajos. Una vez que encontramos el nombre de usuario, podemos reemplazar el prefijo feo con el nombre de usuario y dos puntos.
# bot.pywhile True: response = s.recv(1024).decode("utf-8") if response == "PING :tmi.twitch.tv\r\n": s.send("PONG :tmi.twitch.tv\r\n".encode("utf-8")) else: username = re.search(r"\w+", line).group(0) # return the entire match message = CHAT_MSG.sub("", line) print(username + ": " + message) sleep(1 / cfg.RATE)