summaryrefslogtreecommitdiff
path: root/slixmpp/plugins/xep_0297/stanza.py
blob: 233ad4f6e2f398b0899c9f6321e3a08b096e882c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
"""
    Slixmpp: The Slick XMPP Library
    Copyright (C) 2012 Nathanael C. Fritz, Lance J.T. Stout
    This file is part of Slixmpp.

    See the file LICENSE for copying permission.
"""

from slixmpp.stanza import Message, Presence, Iq
from slixmpp.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)