Example #1
0
        void XmppClient_OnRosterEnd(object sender, Matrix.EventArgs e)
        {
            Log.Debug("XmppClient_OnRosterEnd");

            this.presenceManager               = new PresenceManager(this.xmppClient);
            this.presenceManager.OnSubscribe  += PresenceManager_OnSubscribe;
            this.presenceManager.OnSubscribed += PresenceManager_OnSubscribed;

            this.rosterManager = new RosterManager(this.xmppClient);

            this.mucManager           = new MucManager(this.xmppClient);
            this.mucManager.OnInvite += MucManager_OnInvite;

            this.pubsubManager          = new PubSubManager(this.xmppClient);
            this.pubsubManager.OnEvent += PubsubManager_OnEvent;
            this.pubsubManager.Subscribe(_pubsubServer, "urn:xmpp:openpgp:0", this._jid);

            this.discoManager = new DiscoManager(this.xmppClient);

            this.openPGP = new OpenPGP(this, this._jid);

            if (this.OnConnected != null)
            {
                this.OnConnected(this, e);
            }
        }
Example #2
0
        public void Click()
        {
            long timeToAdd = DiscordTime.TimeNow();

            DiscordTime.AddTime(ref timeToAdd, 30);
            PresenceManager.UpdatePresence(null, end: timeToAdd);
        }
Example #3
0
 private void Prec(object sender, Presence p)
 {
     if (p.Type == agsXMPP.protocol.client.PresenceType.subscribe)
     {
         PresenceManager OnUser = new PresenceManager(x);
         if (AutoAccept)
         {
             try
             {
                 Message(owner, p.From.User + " sent you a friend request.");
                 OnUser.ApproveSubscriptionRequest(p.From);
                 Message(owner, p.From.User + " is accepted now");
             }
             catch { }
         }
         else
         {
             try
             {
                 Message(owner, p.From.User + " sent you a friend request.");
                 addeduserlist.Text += p.From.User + "\n";
             }
             catch { }
         }
     }
     else if (p.Type == PresenceType.subscribed)
     {
         Message(owner, p.From.User + "@nimbuzz.com accepted your friend request.");
     }
     else if (p.Type == PresenceType.unsubscribed)
     {
         // Message(owner, "" + p.From.User + "@nimbuzz.com has deleted you from his/her friend list.");
     }
 }
Example #4
0
        public void TestRemove()
        {
            PresenceManager pp   = new PresenceManager();
            Presence        pres = new Presence(doc);
            JID             f    = new JID("foo", "bar", "baz");

            pres.From     = f;
            pres.Status   = "Working";
            pres.Priority = "1";
            pp.AddPresence(pres);
            Assert.AreEqual("foo@bar/baz", pp[f].From.ToString());
            f.Resource = null;
            Assert.AreEqual("foo@bar/baz", pp[f].From.ToString());

            pres        = new Presence(doc);
            pres.Status = "wandering";
            pres.From   = new JID("foo", "bar", "boo");
            pp.AddPresence(pres);
            Assert.AreEqual("Working", pp[f].Status);
            pres.Priority = "2";
            pp.AddPresence(pres);
            Assert.AreEqual("wandering", pp[f].Status);
            pres.Type = PresenceType.unavailable;
            pp.AddPresence(pres);
            Assert.AreEqual("Working", pp[f].Status);
        }
Example #5
0
 //用户状态事件
 void objXmpp_OnPresence(object sender, agsXMPP.protocol.client.Presence pres)
 {
     if (pres.Type == PresenceType.available)//当服务端在线时
     {
         //UserStatus(pres);
         if (pres.From.Bare == strMonitorServer)
         {
             //thSendMessage.IsBackground = false;
             if (thSendMessage == null)
             {
                 Monitor_Start();
             }
             else if (thSendMessage.ThreadState == ThreadState.Suspended)
             {
                 thSendMessage.Resume();
             }
         }
     }
     else if (pres.Type == PresenceType.unavailable)//当服务端离线时
     {
         if (pres.From.Bare == strMonitorServer)
         {
             thSendMessage.Suspend();
         }
     }
     else if (pres.Type == PresenceType.subscribe)//自动处理加好友请求
     {
         PresenceManager PM = new PresenceManager(objXmpp);
         PM.ApproveSubscriptionRequest(new Jid(pres.From.ToString()));//同意订阅
         PM.Subscribe(new Jid(pres.From.ToString()));
     }
 }
