From cccc1253aa12f62a6cf8403ee54facf656521504 Mon Sep 17 00:00:00 2001 From: mathieui Date: Sun, 10 Jan 2021 14:38:43 +0100 Subject: XEP-0045: add more elements () --- slixmpp/plugins/xep_0045/muc.py | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'slixmpp/plugins/xep_0045/muc.py') diff --git a/slixmpp/plugins/xep_0045/muc.py b/slixmpp/plugins/xep_0045/muc.py index 4220978d..03d01dba 100644 --- a/slixmpp/plugins/xep_0045/muc.py +++ b/slixmpp/plugins/xep_0045/muc.py @@ -42,6 +42,8 @@ from slixmpp.plugins.xep_0045.stanza import ( MUCOwnerQuery, MUCOwnerDestroy, MUCStatus, + MUCActor, + MUCUserItem, ) @@ -66,6 +68,9 @@ class XEP_0045(BasePlugin): self.rooms = {} self.our_nicks = {} # load MUC support in presence stanzas + register_stanza_plugin(MUCMessage, MUCUserItem) + register_stanza_plugin(MUCPresence, MUCUserItem) + register_stanza_plugin(MUCUserItem, MUCActor) register_stanza_plugin(MUCMessage, MUCInvite) register_stanza_plugin(MUCMessage, MUCDecline) register_stanza_plugin(MUCMessage, MUCStatus) @@ -248,24 +253,22 @@ class XEP_0045(BasePlugin): iq['mucowner_query']['destroy']['reason'] = reason await iq.send(**iqkwargs) - async def set_affiliation(self, room: JID, jid: Optional[JID] = None, nick: Optional[str] = None, *, affiliation: str, - reason: str = '', ifrom: Optional[JID] = None, **iqkwargs): + async def set_affiliation(self, room: JID, affiliation: str, *, jid: Optional[JID] = None, + nick: Optional[str] = None, reason: str = '', + ifrom: Optional[JID] = None, **iqkwargs): """ Change room affiliation.""" if affiliation not in AFFILIATIONS: raise ValueError('%s is not a valid affiliation' % affiliation) if not any((jid, nick)): raise ValueError('One of jid or nick must be set') iq = self.xmpp.make_iq_set(ito=room, ifrom=ifrom) - iq.enable('mucadmin_query') - item = MUCAdminItem() - item['affiliation'] = affiliation + iq['mucadmin_query']['item']['affiliation'] = affiliation if nick: - item['nick'] = nick + iq['mucadmin_query']['item']['nick'] = nick if jid: - item['jid'] = jid + iq['mucadmin_query']['item']['jid'] = jid if reason: - item['reason'] = reason - iq['mucadmin_query'].append(item) + iq['mucadmin_query']['item']['reason'] = reason await iq.send(**iqkwargs) async def set_role(self, room: JID, nick: str, role: str, *, @@ -278,13 +281,10 @@ class XEP_0045(BasePlugin): if role not in ROLES: raise ValueError("Role %s does not exist" % role) iq = self.xmpp.make_iq_set(ito=room, ifrom=ifrom) - iq.enable('mucadmin_query') - item = MUCAdminItem() - item['role'] = role - item['nick'] = nick + iq['mucadmin_query']['item']['role'] = role + iq['mucadmin_query']['item']['nick'] = nick if reason: - item['reason'] = reason - iq['mucadmin_query'].append(item) + iq['mucadmin_query']['item']['reason'] = reason await iq.send(**iqkwargs) def invite(self, room: JID, jid: JID, reason: str = '', *, -- cgit v1.2.3