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); } }
public void Click() { long timeToAdd = DiscordTime.TimeNow(); DiscordTime.AddTime(ref timeToAdd, 30); PresenceManager.UpdatePresence(null, end: timeToAdd); }
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."); } }
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); }
//用户状态事件 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())); } }
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); }
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); } } }
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); }
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(); }
/// <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(); }
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(); }
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); }
public static async Task Handle(Packet p, Presence pr) { if (Time.CurrentUnixTimestamp - pr.LoginTime < 2) { return; } await PresenceManager.Remove(pr); }
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); }
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()); }
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; }
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()); }
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(); } ); }
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()); }
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; }
//状态处理 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 离线 }
// 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); }
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); } }
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())); } }
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); }
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)); }
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); }
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); }
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); } } }
/// <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() }; }
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); } } } }