Example #6
0
        public static async Task Handle(Packet p, Presence pr)
        {
            var ms = new MemoryStream(p.Data);

            using var reader = new SerializationReader(ms);

            var userId = reader.ReadInt32();

            var spectatingPresence = PresenceManager.GetPresenceById(userId);

            pr.Spectating = spectatingPresence;
            await pr.Spectating.SpectatorJoined(pr.Id);

            if (pr.Spectating.SpectatorChannel is null)
            {
                var channel = new Channel($"spect_{pr.Spectating.Id}", "", 1, true);
                pr.Spectating.SpectatorChannel = channel;

                ChannelManager.Channels.TryAdd(channel.RawName, channel);

                await pr.Spectating.JoinChannel($"spect_{pr.Spectating.Id}");
            }

            await pr.JoinChannel($"spect_{pr.Spectating.Id}");

            spectatingPresence.Spectators.Add(pr);
        }
Example #7
0
        public static async Task Handle(Packet p, Presence pr)
        {
            var ms = new MemoryStream(p.Data);

            using var reader = new SerializationReader(ms);

            var presenceIds = new List <int>();
            int length      = reader.ReadInt16();

            for (var i = 0; i < length; i++)
            {
                presenceIds.Add(reader.ReadInt32());
            }

            foreach (var prId in presenceIds)
            {
                var otherPresence = PresenceManager.GetPresenceById(prId);
                if (otherPresence is not null)
                {
                    await pr.UserPresence(otherPresence);
                }
                else
                {
                    await pr.UserLogout(prId);
                }
            }
        }
Example #8
0
        public void TestComparisons()
        {
            PresenceManager pp = new PresenceManager();

            Presence pres = new Presence(doc);

            pres.From        = baz;
            pres.IntPriority = -1;
            pp.AddPresence(pres);
            Assert.AreEqual(null, pp[bare]);

            pres             = new Presence(doc);
            pres.From        = boo;
            pres.IntPriority = 0;
            pres.Show        = "away";
            pp.AddPresence(pres);
            Assert.AreEqual(boo, pp[bare].From);

            pres             = new Presence(doc);
            pres.From        = baz;
            pres.IntPriority = 0;
            pres.Show        = "xa";
            pp.AddPresence(pres);
            Assert.AreEqual(boo, pp[bare].From);

            pres             = new Presence(doc);
            pres.From        = boo;
            pres.IntPriority = 1;
            pp.AddPresence(pres);
            Assert.AreEqual(boo, pp[bare].From);
        }
Example #9
0
        public static void Handle(Packet p, Presence pr, OyasumiDbContext context)
        {
            var ms = new MemoryStream(p.Data);

            using var reader = new SerializationReader(ms);

            var id = reader.ReadInt32();

            var friend = PresenceManager.GetPresenceById(id);

            if (friend is null)
            {
                return;
            }

            var exists = context.Friends.FirstOrDefault(x => x.Friend2 == id);

            if (exists is not null)
            {
                return;
            }

            context.Friends.Add(new ()
            {
                Friend1 = pr.Id,
                Friend2 = id
            });

            Base.FriendCache[pr.Id].Add(friend.Id);

            context.SaveChanges();
        }
