diff options
Diffstat (limited to 'slixmpp/plugins/xep_0421/occupant_id.py')
-rw-r--r-- | slixmpp/plugins/xep_0421/occupant_id.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/slixmpp/plugins/xep_0421/occupant_id.py b/slixmpp/plugins/xep_0421/occupant_id.py new file mode 100644 index 00000000..116bf2d9 --- /dev/null +++ b/slixmpp/plugins/xep_0421/occupant_id.py @@ -0,0 +1,31 @@ +""" + Slixmpp: The Slick XMPP Library + Copyright (C) 2020 "Maxime “pep” Buquet <pep@bouah.net>" + This file is part of Slixmpp. + + See the file LICENSE for copying permission. +""" + +from slixmpp import JID, Message +from slixmpp.plugins import BasePlugin +from slixmpp.xmlstream import register_stanza_plugin +from slixmpp.plugins.xep_0421 import stanza +from slixmpp.plugins.xep_0421.stanza import OccupantId + + +class XEP_0421(BasePlugin): + '''XEP-0421: Anonymous unique occupant identifiers for MUCs''' + + name = 'xep_0421' + description = 'Anonymous unique occupant identifiers for MUCs' + dependencies = {'xep_0030', 'xep_0045'} + stanza = stanza + namespace = stanza.NS + + def plugin_init(self) -> None: + # XXX: This should be MucMessage. Someday.. + register_stanza_plugin(Message, OccupantId) + + async def has_feature(self, jid: JID) -> bool: + info = await self.xmpp['xep_0030'].get_info(jid) + return self.namespace in info.get_features() |