diff options
Diffstat (limited to 'sleekxmpp/plugins/xep_0184/stanza.py')
-rw-r--r-- | sleekxmpp/plugins/xep_0184/stanza.py | 50 |
1 files changed, 37 insertions, 13 deletions
diff --git a/sleekxmpp/plugins/xep_0184/stanza.py b/sleekxmpp/plugins/xep_0184/stanza.py index 42ba8c3f..d1654ef8 100644 --- a/sleekxmpp/plugins/xep_0184/stanza.py +++ b/sleekxmpp/plugins/xep_0184/stanza.py @@ -12,34 +12,58 @@ from sleekxmpp.xmlstream.stanzabase import ElementBase, ET class Request(ElementBase): namespace = 'urn:xmpp:receipts' name = 'request' - plugin_attrib = 'request_reciept' - interfaces = set(('request_reciept',)) + plugin_attrib = 'request_receipt' + interfaces = set(('request_receipt',)) + sub_interfaces = interfaces is_extension = True def setup(self, xml=None): self.xml = ET.Element('') return True - def set_request_reciept(self, val): - self.del_request_reciept() - parent = self.parent() + def set_request_receipt(self, val): + self.del_request_receipt() if val: - self.xml = ET.Element("{%s}%s" % (self.namespace, self.name)) - parent.append(self.xml) + parent = self.parent() + parent._set_sub_text("{%s}request" % self.namespace, keep=True) - def get_request_reciept(self): + def get_request_receipt(self): parent = self.parent() - if parent.find("{%s}%s" % (self.namespace, self.name)) is not None: + if parent.find("{%s}request" % self.namespace) is not None: return True else: return False - def del_request_reciept(self): - self.xml = ET.Element('') + def del_request_receipt(self): + self.parent()._del_sub("{%s}request" % self.namespace) class Received(ElementBase): namespace = 'urn:xmpp:receipts' name = 'received' - plugin_attrib = 'reciept_received' - interfaces = set(('id',)) + plugin_attrib = 'receipt' + interfaces = set(['receipt']) + sub_interfaces = interfaces + is_extension = True + + def setup(self, xml=None): + self.xml = ET.Element('') + return True + + def set_receipt(self, value): + self.del_receipt() + if value: + parent = self.parent() + xml = ET.Element("{%s}received" % self.namespace) + xml.attrib['id'] = value + parent.append(xml) + + def get_receipt(self): + parent = self.parent() + xml = parent.find("{%s}received" % self.namespace) + if xml is not None: + return xml.attrib.get('id', '') + return '' + + def del_receipt(self): + self.parent()._del_sub('{%s}received' % self.namespace) |