Example #10
0
        /// <summary>Signin button</summary>
        private void btnSignin_Click(object sender, EventArgs e)
        {
            panelCredentials.Enabled = false;

            JID jid = new JID(txtUserName.Text);

            if (String.IsNullOrEmpty(jid.User))
            {
                jabberClient.User   = txtUserName.Text;
                jabberClient.Server = cbServer.Text.Equals(DEFAULT_SERVER) ? "gmail.com" : cbServer.Text;
            }
            else
            {
                jabberClient.User   = jid.User;
                jabberClient.Server = jid.Server;
            }
            jabberClient.NetworkHost  = cbServer.Text;
            jabberClient.Password     = txtPassword.Text;
            jabberClient.AutoRoster   = true;
            jabberClient.AutoStartTLS = true;
            jabberClient.AutoPresence = true;
            jabberClient.AutoLogin    = true;
            jabberClient.Resource     = "realjabber";
            //jabberClient.PlaintextAuth = true;
            jabberClient.OnAuthenticate       += new bedrock.ObjectHandler(jabberClient_OnAuthenticate);
            jabberClient.OnInvalidCertificate += new System.Net.Security.RemoteCertificateValidationCallback(jabberClient_OnInvalidCertificate);
            jabberClient.AddNamespace("rtt", RealTimeTextUtil.RealTimeText.NAMESPACE);
            jabberClient.OnIQ += new IQHandler(jabberClient_OnIQ);

            rosterMgr                   = new RosterManager();
            rosterMgr.Stream            = jabberClient;
            rosterMgr.AutoSubscribe     = true;
            rosterMgr.AutoAllow         = jabber.client.AutoSubscriptionHanding.AllowAll;
            rosterMgr.OnRosterBegin    += new bedrock.ObjectHandler(RosterMgr_OnRosterBegin);
            rosterMgr.OnRosterEnd      += new bedrock.ObjectHandler(RosterMgr_OnRosterEnd);
            rosterMgr.OnRosterItem     += new RosterItemHandler(RosterMgr_OnRosterItem);
            rosterMgr.OnSubscription   += new SubscriptionHandler(rosterMgr_OnSubscription);
            rosterMgr.OnUnsubscription += new UnsubscriptionHandler(rosterMgr_OnUnsubscription);

            discoMgr        = new DiscoManager();
            discoMgr.Stream = jabberClient;

            capsMgr = new CapsManager();
            capsMgr.DiscoManager = discoMgr;
            capsMgr.AddFeature(RealTimeTextUtil.RealTimeText.NAMESPACE);
            capsMgr.Node   = RealTimeTextUtil.RealTimeText.NAMESPACE;
            capsMgr.Stream = jabberClient;

            presenceMgr             = new PresenceManager();
            presenceMgr.Stream      = jabberClient;
            presenceMgr.CapsManager = capsMgr;

            rosterTree.RosterManager   = rosterMgr;
            rosterTree.PresenceManager = presenceMgr;
            rosterTree.DoubleClick    += new EventHandler(rosterTree_DoubleClick);

            lblUser.Text = jabberClient.User;
            jabberClient.Connect();
        }
Example #11
0
        private void cmdRefuse_Click(object sender, EventArgs e)
        {
            PresenceManager pm = new PresenceManager(_connection);

            pm.RefuseSubscriptionRequest(_from);

            this.Close();
        }
        private void cmdApprove_Click(object sender, System.EventArgs e)
        {
            PresenceManager pm = new PresenceManager(_connection);

            pm.ApproveSubscriptionRequest(_from);

            this.Close();
        }
Example #13
0
        public static async Task <Match> ReadMatch(this SerializationReader reader)
        {
            var match = new Match();

            reader.ReadInt16(); // match id
            reader.ReadByte();  // in progress

            match.Type       = (MatchTypes)reader.ReadByte();
            match.ActiveMods = (Mods)reader.ReadInt32();

            match.GameName     = reader.ReadString();
            match.GamePassword = reader.ReadString();

            reader.ReadString(); // beatmap name

            match.BeatmapId       = reader.ReadInt32();
            match.BeatmapChecksum = reader.ReadString();

            match.Beatmap = (await BeatmapManager.Get(match.BeatmapChecksum)).Item2;

            foreach (var slot in match.Slots)
            {
                slot.Status = (SlotStatus)reader.ReadByte();
            }

            foreach (var slot in match.Slots)
            {
                slot.Team = (SlotTeams)reader.ReadByte();
            }

            foreach (var slot in match.Slots)
            {
                if ((slot.Status & SlotStatus.HasPlayer) > 0)
                {
                    reader.ReadInt32();
                }
            }

            match.Host = PresenceManager.GetPresenceById(reader.ReadInt32());

            match.PlayMode    = (PlayMode)reader.ReadByte();
            match.ScoringType = (MatchScoringTypes)reader.ReadByte();
            match.TeamType    = (MatchTeamTypes)reader.ReadByte();
            match.FreeMods    = reader.ReadBoolean();

            if (match.FreeMods)
            {
                foreach (var slot in match.Slots)
                {
                    slot.Mods = (Mods)reader.ReadInt32();
                }
            }

            match.Seed = reader.ReadInt32();

            return(match);
        }
Example #14
0
        public static async Task Handle(Packet p, Presence pr)
        {
            if (Time.CurrentUnixTimestamp - pr.LoginTime < 2)
            {
                return;
            }

            await PresenceManager.Remove(pr);
        }
