summaryrefslogtreecommitdiff
path: root/sleekxmpp/plugins/xep_0297/stanza.py
diff options
context:
space:
mode:
Diffstat (limited to 'sleekxmpp/plugins/xep_0297/stanza.py')
-rw-r--r--sleekxmpp/plugins/xep_0297/stanza.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/sleekxmpp/plugins/xep_0297/stanza.py b/sleekxmpp/plugins/xep_0297/stanza.py
new file mode 100644
index 00000000..8b97accc
--- /dev/null
+++ b/sleekxmpp/plugins/xep_0297/stanza.py
@@ -0,0 +1,36 @@
+"""
+ SleekXMPP: The Sleek XMPP Library
+ Copyright (C) 2012 Nathanael C. Fritz, Lance J.T. Stout
+ This file is part of SleekXMPP.
+
+ See the file LICENSE for copying permission.
+"""
+
+from sleekxmpp.stanza import Message, Presence, Iq
+from sleekxmpp.xmlstream import ElementBase
+
+
+class Forwarded(ElementBase):
+ name = 'forwarded'
+ namespace = 'urn:xmpp:forward:0'
+ plugin_attrib = 'forwarded'
+ interfaces = set(['stanza'])
+
+ def get_stanza(self):
+ for stanza in self:
+ if isinstance(stanza, (Message, Presence, Iq)):
+ return stanza
+ return ''
+
+ def set_stanza(self, value):
+ self.del_stanza()
+ self.append(value)
+
+ def del_stanza(self):
+ found_stanzas = []
+ for stanza in self:
+ if isinstance(stanza, (Message, Presence, Iq)):
+ found_stanzas.append(stanza)
+ for stanza in found_stanzas:
+ self.iterables.remove(stanza)
+ self.xml.remove(stanza.xml)