Exemplo n.º 1
0
 /// <summary>
 ///     Internal routine to invoke the SendMessageHandler
 /// </summary>
 /// <param name="message">The reply to send</param>
 /// <param name="original">The original twitch message</param>
 public void SendMessage(string message, DigestMessage original)
 {
     if (string.IsNullOrEmpty(message))
     {
         return;
     }
     SendMessageHandler?.Invoke(this, new SendMessageArgs {
         Reply = message, OriginalMessage = original
     });
 }
Exemplo n.º 2
0
        public override bool ReceiveMessage(DigestMessage message)
        {
            if (!IsInitialized)
            {
                return(false);
            }
            if (message?.Message == null)
            {
                return(false);
            }

            var words = message.Message.Where(i => i.IsWord).ToList();

            var hasBotMention = words.Any(i => i.HasValue(message.BotUsername));

            if (!hasBotMention)
            {
                return(false);
            }

            var goodWords = GetPositiveWords();
            var badWords  = GetNegativeWords();

            var hasGood = goodWords.Any(goodWord => words.Any(i => i.HasValue(goodWord)));
            var hasBad  = badWords.Any(badWord => words.Any(i => i.HasValue(badWord)));

            if (hasGood)
            {
                SendMessage(GetPositiveReply(), message);
                return(true);
            }

            // ReSharper disable once InvertIf
            // ReSharper disable once RedundantJumpStatement

            if (hasBad)
            {
                SendMessage(GetNegativeReply(), message);
                return(true);
            }

            return(false);
        }
Exemplo n.º 3
0
        public static void UpdateWildcards(this MessageParts sendMessage, DigestMessage originalMessage)
        {
            var dict = new Dictionary <string, string>
            {
                { "$user", originalMessage.FromAccount },
                { "$channel", originalMessage.ChannelName },
                { "$bot", originalMessage.BotUsername },
                { "$time", DateTime.Now.ToString("h:mm tt") },
                { "$day", DateTime.Now.ToString("d") }
            };

            foreach (var thing in sendMessage)
            {
                if (!dict.TryGetValue(thing.Value.ToLower(), out var replace))
                {
                    continue;
                }
                thing.Value = replace;
            }
        }
Exemplo n.º 4
0
 /// <summary>
 ///     A message sent by the host application
 /// </summary>
 /// <param name="message">The message received in chat</param>
 public abstract bool ReceiveMessage(DigestMessage message);