Example #15
0
        public ChatClient(IPEndPoint endPoint, bool ssl)
        {
            TcpClient = new TcpStringClient(endPoint, ssl);

            PresenceManager = new PresenceManager(this);
            IqManager       = new IqHandler(this);
            MessageManager  = new MessageManager(this);
            AuthHandler     = new AuthHandler(this);
        }
Example #16
0
        public void TestUserHost()
        {
            PresenceManager pp   = new PresenceManager();
            Presence        pres = new Presence(doc);
            JID             f    = new JID("foo", "bar", null);

            pres.From = f;
            pp.AddPresence(pres);
            Assert.AreEqual("foo@bar", pp[f.Bare].From.ToString());
        }
Example #17
0
        public async Task ConnectSSL(string host, AuthCred cred)
        {
            PresenceManager = new PresenceManager(this);
            IqManager       = new IqHandler(this);
            await TcpClient.ConnectSSL(host);

            TcpClient.SendString(
                $"<stream:stream to=\"{host}\" xml:lang=\"*\" version=\"1.0\" xmlns:stream=\"http://etherx.jabber.org/streams\" xmlns=\"jabber:client\">");
            AuthCred = cred;
        }
Example #18
0
        public void TestHostResource()
        {
            PresenceManager pp   = new PresenceManager();
            Presence        pres = new Presence(doc);
            JID             f    = new JID(null, "bar", "baz");

            pres.From = f;
            pp.AddPresence(pres);
            Assert.AreEqual("bar/baz", pp[f.Bare].From.ToString());
        }
Example #19
0
        public BotEngine()
        {
            _jabberClient = new JabberClient
            {
                Server        = ConfigurationManager.AppSettings["HipChatServer"],
                User          = ConfigurationManager.AppSettings["HipChatUsername"],
                Password      = ConfigurationManager.AppSettings["HipChatPassword"],
                Resource      = ConfigurationManager.AppSettings["HipChatResource"],
                AutoStartTLS  = true,
                PlaintextAuth = true,
                AutoPresence  = true,
                AutoRoster    = false,
                AutoReconnect = 1,
                AutoLogin     = true,
                KeepAlive     = 10
            };

            _jabberClient.OnConnect            += jabber_OnConnect;
            _jabberClient.OnAuthenticate       += jabber_OnAuthenticate;
            _jabberClient.OnInvalidCertificate += jabber_OnInvalidCertificate;
            _jabberClient.OnError        += jabber_OnError;
            _jabberClient.OnReadText     += jabber_OnReadText;
            _jabberClient.OnWriteText    += jabber_OnWriteText;
            _jabberClient.OnStreamInit   += jabber_OnStreamInit;
            _jabberClient.OnDisconnect   += jabber_OnDisconnect;
            _jabberClient.OnRegistered   += jabber_OnRegistered;
            _jabberClient.OnRegisterInfo += jabber_OnRegisterInfo;
            _jabberClient.OnMessage      += jabber_OnMessage;
            OnMessageReceived            += Session_OnMessageReceived;

            _presenceManager = new PresenceManager
            {
                Stream = _jabberClient
            };
            _presenceManager.OnPrimarySessionChange += presenceManager_OnPrimarySessionChange;

            _conferenceManager = new ConferenceManager();
            _discoManager      = new DiscoManager();

            _mentionName      = ConfigurationManager.AppSettings["HipChatBotMentionName"];
            _subscribedRooms  = ConfigurationManager.AppSettings["HipChatRooms"];
            _powershellRunner = new PowerShellRunner();

            _thread = new Thread(delegate()
            {
                while (_serviceStarted)
                {
                    //TODO Add background task implementation here
                    Thread.Sleep(1000);
                }
                Thread.CurrentThread.Abort();
            }
                                 );
        }
Example #20
0
        public void TestNumeric()
        {
            PresenceManager pp   = new PresenceManager();
            Presence        pres = new Presence(doc);
            JID             f    = new JID("support", "conference.192.168.32.109", "bob");

            pres.From   = f;
            pres.Status = "Working";
            pp.AddPresence(pres);
            Assert.AreEqual("[email protected]/bob", pp[f].From.ToString());
            f.Resource = null;
            Assert.AreEqual("[email protected]/bob", pp[f].From.ToString());
        }
