diff options
Diffstat (limited to 'slixmpp/plugins/xep_0421/stanza.py')
-rw-r--r-- | slixmpp/plugins/xep_0421/stanza.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/slixmpp/plugins/xep_0421/stanza.py b/slixmpp/plugins/xep_0421/stanza.py new file mode 100644 index 00000000..d05bcfc1 --- /dev/null +++ b/slixmpp/plugins/xep_0421/stanza.py @@ -0,0 +1,37 @@ +""" + 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.xmlstream import ElementBase + + +class OccupantId(ElementBase): + ''' + An Occupant-id tag. + + An <occupant-id/> tag is set by the MUC. + + This is useful in semi-anon MUCs (and MUC-PMs) as a stable identifier to + prevent the usual races with nicknames. + + Without occupant-id, getting the following messages from MUC history would + prevent a client from asserting senders are the same entity: + + <message type='groupchat' from='foo@muc/nick1' id='message1'> + <body>Some message</body> + <occupant-id xmlns='urn:xmpp:occupant-id:0' id='unique-opaque-id1'/> + </message> + <message type='groupchat' from='foo@muc/nick2' id='message2'> + <body>Some correction</body> + <occupant-id xmlns='urn:xmpp:occupant-id:0' id='unique-opaque-id1'/> + <replace xmlns='urn:xmpp:message-correct:0' id='message1'/> + </message> + ''' + + name = 'occupant-id' + namespace = 'urn:xmpp:occupant-id:0' + interface = {'id'} |