Source code for slixmpp.plugins.xep_0353.stanza
# slixmpp: The Slick XMPP Library
# Copyright (C) 2020 Emmanuel Gil Peyrot
# This file is part of slixmpp.
# See the file LICENSE for copying permission.
from typing import Iterable, List, Tuple
from slixmpp.xmlstream import ElementBase, ET
[docs]
class JingleMessage(ElementBase):
namespace = 'urn:xmpp:jingle-message:0'
interfaces = {'id'}
[docs]
class Propose(JingleMessage):
name = 'propose'
plugin_attrib = 'jingle_propose'
interfaces = {'id', 'descriptions'}
[docs]
def get_descriptions(self) -> List[Tuple[str, str]]:
result = []
for desc in self.xml:
namespace = desc.tag.split('}')[0][1:]
media = desc.attrib['media']
result.append((namespace, media))
return result
[docs]
def set_descriptions(self, descriptions: Iterable[Tuple[str, str]]):
self.del_descriptions()
for namespace, media in descriptions:
desc = ET.Element('{%s}description' % namespace)
desc.attrib['media'] = media
self.xml.append(desc)
[docs]
def del_descriptions(self):
for desc in self.xml.findall('{*}description'):
self.xml.remove(desc)