Example #21
0
 void add()
 {
     try
     {
         ListBox sent    = new ListBox();
         ListBox matiual = new ListBox();
         Send(sender1, "Transfering...");
         if (list1.Items.Count != 0)
         {
             for (int i = 0; i < list1.Items.Count; i++)
             {
                 if (!list2.Items.ToString().ToLower().Contains(list1.Items[i].ToString().ToLower()))
                 {
                     sent.Items.Add(list1.Items[i]);
                     Jid jid = new Jid(list1.Items[i] + "@nimbuzz.com");
                     y.RosterManager.AddRosterItem(jid);
                     PresenceManager man = new PresenceManager(y);
                     man.Subscribe(jid);
                     Form1.transfereduserscount++;
                 }
                 else
                 {
                     matiual.Items.Add(list1.Items[i]);
                 }
             }
             if (!isComplete)
             {
                 Thread thrd = new Thread(() => {
                     isComplete = true;
                     Send(sender1, "Transfer completed");
                     Thread.Sleep(3000);
                     Send(sender1, "Disconnecting...");
                     Thread.Sleep(3000);
                     y.Close();
                     x.Close();
                     Send(sender1, "Disconnected");
                     Thread.Sleep(3000);
                     Send(sender1, "Transfered: " + sent.Items.Count + "\nAlready Existed: " + matiual.Items.Count + "\nTotal: " + list1.Items.Count);
                     Send(sender1, "It may take up-to 24hours to appear transferred Users in " + y.Username + "@nimbuzz.com");
                 }); thrd.IsBackground = true; thrd.Start();
             }
         }
         else
         {
             Send(sender1, "It seems that there are no new IDs  to transfer.");
         }
         return;
     }
     catch { }
     return;
 }
Example #22
0
 //状态处理
 void objXmpp_OnPresence(object sender, Presence pres)
 {
     G_Status("", String.Format("Got presence from: {0}", pres.From.ToString()));
     G_Status("", String.Format("type: {0}", pres.Type.ToString()));
     G_Status("", String.Format("status: {0}", pres.Status));
     //自动处理加好友请求
     if (pres.Type == PresenceType.subscribe)
     {
         PresenceManager PM = new PresenceManager(objXmpp);
         PM.ApproveSubscriptionRequest(new Jid(pres.From.ToString()));//同意订阅
         PM.Subscribe(new Jid(pres.From.ToString()));
     }
     //PresenceType.available    在线
     //PresenceType.unavailable  离线
 }
Example #23
0
    // Add contact to contact list
    void AddNewContact()
    {
        var rm  = new RosterManager(xmppClient);
        var pm  = new PresenceManager(xmppClient);
        Jid jid = ReceiverName.text;

        if (string.IsNullOrEmpty(NickName.text))
        {
            rm.Add(jid, ReceiverName.text);
        }
        else
        {
            rm.Add(jid, NickName.text);
        }
        pm.Subscribe(jid);
    }
Example #24
0
        private void addToolStripMenuItem_Click(object sender, System.EventArgs e)
        {
            var input = new FrmAddUser(_dictContactGroups, true, xmppClient);

            if (input.ShowDialog() == DialogResult.OK)
            {
                _dictContactGroups = input.DictContactGroups;
                var rm  = new RosterManager(xmppClient);
                Jid jid = input.Address;
                rm.Add(jid, input.Name, input.Group);

                var    pm     = new PresenceManager(xmppClient);
                string reason = input.Message;
                pm.Subscribe(jid, reason, input.Name);
            }
        }
Example #25
0
 void objXmpp_OnPresence(object sender, agsXMPP.protocol.client.Presence pres)
 {
     if (pres.Type == PresenceType.available)
     {
         UserStatus(pres);
     }
     else if (pres.Type == PresenceType.unavailable)
     {
         UserStatus(pres);
     }
     else if (pres.Type == PresenceType.subscribe)//自动处理加好友请求
     {
         PresenceManager PM = new PresenceManager(objXmpp);
         PM.ApproveSubscriptionRequest(new Jid(pres.From.ToString()));//同意订阅
         PM.Subscribe(new Jid(pres.From.ToString()));
     }
 }
