Ejemplo n.º 1
0
        public IrcConnection(IMessageBus messageBus)
            : base(messageBus)
        {
            commands = new IrcCommands(this.WriteLine);
            this.messageBus = messageBus;

            var myMessages = messageBus
                .AsObservable<DataReceivedMessage>()
                .Where(m => m.Connection == this); //only handle messages sent by this connection

            AttachParser(messageBus, myMessages);

            myMessages
                .Where(m => Patterns.ActionRegex.IsMatch(m.Data))
                .Do(_ => Console.ForegroundColor = ConsoleColor.Gray)
                .Do(m => Console.WriteLine("*** ActionRegex Message ****"))
                .Subscribe();

            myMessages
                .Where(m => Patterns.CtcpRequestRegex.IsMatch(m.Data))
                .Do(_ => Console.ForegroundColor = ConsoleColor.Gray)
                .Do(m => Console.WriteLine("*** CtcpRequestRegex Message ****"))
                .Subscribe();

            myMessages
                .Where(m => Patterns.InviteRegex.IsMatch(m.Data))
                .Do(_ => Console.ForegroundColor = ConsoleColor.Gray)
                .Do(m => Console.WriteLine("*** InviteRegex Message ****"))
                .Subscribe();

            myMessages
                .Where(m => Patterns.TopicRegex.IsMatch(m.Data))
                .Do(_ => Console.ForegroundColor = ConsoleColor.Gray)
                .Do(m => Console.WriteLine("*** TopicRegex Message ****"))
                .Subscribe();



            myMessages
                .Where(m => Patterns.KickRegex.IsMatch(m.Data))
                .Do(_ => Console.ForegroundColor = ConsoleColor.Gray)
                .Do(m => Console.WriteLine("*** KickRegex Message ****"))
                .Subscribe();

            myMessages
                .Where(m => Patterns.CtcpReplyRegex.IsMatch(m.Data))
                .Do(_ => Console.ForegroundColor = ConsoleColor.Gray)
                .Do(m => Console.WriteLine("*** CtcpReply Message ****"))
                .Subscribe();
        }
Ejemplo n.º 2
0
        public IrcConnection(IMessageBus messageBus)
            : base(messageBus)
        {
            commands        = new IrcCommands(this.WriteLine);
            this.messageBus = messageBus;

            var myMessages = messageBus
                             .AsObservable <DataReceivedMessage>()
                             .Where(m => m.Connection == this); //only handle messages sent by this connection

            AttachParser(messageBus, myMessages);

            myMessages
            .Where(m => Patterns.ActionRegex.IsMatch(m.Data))
            .Do(_ => Console.ForegroundColor = ConsoleColor.Gray)
            .Do(m => Console.WriteLine("*** ActionRegex Message ****"))
            .Subscribe();

            myMessages
            .Where(m => Patterns.CtcpRequestRegex.IsMatch(m.Data))
            .Do(_ => Console.ForegroundColor = ConsoleColor.Gray)
            .Do(m => Console.WriteLine("*** CtcpRequestRegex Message ****"))
            .Subscribe();

            myMessages
            .Where(m => Patterns.InviteRegex.IsMatch(m.Data))
            .Do(_ => Console.ForegroundColor = ConsoleColor.Gray)
            .Do(m => Console.WriteLine("*** InviteRegex Message ****"))
            .Subscribe();

            myMessages
            .Where(m => Patterns.TopicRegex.IsMatch(m.Data))
            .Do(_ => Console.ForegroundColor = ConsoleColor.Gray)
            .Do(m => Console.WriteLine("*** TopicRegex Message ****"))
            .Subscribe();



            myMessages
            .Where(m => Patterns.KickRegex.IsMatch(m.Data))
            .Do(_ => Console.ForegroundColor = ConsoleColor.Gray)
            .Do(m => Console.WriteLine("*** KickRegex Message ****"))
            .Subscribe();

            myMessages
            .Where(m => Patterns.CtcpReplyRegex.IsMatch(m.Data))
            .Do(_ => Console.ForegroundColor = ConsoleColor.Gray)
            .Do(m => Console.WriteLine("*** CtcpReply Message ****"))
            .Subscribe();
        }