Example #1
0
        public TwitchChatMessage Parse(
            TwitchChatSender sender,
            string message,
            IChatMessageWordResolver wordResolver,
            IChatMessageEmoteResolver emoteResolver)
        {
            var parts = new List <TwitchChatMessagePart>();
            var words = message.Split(' ');
            //var emotes = knownEmotes?.Emotes;
            var index = -1;

            foreach (var token in words)
            {
                ++index;
                var emote = emoteResolver.Resolve(token);
                if (emote != null)
                {
                    if (index > 0)
                    {
                        parts.Add(new TwitchChatMessagePart("text", " "));
                    }
                    parts.Add(new TwitchChatMessagePart("emote", emote.ImageUrl));
                    continue;
                }

                var word = wordResolver.Resolve(token);
                if (index > 0)
                {
                    parts.Add(new TwitchChatMessagePart("text", " "));
                }
                parts.Add(new TwitchChatMessagePart("text", word));
            }

            return(new TwitchChatMessage(sender, parts.ToArray()));
        }
Example #2
0
 public TwitchCommandListener(
     ILogger logger,
     IKernel kernel,
     IConnectionProvider connectionProvider,
     IMessageBus messageBus,
     ICommandHandler commandHandler,
     IChannelProvider channelProvider,
     IChatMessageWordResolver wordResolver,
     IConnectionCredentialsProvider credentialsProvider,
     ITwitchChatMessageEmoteResolverProvider emoteResolverProvider,
     ITwitchChatMessageParser chatMessageParser)
 {
     this.logger                = logger;
     this.kernel                = kernel;
     this.connectionProvider    = connectionProvider;
     this.messageBus            = messageBus;
     this.commandHandler        = commandHandler;
     this.channelProvider       = channelProvider;
     this.wordResolver          = wordResolver;
     this.credentialsProvider   = credentialsProvider;
     this.emoteResolverProvider = emoteResolverProvider;
     this.chatMessageParser     = chatMessageParser;
     this.CreateTwitchClient();
     this.Start();
 }