From 5f49df6b56e64b34bd9e759887138e33cffbe4c9 Mon Sep 17 00:00:00 2001 From: mathieui Date: Sun, 14 Jul 2019 13:13:59 +0200 Subject: Add the occupant id stanza elements --- slixmpp/plugins/protoxep_occupantid/__init__.py | 12 ++++++++++ slixmpp/plugins/protoxep_occupantid/occupantid.py | 27 +++++++++++++++++++++++ slixmpp/plugins/protoxep_occupantid/stanza.py | 16 ++++++++++++++ 3 files changed, 55 insertions(+) create mode 100644 slixmpp/plugins/protoxep_occupantid/__init__.py create mode 100644 slixmpp/plugins/protoxep_occupantid/occupantid.py create mode 100644 slixmpp/plugins/protoxep_occupantid/stanza.py (limited to 'slixmpp/plugins/protoxep_occupantid') diff --git a/slixmpp/plugins/protoxep_occupantid/__init__.py b/slixmpp/plugins/protoxep_occupantid/__init__.py new file mode 100644 index 00000000..1bd374b6 --- /dev/null +++ b/slixmpp/plugins/protoxep_occupantid/__init__.py @@ -0,0 +1,12 @@ +""" + Slixmpp: The Slick XMPP Library + Copyright (C) 2019 Mathieu Pasquet + This file is part of Slixmpp. + + See the file LICENSE for copying permission. +""" +from slixmpp.plugins.base import register_plugin +from slixmpp.plugins.protoxep_occupantid.occupantid import XEP_OccupantID +from slixmpp.plugins.protoxep_occupantid.stanza import OccupantID + +register_plugin(XEP_OccupantID) diff --git a/slixmpp/plugins/protoxep_occupantid/occupantid.py b/slixmpp/plugins/protoxep_occupantid/occupantid.py new file mode 100644 index 00000000..2c7827fb --- /dev/null +++ b/slixmpp/plugins/protoxep_occupantid/occupantid.py @@ -0,0 +1,27 @@ +""" + Slixmpp: The Slick XMPP Library + Copyright (C) 2019 Mathieu Pasquet + This file is part of Slixmpp. + + See the file LICENSE for copying permission. +""" +from slixmpp.plugins import BasePlugin +from slixmpp.stanza import Message, Presence +from slixmpp.xmlstream import register_stanza_plugin + +from slixmpp.plugins.protoxep_occupantid import stanza + + +class XEP_OccupantID(BasePlugin): + name = 'protoxep_occupantid' + description = 'XEP-XXXX: Anonymous unique occupant identifiers for MUCs' + dependencies = {'xep_0030'} + stanza = stanza + + def plugin_init(self): + self.xmpp['xep_0030'].add_feature('urn:xmpp:occupant-id:0') + register_stanza_plugin(Message, stanza.OccupantID) + register_stanza_plugin(Presence, stanza.OccupantID) + + def plugin_end(self): + self.xmpp['xep_0030'].remove_feature('urn:xmpp:occupant-id:0') diff --git a/slixmpp/plugins/protoxep_occupantid/stanza.py b/slixmpp/plugins/protoxep_occupantid/stanza.py new file mode 100644 index 00000000..e5853111 --- /dev/null +++ b/slixmpp/plugins/protoxep_occupantid/stanza.py @@ -0,0 +1,16 @@ +""" + Slixmpp: The Slick XMPP Library + Copyright (C) 2019 Mathieu Pasquet + This file is part of Slixmpp. + + See the file LICENSE for copying permission. +""" + +from slixmpp.xmlstream import ElementBase + + +class OccupantID(ElementBase): + name = 'occupant-id' + plugin_attrib = 'occupant-id' + namespace = 'urn:xmpp:occupant-id:0' + interfaces = {'id'} -- cgit v1.2.3