private void Initialize() { string payload = $"@badge-info=subscriber/1;badges=moderator/1,subscriber/0;client-nonce=60576a3018294221da54321a7397db58;color=;display-name=francoe1;emotes=;first-msg=0;flags=;id=9e4e255d-3c8d-4cdb-88ca-62ab7a3c37a9;mod=1;room-id=130747120;subscriber=1;tmi-sent-ts=1635094303777;turbo=0;user-id=147383910;user-type=mod :[email protected] PRIVMSG #rhomita :{COMMAND_NAME} {COMMAND_PARAMS}"; TwitchInputLine command = new TwitchInputLine(payload, COMMAND_PREFIX); TwitchChatMessageParser message = new TwitchChatMessageParser(command); _command = new TwitchChatCommand(message.User, message.Sent, message.Bits, message.Id); _handler = new TwitchCommandHandler(COMMAND_PREFIX); }
public void ReadMessageChatTextWithEspecialCharacters() { const string MESSAGE = "BEGIN <> !� {} \\ // ' \" :) :| @: #~$%&/()=^^^^^^****���� END"; string PAYLOAD = $"@badge-info=subscriber/1;badges=moderator/1,subscriber/0;client-nonce=b185f1767a4a2a8d5786a41f9de64a77;color=;display-name=francoe1;emotes=;first-msg=0;flags=;id=e83072fb-51b3-4217-a746-ff6e23ae09b7;mod=1;room-id=130747120;subscriber=1;tmi-sent-ts=1635094309746;turbo=0;user-id=147383910;user-type=mod :[email protected] PRIVMSG #rhomita :{MESSAGE}"; TwitchInputLine command = new TwitchInputLine(PAYLOAD, COMMAND_PREFIX); TwitchChatMessageParser message = new TwitchChatMessageParser(command); TwitchChatMessage chatCommand = new TwitchChatMessage(message.User, message.Sent, message.Bits, message.Id); Assert.IsTrue(chatCommand.Message == MESSAGE); }
public void ReadMessageChatCommandTest() { const string COMMAND = "!start"; string PAYLOAD = $"@badge-info=subscriber/1;badges=moderator/1,subscriber/0;client-nonce=60576a3018294221da54321a7397db58;color=;display-name=francoe1;emotes=;first-msg=0;flags=;id=9e4e255d-3c8d-4cdb-88ca-62ab7a3c37a9;mod=1;room-id=130747120;subscriber=1;tmi-sent-ts=1635094303777;turbo=0;user-id=147383910;user-type=mod :[email protected] PRIVMSG #rhomita :{COMMAND}"; TwitchInputLine command = new TwitchInputLine(PAYLOAD, COMMAND_PREFIX); TwitchChatMessageParser message = new TwitchChatMessageParser(command); TwitchChatCommand chatCommand = new TwitchChatCommand(message.User, message.Sent, message.Bits, message.Id); Assert.IsTrue(chatCommand.Command == COMMAND); }
public TwitchChatRewardParser(TwitchInputLine command) { BadgesText = TwitchChatRegex.RewardRegex.Match(command.Message).Groups[1].Value; Id = TwitchChatRegex.RewardRegex.Match(command.Message).Groups[2].Value; string displayName = TwitchChatRegex.RewardRegex.Match(command.Message).Groups[3].Value; string idUser = TwitchChatRegex.RewardRegex.Match(command.Message).Groups[4].Value; string username = TwitchChatRegex.RewardRegex.Match(command.Message).Groups[5].Value; Sent = TwitchChatRegex.RewardRegex.Match(command.Message).Groups[6].Value; Badges = TwitchChatRegex.BuildBadges(BadgesText); User = TwitchUserManager.AddUser(username); User.SetData(idUser, displayName, Badges); }
public void ReadMessageTest() { const string MESSAGE_ID = ""; const string MESSAGE_SENT = "!command_name"; const int MESSAGE_BIT = 0; const int MESSAGE_BADGES_COUNT = 2; const string USER_ID = "00000000000"; const string USER_DISPLAY_NAME = "user_display_name"; string PAYLOAD = $"@badge-info=subscriber/1;badges=moderator/1,subscriber/0;client-nonce=60576a3018294221da54321a7397db58;color=;display-name={USER_DISPLAY_NAME};emotes=;first-msg=0;flags=;id=9e4e255d-3c8d-4cdb-88ca-62ab7a3c37a9;mod=1;room-id=130747120;subscriber=1;tmi-sent-ts=1635094303777;turbo=0;user-id={USER_ID};user-type=mod :[email protected] PRIVMSG #rhomita :{MESSAGE_SENT}"; TwitchInputLine command = new TwitchInputLine(PAYLOAD, COMMAND_PREFIX); TwitchChatMessageParser message = new TwitchChatMessageParser(command); Assert.AreEqual(message.Id, MESSAGE_ID, "Invalid message id"); Assert.AreEqual(message.Sent, MESSAGE_SENT, "Invalid message sent"); Assert.AreEqual(message.Bits, MESSAGE_BIT, "Invalid user display name"); Assert.AreEqual(message.Badges.Count, MESSAGE_BADGES_COUNT, "Invalid user display name"); Assert.IsNotNull(message.User, "Invalid user data"); Assert.AreEqual(message.User.Id, USER_ID, "Invalid user id"); Assert.AreEqual(message.User.DisplayName, USER_DISPLAY_NAME, "Invalid user display name"); }
public TwitchChatMessageParser(TwitchInputLine command) { Bits = 0; Id = TwitchChatRegex.IdMessageRegex.Match(command.Message).Groups[1].Value; string badgesText = TwitchChatRegex.MessageRegex.Match(command.Message).Groups[1].Value; string displayName = TwitchChatRegex.MessageRegex.Match(command.Message).Groups[2].Value; string idUser = TwitchChatRegex.MessageRegex.Match(command.Message).Groups[3].Value; string username = TwitchChatRegex.MessageRegex.Match(command.Message).Groups[4].Value; Sent = TwitchChatRegex.MessageRegex.Match(command.Message).Groups[5].Value; Badges = TwitchChatRegex.BuildBadges(badgesText); User = TwitchUserManager.AddUser(username); User.SetData(idUser, displayName, Badges); if (Sent.Length == 0) { return; } MatchCollection matches = TwitchChatRegex.CheerRegex.Matches(Sent); foreach (Match match in matches) { if (match.Groups.Count != 2) { continue; // First group is 'cheerXX', second group is XX. } string value = match.Groups[1].Value; if (!int.TryParse(value, out int bitsAmount)) { continue; } Bits += bitsAmount; } }