Esempio n. 1
0
        public ConsoleApplication(
            ILogger <ConsoleApplication> logger,
            IOptions <AppSettings> config,
            IrcClient client,
            IrcMessageParser ircParser,
            TwitchCommandParser commandParser,
            PingHandler pingHandler,
            CatfactsCommand catfactCommand,
            IssLocationCommand iisLocationCommand,
            ExchangeRateCommand exchangeRateCommand,
            UrbanDictionaryCommand urbanDictionaryCommand,
            BrbCommand brbCommand,
            HiMarkCommand hiMarkCommand,
            SoundsCommand SoundsCommand,
            RollCommand RollCommand,
            TestCommand testCommand)

        {
            _logger        = logger;
            _config        = config;
            _client        = client;
            _ircParser     = ircParser;
            _commandParser = commandParser;
            _pingHandler   = pingHandler;
            commandObservers.Add(testCommand);
            commandObservers.Add(iisLocationCommand);
            commandObservers.Add(exchangeRateCommand);
            commandObservers.Add(catfactCommand);
            commandObservers.Add(brbCommand);
            commandObservers.Add(urbanDictionaryCommand);
            commandObservers.Add(hiMarkCommand);
            commandObservers.Add(SoundsCommand);
            commandObservers.Add(RollCommand);
        }
Esempio n. 2
0
        private static Tuple <ITargetBlock <string>, ISourceBlock <string> > SetupIrcDataflow()
        {
            var startpoint  = new TransformBlock <String, IrcMessage>(str => IrcMessageParser.Deserialize(str));
            var broadcaster = new BroadcastBlock <IrcMessage>(null);

            startpoint.LinkTo(broadcaster);
            var endpoint = new TransformBlock <IrcMessage, String>(msg => IrcMessageParser.Serialize(msg));

            Dataflows.InstallComplexPluginSystem(broadcaster, endpoint);
            Dataflows.InstallSimplePluginSystem(broadcaster, endpoint);

            return(Tuple.Create((ITargetBlock <string>)startpoint, (ISourceBlock <string>)endpoint));
        }
        public void TryParseShouldParseJoinMessageAndReturnTrue()
        {
            // Arrange
            var message = ":[email protected] JOIN #robo_caller";

            // Act
            var success = IrcMessageParser.TryParse(message, out var ircMessage);

            _output.WriteLine(JsonSerializer.Serialize(ircMessage));

            // Assert
            Assert.True(success);
            Assert.Empty(ircMessage.Tags);
            Assert.Equal("[email protected]", ircMessage.Source);
            Assert.NotEmpty(ircMessage.Parameters);
            Assert.Single(ircMessage.Parameters);
            Assert.Equal("#robo_caller", ircMessage.Parameters[0]);
        }
        public void TryParseShouldParsePingMessageAndReturnTrue()
        {
            // Arrange
            var message = "PING :tmi.twitch.tv";

            // Act
            var success = IrcMessageParser.TryParse(message, out var ircMessage);

            _output.WriteLine(JsonSerializer.Serialize(ircMessage));

            // Assert
            Assert.True(success);
            Assert.Empty(ircMessage.Tags);
            Assert.Null(ircMessage.Source);
            Assert.Equal("PING", ircMessage.Command);
            Assert.NotEmpty(ircMessage.Parameters);
            Assert.Single(ircMessage.Parameters);
            Assert.Equal("tmi.twitch.tv", ircMessage.Parameters[0]);
        }
        public void TryParseShouldParseHighlightedMessageAndReturnTrue()
        {
            // Arrange
            var message = "@badge-info=subscriber/19;badges=subscriber/12,premium/1;color=;display-name=user1;emotes=300737210:11-18/300737204:20-27;flags=;id=d9fdaa5d-a240-4c36-a3a4-433470bb2d49;mod=0;msg-id=highlighted-message;room-id=10817445;subscriber=1;tmi-sent-ts=1567552165005;turbo=0;user-id=187815264;user-type= :[email protected] PRIVMSG #itmejp :hello chat :itmejpM1: :itmejpM3: , just testing this highlight popup to see how glitzy this post will get";

            // Act
            var success = IrcMessageParser.TryParse(message, out var ircMessage);

            _output.WriteLine(JsonSerializer.Serialize(ircMessage));

            // Assert
            Assert.True(success);
            Assert.NotEmpty(ircMessage.Tags);
            Assert.Equal(15, ircMessage.Tags.Count);
            Assert.Equal("d9fdaa5d-a240-4c36-a3a4-433470bb2d49", ircMessage.Tags["id"]);
            Assert.Equal("subscriber/12,premium/1", ircMessage.Tags["badges"]);
            Assert.Equal("300737210:11-18/300737204:20-27", ircMessage.Tags["emotes"]);
            Assert.Equal("[email protected]", ircMessage.Source);
            Assert.NotEmpty(ircMessage.Parameters);
            Assert.Equal(2, ircMessage.Parameters.Count);
            Assert.Equal("#itmejp", ircMessage.Parameters[0]);
        }