Example #26
0
        public void TestNewPrimaryAlgorithm()
        {
            PresenceManager pp = new PresenceManager();

            Presence pres = new Presence(doc);

            pres.From        = baz;
            pres.IntPriority = 1;
            pp.AddPresence(pres);
            Assert.AreEqual(1, pp[bare].IntPriority);
            Assert.AreEqual(baz, pp[bare].From);

            pres             = new Presence(doc);
            pres.From        = boo;
            pres.IntPriority = 2;
            pp.AddPresence(pres);
            // duh.
            Assert.AreEqual(2, pp[bare].IntPriority);
            Assert.AreEqual(boo, pp[bare].From);

            pres             = new Presence(doc);
            pres.From        = boo;
            pres.IntPriority = 0;
            pp.AddPresence(pres);
            Assert.AreEqual(1, pp[bare].IntPriority);
            Assert.AreEqual(baz, pp[bare].From); // ooo

            pres      = new Presence(doc);
            pres.From = boo;
            pres.Type = PresenceType.unavailable;
            pp.AddPresence(pres);
            Assert.AreEqual(1, pp[bare].IntPriority);
            Assert.AreEqual(baz, pp[bare].From);

            pres             = new Presence(doc);
            pres.From        = baz;
            pres.IntPriority = -1;
            pp.AddPresence(pres);
            Assert.AreEqual(null, pp[bare]);

            pres      = new Presence(doc);
            pres.From = baz;
            pres.Type = PresenceType.unavailable;
            pp.AddPresence(pres);
            Assert.AreEqual(0, pp.GetAll(bare).Length);
        }
Example #27
0
        public void TestGetAll()
        {
            PresenceManager pp = new PresenceManager();

            Presence pres = new Presence(doc);

            pres.From = baz;
            pp.AddPresence(pres);

            pres      = new Presence(doc);
            pres.From = boo;
            pp.AddPresence(pres);

            Presence[] pa = pp.GetAll(bare);
            Assert.AreEqual(2, pa.Length);
            Assert.AreEqual(pa[0].GetType(), typeof(Presence));
        }
Example #28
0
        public static XmppClient InitXmppClient(string userName, string passWord, string domain, string server)
        {
            StaticClass2.xmppClient          = new XmppClient(userName, domain, passWord);
            StaticClass2.xmppClient.Hostname = server;

            //StaticClass.xmppClient.Open();

            StaticClass2.pm = new PresenceManager(xmppClient);
            StaticClass2.rm = new RosterManager(xmppClient);

            StaticClass2.muc = new MucManager(xmppClient);

            StaticClass2.fm = new FileTransferManager();
            //StaticClass.fm.OnProgress += Fm_OnProgress;
            //StaticClass.fm.OnEnd += Fm_OnEnd;

            return(StaticClass2.xmppClient);
        }
Example #29
0
        public void TestAdd()
        {
            PresenceManager pp   = new PresenceManager();
            Presence        pres = new Presence(doc);
            JID             f    = new JID("foo", "bar", "baz");

            pres.From = f;
            pp.AddPresence(pres);
            Assert.AreEqual("foo@bar/baz", pp[f].From.ToString());
            f.Resource = null;
            Assert.AreEqual("foo@bar/baz", pp[f].From.ToString());

            pres        = new Presence(doc);
            pres.Status = "wandering";
            pres.From   = new JID("foo", "bar", "baz");
            pp.AddPresence(pres);
            Assert.AreEqual("wandering", pp[f].Status);
        }
Example #30
0
 private void Presence(object sender, Presence pFrom)
 {
     if (pFrom.Type == agsXMPP.protocol.client.PresenceType.subscribe)
     {
         PresenceManager pr = new PresenceManager(x);
         if (this.opti1.ToLower() == "on")
         {
             pr.ApproveSubscriptionRequest(pFrom.From);
         }
         else if (this.opti1 == "off")
         {
             pr.RefuseSubscriptionRequest(pFrom.From);
         }
         else
         {
             pr.RefuseSubscriptionRequest(pFrom.From);
         }
     }
 }
