""" Slixmpp: The Slick XMPP Library Copyright (C) 2020 Mathieu Pasquet This file is part of Slixmpp. See the file LICENSE for copying permissio """ from slixmpp import JID from slixmpp.stanza import Iq from slixmpp.stanza.roster import Roster, RosterItem from slixmpp.xmlstream import ( ElementBase, register_stanza_plugin, ) from slixmpp.plugins.xep_0369.stanza import ( Join, Leave, ) NS = 'urn:xmpp:mix:pam:2' NS_ROSTER = 'urn:xmpp:mix:roster:0' class ClientJoin(ElementBase): namespace = NS name = 'client-join' plugin_attrib = 'client_join' interfaces = {'channel'} class ClientLeave(ElementBase): namespace = NS name = 'client-leave' plugin_attrib = 'client_leave' interfaces = {'channel'} class Annotate(ElementBase): namespace = NS_ROSTER name = 'annotate' plugin_attrib = 'annotate' class Channel(ElementBase): namespace = NS_ROSTER name = 'channel' plugin_attrib = 'channel' interfaces = {'participant-id'} def register_plugins(): register_stanza_plugin(Iq, ClientJoin) register_stanza_plugin(ClientJoin, Join) register_stanza_plugin(Iq, ClientLeave) register_stanza_plugin(ClientLeave, Leave) register_stanza_plugin(Roster, Annotate) register_stanza_plugin(RosterItem, Channel)