Exemple #1
0
def gen_error(node,
              error_code='500',
              error_type='wait',
              error_name='internal-server-error',
              text=None,
              childs=False):
    """Генерирует ошибку из Node. По умолчанию internal-server-error."""
    err = Node(node.getName())
    if node['to']: err['from'] = node['to']
    if node['from']: err['to'] = node['from']
    if node['id']: err['id'] = node['id']
    err['type'] = 'error'
    if childs:
        for c in node.getChildren():
            if not c: continue
            err.addChild(node=c)
    e = err.addChild('error')
    e['type'] = error_type
    e['code'] = error_code
    e.addChild(error_name).setNamespace("urn:ietf:params:xml:ns:xmpp-stanzas")
    if text:
        t = e.addChild("text")
        t.setNamespace("urn:ietf:params:xml:ns:xmpp-stanzas")
        t.addData(text)
    return err
Exemple #2
0
def gen_iq_result(iq, query=None):
    """Генерирует iq-result из iq-get/set.
	iq - iq-get/set Node, из которого генерировать result
	query - Node, который добавить в iq-result"""
    node = Node('iq')
    node['type'] = 'result'
    if iq['from']: node['to'] = iq['from']
    node['id'] = iq['id']
    node['from'] = iq['to']
    if query and isinstance(query, Node): node.addChild(node=query)
    return node