From 41d585f6a191bf76b4f4b93a308c149dbcaf0df8 Mon Sep 17 00:00:00 2001 From: Elena Loonstra Date: Thu, 19 Jan 2023 20:18:24 +0100 Subject: [PATCH 1/2] feat: add custom reward id to private message --- client.go | 29 +++++++++++++++-------------- message.go | 17 +++++++++-------- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/client.go b/client.go index a642e8f..425b93a 100644 --- a/client.go +++ b/client.go @@ -111,20 +111,21 @@ func (msg *WhisperMessage) GetType() MessageType { type PrivateMessage struct { User User - Raw string - Type MessageType - RawType string - Tags map[string]string - Message string - Channel string - RoomID string - ID string - Time time.Time - Emotes []*Emote - Bits int - Action bool - FirstMessage bool - Reply *Reply + Raw string + Type MessageType + RawType string + Tags map[string]string + Message string + Channel string + RoomID string + ID string + Time time.Time + Emotes []*Emote + Bits int + Action bool + FirstMessage bool + Reply *Reply + CustomRewardID string } type Reply struct { diff --git a/message.go b/message.go index 8fbbd0f..f401702 100644 --- a/message.go +++ b/message.go @@ -220,14 +220,15 @@ func parsePrivateMessage(message *ircMessage) Message { privateMessage := PrivateMessage{ User: parseUser(message), - Raw: message.Raw, - Type: parseMessageType(message.Command), - RawType: message.Command, - Tags: message.Tags, - RoomID: message.Tags["room-id"], - ID: message.Tags["id"], - Time: parseTime(message.Tags["tmi-sent-ts"]), - Reply: reply, + Raw: message.Raw, + Type: parseMessageType(message.Command), + RawType: message.Command, + Tags: message.Tags, + RoomID: message.Tags["room-id"], + ID: message.Tags["id"], + Time: parseTime(message.Tags["tmi-sent-ts"]), + Reply: reply, + CustomRewardID: message.Tags["custom-reward-id"], } if len(message.Params) == 2 { From b86e6038dd44abd35198417f92a19cfdf30abf2e Mon Sep 17 00:00:00 2001 From: Elena Loonstra Date: Thu, 19 Jan 2023 20:31:12 +0100 Subject: [PATCH 2/2] feat: add test for custom reward id --- message_test.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/message_test.go b/message_test.go index fc39c7b..1913cb8 100644 --- a/message_test.go +++ b/message_test.go @@ -226,6 +226,30 @@ func TestCanParsePRIVMSGMessage(t *testing.T) { }, }, }, + { + "Message With Custom Reward ID", + "@badge-info=;badges=vip/1,bits/100;color=#FF69B4;custom-reward-id=ea98be77-c54e-49cd-bc52-d8290cf12ad8;display-name=eloonstra;emotes=;first-msg=0;flags=0-2:S.5;id=c46f5ea8-bbba-499d-a10f-96463d2955c1;mod=0;returning-chatter=0;room-id=75704631;subscriber=0;tmi-sent-ts=1674085692645;turbo=0;user-id=465396358;user-type=;vip=1 :eloonstra!eloonstra@eloonstra.tmi.twitch.tv PRIVMSG #eloonstra :boing", + PrivateMessage{ + User: User{ + ID: "465396358", + Name: "eloonstra", + DisplayName: "eloonstra", + Color: "#FF69B4", + Badges: map[string]int{ + "vip": 1, + "bits": 100, + }, + }, + Type: PRIVMSG, + RawType: "PRIVMSG", + Message: "boing", + Channel: "eloonstra", + RoomID: "75704631", + ID: "c46f5ea8-bbba-499d-a10f-96463d2955c1", + FirstMessage: false, + CustomRewardID: "ea98be77-c54e-49cd-bc52-d8290cf12ad8", + }, + }, } for _, tt := range tests {