Stap 6: Herkennen berichten naar de Chat
Niet alle berichten van de server zijn de bot aandacht verdient. We hoeven niet te weten wie toetreding tot of het verlaten van het kanaal, en het is niet heel belangrijk wie de andere moderators zijn. Wij willen echter zie Chatberichten, die er als volgt uitzien:
:nickname!nickname PRIVMSG #channel :message
IRC de opmaak van een chatbericht is nogal gecompliceerd, dus we een reguliere expressie gebruiken voor het uitzoeken van berichten die overeenkomen met dit patroon. Importeren van Python's reguliere expressies module:
# bot.pyimport re
en definiëren het patroon dat we nu op zoek bent naar.
# Make sure you prefix the quotes with an 'r'!CHAT_MSG=re.compile(r"^:\w+!\w+ PRIVMSG #\w+ :")
Nadat we hebt vastgesteld dat het hier een chatbericht, kunnen wij strippen uit allermeest naar de tekst, want we slechts één exemplaar van de gebruikersnaam en hun boodschap moeten. Eerste plaats moeten wij om te plukken van de gebruikersnaam uit de tekenreeks. De gebruikersnaam zullen de eerste subtekenreeks bestaat uitsluitend uit regex word-tekens, die bestaan uit alfanumerieke tekens en onderstrepingstekens. Zodra we de gebruikersnaam vinden, kunnen we vervangen door het lelijk voorvoegsel alleen de gebruikersnaam en een dubbele punt.
# 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)