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
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