コード例 #1
0
        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);
        }
コード例 #2
0
    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);
    }
コード例 #3
0
    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);
    }
コード例 #4
0
        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);
        }
コード例 #5
0
    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");
    }
コード例 #6
0
        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;
            }
        }