Mercurial > libervia-backend
diff src/plugins/plugin_xep_0045.py @ 1094:4286a19e9e8a
pluging XEP-0045: configure room dynamic menu
author | Goffi <goffi@goffi.org> |
---|---|
date | Thu, 26 Jun 2014 00:05:25 +0200 |
parents | e8731b02f5ea |
children | ad4ec8d9235e |
line wrap: on
line diff
--- a/src/plugins/plugin_xep_0045.py Thu Jun 26 00:05:20 2014 +0200 +++ b/src/plugins/plugin_xep_0045.py Thu Jun 26 00:05:25 2014 +0200 @@ -78,6 +78,7 @@ host.bridge.addSignal("roomUserChangedNick", ".plugin", signature='ssss') # args: room_jid, old_nick, new_nick, profile host.bridge.addSignal("roomNewSubject", ".plugin", signature='sss') # args: room_jid, subject, profile self.__submit_conf_id = host.registerCallback(self._submitConfiguration, with_data=True) + host.importMenu((D_("MUC"), D_("configure")), self._configureRoomMenu, help_string=D_("Configure Multi-User Chat room"), type_=C.MENU_ROOM) try: self.host.plugins[C.TEXT_CMDS].registerTextCommands(self) self.host.plugins[C.TEXT_CMDS].addWhoIsCb(self._whois, 100) @@ -217,8 +218,23 @@ d.addCallback(lambda xmlui: xmlui.toXml()) return d + def _configureRoomMenu(self, menu_data, profile): + """Return room configuration form + @param menu_data: %(menu_data)s + @param profile: %(doc_profile)s + + """ + try: + room_jid = jid.JID(menu_data['room_jid']) + except KeyError: + log.error(_("room_jid key is not present !")) + return defer.fail(exceptions.DataError) + def xmluiReceived(xmlui): + return {"xmlui": xmlui.toXml()} + return self.configureRoom(room_jid, profile).addCallback(xmluiReceived) + def configureRoom(self, room_jid, profile_key=C.PROF_KEY_NONE): - """ return the room configuration form + """return the room configuration form @param room: jid of the room to configure @param profile_key: %(doc_profile_key)s