コード例 #1
0
ファイル: JabberManager.cs プロジェクト: zaharvsb52/MyWmsPro
        private void OnDiscoNodeHandler2(DiscoManager sender, DiscoNode node, object state)
        {
            var param = node.Children.Cast <DiscoNode>();
            var rooms = _defaultRooms.Where(i => param.Any(j => i.Key.Equals(j.Name, StringComparison.InvariantCultureIgnoreCase)));

            foreach (var r in rooms)
            {
                JoinRoom(r.Key, r.Value);
            }
        }
コード例 #2
0
ファイル: BotEngine.cs プロジェクト: indigos33k3r/AutoBot
 private void hlp_DiscoHandler_FindServiceWithFeature(DiscoManager sender, DiscoNode node, object state)
 {
     if (node == null)
     {
         return;
     }
     if (node.Name == "Rooms")
     {
         _discoManager.BeginGetItems(node, hlp_DiscoHandler_SubscribeToRooms, new object());
     }
 }
コード例 #3
0
        void ReceivedItems(DiscoManager manager, DiscoNode node, object state)
        {
            string jid      = node.JID.ToString();
            string nodeName = String.Empty;

            if (node.Node != null)
            {
                nodeName = node.Node;
            }

            string   templateContent = Util.ReadResource("ServiceDiscovery.html");
            Template template        = new Template(templateContent);

            template.SetField("NAME", jid);
            template.SetField("HREF", String.Format("xmpp:{0}?disco", jid));
            template.SetField("NODE", nodeName);

            template.SelectSection("FEATURES");
            foreach (var feature in node.FeatureNames)
            {
                template.SetField("FEATURE_NAME", feature);
                template.AppendSection();
            }
            template.DeselectSection();

            template.SelectSection("ITEMS");
            foreach (DiscoNode item in node.Children)
            {
                template.SetField("ITEM_NAME", item.Name);
                template.SetField("ITEM_URL", String.Format("xmpp:{0}?disco;node={1}", item.JID.ToString(), item.Node));
                template.AppendSection();
            }
            template.DeselectSection();

            template.SelectSection("IDENTITIES");
            foreach (var identity in node.GetIdentities())
            {
                template.SetField("IDENTITY_NAME", identity.Name);
                template.SetField("IDENTITY_CATEGORY", identity.Category);
                template.SetField("IDENTITY_TYPE", identity.Type);
                template.AppendSection();
            }
            template.DeselectSection();

            QApplication.Invoke(delegate {
                Uri uri = new Uri(String.Format("xmpp:{0}?disco;node={1}", node.JID.ToString(), node.Node));
                LoadContent(uri, template.getContent());
            });
        }
コード例 #4
0
 private void GotRoot(DiscoManager sender, DiscoNode node, object state)
 {
     if (node.Children != null)
     {
         foreach (DiscoNode component in node.Children)
         {
             if (component.HasFeature(Jabber.Protocol.URI.MUC))
             {
                 cmbJID.Items.Add(component.JID);
             }
         }
         if (cmbJID.Items.Count > 0)
         {
             cmbJID.SelectedIndex = 0;
         }
     }
     cmbJID.EndUpdate();
 }
コード例 #5
0
ファイル: BotEngine.cs プロジェクト: indigos33k3r/AutoBot
        private void hlp_DiscoHandler_SubscribeToRooms(DiscoManager sender, DiscoNode node, object state)
        {
            if (node == null)
            {
                return;
            }

            if (node.Children != null && _subscribedRooms == "@all")
            {
                foreach (DiscoNode dn in node.Children)
                {
                    Logger.Info(string.Format("Subscribing to: '{0}':'{1}' on '{2}'", dn.JID, dn.Name, _jabberClient.Server));
                    // we have to build a new JID here, with the nickname included http://xmpp.org/extensions/xep-0045.html#enter-muc
                    JID  subscriptionJid = new JID(dn.JID.User, dn.JID.Server, "AutoBot .");
                    Room room            = _conferenceManager.GetRoom(subscriptionJid);
                    room.Join();
                }
            }
        }
コード例 #6
0
        public void ComplexGenerationExample()
        {
            XmlDocument doc = new XmlDocument();

            doc.LoadXml("<book xml:lang='en'/>");
            XmlElement book = doc.DocumentElement;

            foreach (XmlAttribute attr in book.Attributes)
            {
                System.Console.WriteLine(attr.Name);
            }

            XmlElement root = doc.DocumentElement;

            DiscoInfo info = new DiscoInfo(doc);

            info.AddFeature("http://jabber.org/protocol/muc");
            info.AddFeature("http://jabber.org/protocol/disco#info");
            info.AddFeature("http://jabber.org/protocol/disco#items");
            info.AddIdentity("client", "pc", "Psi 0.9.1", "en");
            info.AddIdentity("client", "pc", "\u03a8 0.9.1", "el");
            Data x = info.CreateExtension();

            x.FormType = "urn:xmpp:dataforms:softwareinfo";
            x.AddField("ip_version").Vals      = new string[] { "ipv4", "ipv6" };
            x.AddField("os").Val               = "Mac";
            x.AddField("os_version").Val       = "10.5.1";
            x.AddField("software").Val         = "Psi";
            x.AddField("software_version").Val = "0.11";

            DiscoNode dn = new DiscoNode(new JID(null, "placeholder", null), null);

            dn.AddInfo(info);

            CapsManager cm = new CapsManager(dn);

            Assert.AreEqual("8lu+88MRxmKM7yO3MEzY7YmTsWs=", cm.Ver);
        }
コード例 #7
0
 void ReceivedFeatures(DiscoManager manager, DiscoNode node, object state)
 {
     // Now query for items...
     m_Account.DiscoManager.BeginGetItems(node, new DiscoNodeHandler(ReceivedItems), null);
 }
コード例 #8
0
ファイル: JabberManager.cs プロジェクト: zaharvsb52/MyWmsPro
 private void OnDiscoNodeHandler1(DiscoManager sender, DiscoNode node, object state)
 {
     sender.BeginGetItems(node, OnDiscoNodeHandler2, state);
 }