""" 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.stanza import Message, Iq from slixmpp.xmlstream import ( ElementBase, register_stanza_plugin, ) from slixmpp.plugins.xep_0422.stanza import ApplyTo from slixmpp.plugins.xep_0421.stanza import OccupantId from slixmpp.plugins.xep_0424.stanza import Retract, Retracted NS = 'urn:xmpp:message-moderate:0' class Moderate(ElementBase): namespace = NS name = 'moderate' plugin_attrib = 'moderate' interfaces = {'reason'} sub_interfaces = {'reason'} class Moderated(ElementBase): namespace = NS name = 'moderated' plugin_attrib = 'moderated' interfaces = {'reason', 'by'} sub_interfaces = {'reason'} def register_plugins(): register_stanza_plugin(Iq, ApplyTo) register_stanza_plugin(ApplyTo, Moderate) register_stanza_plugin(Moderate, Retract) register_stanza_plugin(Message, Moderated) register_stanza_plugin(ApplyTo, Moderated) register_stanza_plugin(Moderated, Retract) register_stanza_plugin(Moderated, Retracted) register_stanza_plugin(Moderated, OccupantId)