Пример #1
0
    def to_profile_element(e):
        p = E(u'profile', namespace=XMPP_USER_PROFILE_NS)

        if e.x:
            Data.to_element(e.x, parent=p)

        return p
Пример #2
0
    def to_element(e):
        iq = Entity.to_element(e)
        p = E(u'profile', namespace=XMPP_USER_PROFILE_NS, parent=iq)

        if e.x:
            Data.to_element(e.x, parent=p)

        return iq
Пример #3
0
    def from_element(e):
        disco = FeaturesDiscovery(JID.parse(e.get_attribute_value('from')),
                                  JID.parse(e.get_attribute_value('to')),
                                  type=e.get_attribute_value('type'),
                                  stanza_id=e.get_attribute_value('id'))

        for c in e.xml_children:
            if not isinstance(c, E):
                continue
            
            if c.xml_ns in [XMPP_DISCO_INFO_NS, XMPP_DISCO_ITEMS_NS]:
                for i in c.xml_children:
                    if i.xml_ns in [XMPP_DISCO_INFO_NS, XMPP_DISCO_ITEMS_NS]:
                        if i.xml_name == 'identity':
                            ident = Identity(i.get_attribute_value('name'),
                                             i.get_attribute_value('category'),
                                             i.get_attribute_value('type'))
                            disco.identities.append(ident)
                        elif i.xml_name == 'feature':
                            feat = Feature(i.get_attribute_value('var'))
                            disco.features.append(feat)
                        elif i.xml_name == 'item':
                            jid = JID.parse(unicode(i.get_attribute_value('jid')))
                            item = Item(jid, i.get_attribute_value('action'),
                                        i.get_attribute_value('name'),
                                        i.get_attribute_value('node'))
                            disco.items.append(item)
                    elif i.xml_ns == XMPP_DATA_FORM_NS:
                        disco.x = Data.from_element(i)
            elif c.xml_ns == XMPP_CLIENT_NS and c.xml_name == 'error':
                disco.error = Error.from_element(c)

        return disco
Пример #4
0
    def to_element(e):
        iq = Entity.to_element(e)
        query = E(u'query', namespace=XMPP_IBR_NS, parent=iq)
        
        if e.remove:
            E(u'remove', namespace=XMPP_IBR_NS, parent=query)
        
        if e.registered:
            E(u'registered', namespace=XMPP_IBR_NS, parent=query)

        for info in e.infos:
           E(info, namespace=XMPP_IBR_NS, parent=query,
             content=e.infos[info]) 

        if e.x:
            Data.to_element(e.x, parent=query)

        return iq
Пример #5
0
    def from_profile_element(e):
        p = Profile()

        for c in e.xml_children:
            if not isinstance(c, E):
                continue
            
            if c.xml_ns == XMPP_DATA_FORM_NS:
                p.x = Data.from_element(c)

        return p
Пример #6
0
 def to_element(e, parent=None):
     c = E(u'configure', namespace=XMPP_PUBSUB_NS, parent=parent)
     Data.to_element(e.x, parent=c)
     return c