Ejemplo n.º 1
0
 public ManageNetworksWindowViewModel()
 {
     if (Locator.Get <ISettings>().Networks.Any())
     {
         this.SelectedNetwork = Locator.Get <ISettings>().Networks[0];
     }
 }
Ejemplo n.º 2
0
        public void Run()
        {
            //I had been using hardcoded user information in this file but since it's about to go up
            //on github i've hastily taken that out and put in this ugly Console based transaction

            string userName  = "******";
            string nickNames = "kerbcalc kerbcalc1 kerbcalc2";
            string password  = "******";

            if (!File.Exists("password"))
            {
                FileStream   fs = File.OpenWrite("password");
                StreamWriter sw = new StreamWriter(fs);
                Console.WriteLine("enter password");
                sw.WriteLine(Console.ReadLine());
                sw.Close();
                sw.Dispose();
            }
            StreamReader sr = new StreamReader(File.OpenRead("password"));

            password = sr.ReadLine().Trim();
            sr.Close();
            sr.Dispose();

            IrcNetworkInfo mynet = new IrcNetworkInfo("bleh");

            mynet.AddServer("irc.freenode.net", 6667, password);
            IrcUser me = new IrcUser("A. Realname", userName, nickNames.Split(" ".ToCharArray()));

            mySession = new IrcSession(me, mynet, new MessageHandler(channel));
            mySession.Connect();
            if (mySession.Connected == true)
            {
                Console.WriteLine("Connected");
            }
            else
            {
                Console.WriteLine("Connection Failed!!");
                return;
            }
            mySession.JoinChannel(channel, null);



            while (true)
            {
                string bleh = Console.ReadLine();
                HandleLocalInput(bleh);
            }
        }
        private void AddNetworkMessageReceived(AddNetworkMessage message)
        {
            var info = new IrcNetworkInfo
            {
                HostName   = message.Name,
                PortNumber = message.Port,
                Password   = message.Password
            };

            this.AddNetwork(info);

            if (!Locator.Get <ISettings>().Networks.Any(i => i.HostName == info.HostName))
            {
                Locator.Get <ISettings>().Networks.Add(info);
            }
        }
        public IrcNetworkViewModel(IrcNetworkInfo info)
        {
            this.NetworkInfo = info;

            var wrapper = Locator.Get <ITcpService>().GetWrapper(info);

            this.Network = new IrcNetwork(wrapper);
            this.Network.Client.Encoding      = info.Encoding;
            this.Network.Client.IdentUserName = info.Nickname;

            this._logger = Locator.Get <IrcLogger>();
            this._logger.Start(this.Network.Client);

            this._networkInfoViewModel = new IrcNetworkInformationViewModel(this.Network, this);

            this.Conversations = new ObservableCollection <IrcConversationViewModel>();
            this.Conversations.Add(this._networkInfoViewModel);

            this.SelectedConversation = this._networkInfoViewModel;

            this.Network.Connected      += Network_Connected;
            this.Network.Authenticated  += Network_Authenticated;
            this.Network.ConnectionLost += Network_ConnectionLost;

            this.Network.ChannelDiscovered += Network_ChannelDiscovered;
            this.Network.UserDiscovered    += Network_UserDiscovered;

            this.Network.ChannelListReceived += Network_ChannelListReceived;
            this.Network.InformationReceived += Network_InformationReceived;
            this.Network.ErrorReceived       += Network_ErrorReceived;
            this.Network.NicknameCollision   += Network_NicknameCollision;

            PropertyChangedEventManager.AddHandler(this.Network.CurrentUser, CurrentUser_NicknameChanged, o => o.Nickname);
            PropertyChangedEventManager.AddHandler(this.NetworkInfo, NetworkInfo_EncodingChanged, o => o.Encoding);

            Messenger.Register <ChangeEncodingMessage>(ChangeEncodingHandler, m => m.Network == this.Network);
            Messenger.Register <JoinChannelMessage>(JoinChannelHandler, m => m.Network == this.Network || m.Network == null && this.IsSelected);
            Messenger.Register <LeaveChannelMessage>(LeaveChannelHandler, m => m.Network == this.Network);
            Messenger.Register <GlobalMessageSentMessage>(GlobalMessageSentHandler, m => m.Network == this.Network);
            Messenger.Register <UserMessageSentMessage>(UserMessageSentHandler, m => m.Network == this.Network);
            Messenger.Register <ChannelMessageSentMessage>(ChannelMessageSentHandler, m => m.Network == this.Network);
            Messenger.Register <GlobalMessageReceivedMessage>(GlobalMessageReceivedHandler, m => m.Network == this.Network);
            Messenger.Register <UserMessageReceivedMessage>(UserMessageReceivedHandler, m => m.Network == this.Network);
            Messenger.Register <OpenPrivateConversationMessage>(OpenPrivateConversationHandler, m => m.Network == this.Network);
            Messenger.Register <ConversationEndMessage>(ConversationEndHandler, m => m.Network == this.Network);
            Messenger.Register <UnreadMessageReceivedMessage>(UnreadMessageReceivedHandler, m => m.Network == this.Network);
        }
        public void AddNetwork(IrcNetworkInfo info)
        {
            if (info == null)
            {
                throw new ArgumentNullException("info");
            }

            var existingNetwork = this._networks.FirstOrDefault(n => n.NetworkInfo.HostName == info.HostName);

            if (existingNetwork != null)
            {
                existingNetwork.Connect();
                return;
            }

            var network = new IrcNetworkViewModel(info);

            this.Networks.Add(network);
            this.SelectedNetwork = network;
            network.Connect();
        }
Ejemplo n.º 6
0
 public TcpWrapper GetWrapper(IrcNetworkInfo info)
 {
     return(new SocketWrapper(info.HostName, info.PortNumber, info.UseSsl, info.AcceptInvalidCertificates));
 }
 public EditNetworkWindowViewModel(IrcNetworkInfo info)
 {
     this.NetworkInfo = info;
     this._title      = Locator.Get <ITranslationService>().Translate("EditNetworkWindow", "EditNetworkTitle", this.NetworkInfo.FriendlyName);
     this.SetEncodings();
 }