Mercurial > libervia-backend
changeset 509:64ff046dc201
plugin text commands: added /join command
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 28 Sep 2012 00:48:52 +0200 |
parents | 7c6609dddb2c |
children | 886754295efe |
files | src/plugins/plugin_misc_text_commands.py src/plugins/plugin_xep_0045.py |
diffstat | 2 files changed, 20 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/plugins/plugin_misc_text_commands.py Fri Sep 28 00:31:10 2012 +0200 +++ b/src/plugins/plugin_misc_text_commands.py Fri Sep 28 00:48:52 2012 +0200 @@ -90,6 +90,22 @@ return False + def cmd_join(self, mess_data, profile): + debug("Catched join command") + + if mess_data['type'] != "groupchat": + #/leave command does nothing if we are not on a group chat + info("Ignoring /join command on a non groupchat message") + return True + + if mess_data["unparsed"].strip(): + room = self._getRoomJID(mess_data["unparsed"].strip(), mess_data["to"].host) + nick = (self.host.plugins["XEP-0045"].getRoomNick(mess_data["to"].userhost(), profile) or + self.host.getClient(profile).jid.user) + self.host.plugins["XEP-0045"].join(room, nick, {}, profile) + + return False + def cmd_leave(self, mess_data, profile): debug("Catched leave command")
--- a/src/plugins/plugin_xep_0045.py Fri Sep 28 00:31:10 2012 +0200 +++ b/src/plugins/plugin_xep_0045.py Fri Sep 28 00:48:52 2012 +0200 @@ -117,15 +117,15 @@ result.append((room.roomJID.userhost(), [user.nick for user in room.roster.values()], room.nick)) return result - def getRoomNick(self, room_jid, profile_key='@DEFAULT@'): + def getRoomNick(self, room_jid_s, profile_key='@DEFAULT@'): """return nick used in room by user - @param room_jid: unicode room id + @param room_jid_s: unicode room id @profile_key: profile @return: nick or empty string in case of error""" profile = self.host.memory.getProfileName(profile_key) - if not self.__check_profile(profile) or not self.clients[profile].joined_rooms.has_key(room_jid): + if not self.__check_profile(profile) or not self.clients[profile].joined_rooms.has_key(room_jid_s): return '' - return self.clients[profile].joined_rooms[room_jid].nick + return self.clients[profile].joined_rooms[room_jid_s].nick def getRoomsSubjects(self, profile_key='@DEFAULT@'): """Return received subjects of rooms"""