From 38f6b3149b951ffe777d159c292d0dd36b817fd6 Mon Sep 17 00:00:00 2001 From: Rasmus Karlsson Date: Sat, 26 May 2018 18:12:29 +0200 Subject: [PATCH] Implement global CLEARCHAT message parsing --- message.go | 6 ++++++ message_test.go | 14 ++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/message.go b/message.go index f9e5a1f..8c3b05a 100644 --- a/message.go +++ b/message.go @@ -92,6 +92,8 @@ func parseOtherMessage(line string) *message { msg.Type = ROOMSTATE case "USERNOTICE": msg.Type = USERNOTICE + case "CLEARCHAT": + msg.Type = CLEARCHAT } msg.Tags = make(map[string]string) @@ -111,6 +113,10 @@ func parseOtherMessage(line string) *message { msg.Tags[tagSplit[0]] = value } + + if msg.Type == CLEARCHAT { + msg.Text = "Chat has been cleared by a moderator" + } return msg } diff --git a/message_test.go b/message_test.go index 2026a47..8a4af8c 100644 --- a/message_test.go +++ b/message_test.go @@ -84,6 +84,20 @@ func TestCanParseClearChatMessage(t *testing.T) { if message.Type != CLEARCHAT { t.Error("parsing CLEARCHAT message failed") } + + assertStringsEqual(t, message.Channel, "pajlada") +} + +func TestCanParseClearChatMessage2(t *testing.T) { + testMessage := `@room-id=11148817;tmi-sent-ts=1527342985836 :tmi.twitch.tv CLEARCHAT #pajlada` + + message := parseMessage(testMessage) + + if message.Type != CLEARCHAT { + t.Error("parsing CLEARCHAT message failed") + } + + assertStringsEqual(t, message.Channel, "pajlada") } func TestCanParseEmoteMessage(t *testing.T) {