diff options
author | juanrmn <juanr.gonzalez@gmail.com> | 2013-11-06 11:20:50 +0100 |
---|---|---|
committer | juanrmn <juanr.gonzalez@gmail.com> | 2013-11-06 11:20:50 +0100 |
commit | 79a3a2befd866f168c2a8ab389f5a4f0ddeb9b5a (patch) | |
tree | 956d23e12aa8c6a44943726f3e791d5e344f005f /sleekxmpp/plugins | |
parent | 08a0fd5420c25108d3bff4096a2378fd2f288a50 (diff) | |
download | slixmpp-79a3a2befd866f168c2a8ab389f5a4f0ddeb9b5a.tar.gz slixmpp-79a3a2befd866f168c2a8ab389f5a4f0ddeb9b5a.tar.bz2 slixmpp-79a3a2befd866f168c2a8ab389f5a4f0ddeb9b5a.tar.xz slixmpp-79a3a2befd866f168c2a8ab389f5a4f0ddeb9b5a.zip |
Added a MUC method 'setRole'. Change role property of a nick in a room, useful for moderator bots.
Diffstat (limited to 'sleekxmpp/plugins')
-rw-r--r-- | sleekxmpp/plugins/xep_0045.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/sleekxmpp/plugins/xep_0045.py b/sleekxmpp/plugins/xep_0045.py index 1d5f3c83..6e3f10a9 100644 --- a/sleekxmpp/plugins/xep_0045.py +++ b/sleekxmpp/plugins/xep_0045.py @@ -289,6 +289,24 @@ class XEP_0045(BasePlugin): return False return True + def setRole(self, room, nick, role): + """ Change role property of a nick in a room. + Typically, roles are temporary (they last only as long as you are in the + room), whereas affiliations are permanent (they last across groupchat + sessions). + """ + if role not in ('outcast', 'member', 'admin', 'owner', 'none'): + raise TypeError + query = ET.Element('{http://jabber.org/protocol/muc#admin}query') + item = ET.Element('item', {'role':role, 'nick':nick}) + query.append(item) + iq = self.xmpp.makeIqSet(query) + iq['to'] = room + result = iq.send() + if result is False or result['type'] != 'result': + raise ValueError + return True + def invite(self, room, jid, reason='', mfrom=''): """ Invite a jid to a room.""" msg = self.xmpp.makeMessage(room) |