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); }
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]); }