Example #31
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sJid">S jid.</param>
        /// <param name="sPassword">S password.</param>
        public XmppManager(AuthInfo authInfo, XmppServiceDescription xmppServiceDescription, OTRKeyRing _OTRKeyRing, OpenPGPRing _OpenPGPRing, ConversationManager _conversationManager, AddressBook _addressBook, Logger _logger)
        {
            try
            {
                m_Logger = _logger;
                m_OTRKeyRing = _OTRKeyRing;
                m_OpenPGPRing = _OpenPGPRing;
                m_AuthInfo = authInfo;
                m_OwnJid = new Jid (m_AuthInfo.m_sId);
                m_ClientConnection = new XmppClientConnection(m_OwnJid.Server);
                m_Contacts = new Dictionary<string, string> ();
                m_Logger.log(ELogLevel.LVL_INFO, "Trying to log in xmpp user", m_sModuleName);
                m_ClientConnection.Open(m_OwnJid.User, m_AuthInfo.m_sPassword);
                m_ConversationManager = _conversationManager;
                m_AddressBook = _addressBook;
                m_PresenceManager = new PresenceManager(m_AddressBook);
                m_OtrConnections = new Dictionary<string, int>();

                //register EventHandlers
                m_ClientConnection.OnLogin += new ObjectHandler(onLogin);
                m_ClientConnection.OnPresence += new PresenceHandler(OnPresence);
            }
            catch(Exception e) {
                Console.Write (e.Message);
            }

            //info: message callback is registered in onRosterItem callback
        }
 private PersonState createPersonState(PresenceManager.PersonState personState)
 {
     if (personState == null) return null;
     return new PersonState()
     {
         name = personState.name,
         lastSeen = personState.lastSeen,
         lastLeft = personState.lastLeft,
         IsPresent = personState.IsPresent()
     };
 }
Example #33
0
        private void addToolStripMenuItem_Click(object sender, System.EventArgs e)
        {
            var input = new FrmAddUser(_dictContactGroups, true, xmppClient);
            if (input.ShowDialog() == DialogResult.OK)
            {
                _dictContactGroups = input.DictContactGroups;
                var rm = new RosterManager(xmppClient);
                Jid jid = input.Address;
                rm.Add(jid, input.Name, input.Group);

                var pm = new PresenceManager(xmppClient);
                string reason = input.Message;
                pm.Subscribe(jid, reason, input.Name);
            }
        }
Example #34
0
        private void xmppClient_OnPresence(object sender, PresenceEventArgs e)
        {
            DisplayEvent(string.Format("OnPresence\t{0}", e.Presence.From));

            if (e.Presence.Type == PresenceType.Subscribe)
            {
                //presenceManager.ApproveSubscriptionRequest(e.Presence.From);
                var item = listContacts.Items[e.Presence.From.Bare] as RosterListViewItem;
                if (item != null)
                {
                    var pm = new PresenceManager(xmppClient);
                    pm.ApproveSubscriptionRequest(e.Presence.From);
                }
                else
                {
                    var input = new FrmAddUser(_dictContactGroups, true, xmppClient);
                    input.Address = e.Presence.From;
                    if (input.ShowDialog() == DialogResult.OK)
                    {
                        _dictContactGroups = input.DictContactGroups;
                        var rm = new RosterManager(xmppClient);
                        Jid jid = input.Address;
                        rm.Add(jid, input.Name, input.Group);

                        var pm = new PresenceManager(xmppClient);
                        pm.ApproveSubscriptionRequest(e.Presence.From);
                        //string reason = input.Message;
                        //pm.Subscribe(jid, reason, input.Name);
                    }
                }
            }
            else if (e.Presence.Type == PresenceType.Subscribed)
            {
                var pm = new PresenceManager(xmppClient);
                pm.ApproveSubscriptionRequest(e.Presence.From);
            }
            else if (e.Presence.Type == PresenceType.Unsubscribe)
            {
                var pm = new PresenceManager(xmppClient);
                pm.ApproveSubscriptionRequest(e.Presence.From);
                var rm = new RosterManager(xmppClient);
                Jid jid = e.Presence.From;
                rm.Remove(jid);
            }
            else if (e.Presence.Type == PresenceType.Unsubscribed)
            {
                var pm = new PresenceManager(xmppClient);
                pm.ApproveSubscriptionRequest(e.Presence.From);
                var rm = new RosterManager(xmppClient);
                Jid jid = e.Presence.From;
                rm.Remove(jid);
            }
            else
            {
                var item = listContacts.Items[e.Presence.From.Bare] as RosterListViewItem;
                if (item != null)
                {
                    item.ImageIndex = Util.GetRosterImageIndex(e.Presence);
                    string resource = e.Presence.From.Resource;
                    if (e.Presence.Type != PresenceType.Unavailable)
                    {
                        if (!item.Resources.Contains(resource))
                            item.Resources.Add(resource);
                    }
                    else
                    {
                        if (item.Resources.Contains(resource))
                            item.Resources.Remove(resource);
                    }
                }
            }
        }