Twitch.TV Moderator Bot (6 / 8 steg)
Steg 6: Identifiera meddelanden i chatten
Inte alla meddelanden från servern är värd den bot uppmärksamhet. Vi behöver inte veta vem som är att gå med eller lämna kanalen, och det är inte mycket viktigt som andra moderatorer. Vi vill dock se chattmeddelanden, som ser ut så här:
: Smeknamn! PRIVMSG #channel med Smeknamn: meddelande
IRCS formateringen av ett chattmeddelande är ganska komplicerat, så vi använder ett reguljärt uttryck för att plocka ut meddelanden som matchar detta mönster. Importera Pythons reguljära uttryck modul:
# bot.py
importera re
och definiera mönstret vi letar.
# Se till att du prefix citat med ett "r"!
CHAT_MSG=re.compile (r "^:\w+!\w+ PRIVMSG #\w+ :")
När vi har bestämt att detta är ett chat-meddelande, kan vi band ut mest av texten, eftersom vi behöver bara en kopia av användarnamnet och deras budskap. Först måste vi välja användarnamnet av strängen. Användarnamnet kommer att vara den första delsträngen består enbart av regex ordtecken, som bestå av alfanumeriska tecken och understreck. När vi hittar användarnamn, kan vi ersätta ful prefixet med bara användarnamnet och kolon.
# bot.py
samtidigt sant:
svar = s.recv(1024).decode("utf-8")
om svar == "PING: tmi.twitch.tv\r\n":
s.send ("PONG: tmi.twitch.tv\r\n".encode("utf-8"))
annat:
användarnamn = re.search (r "\w+", line).group(0) # avkastning hela matchen
meddelande = CHAT_MSG.sub ("", linje)
skriva ut (användarnamn + ":" + meddelande)
sömn (1/cfg. RATE)