Mercurial > libervia-backend
changeset 522:3446ce33247d
plugin XEP-0045: added isNickInRoom method
author | Goffi <goffi@goffi.org> |
---|---|
date | Sun, 21 Oct 2012 13:36:28 +0200 |
parents | 3f8c2a0f20e5 |
children | 24c0d51449e7 |
files | src/plugins/plugin_xep_0045.py |
diffstat | 1 files changed, 11 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/plugins/plugin_xep_0045.py Sun Oct 21 13:23:21 2012 +0200 +++ b/src/plugins/plugin_xep_0045.py Sun Oct 21 13:36:28 2012 +0200 @@ -126,6 +126,15 @@ 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_s].nick + + def isNickInRoom(self, room_jid, nick, profile): + """Tell if a nick is currently present in a room""" + profile = self.host.memory.getProfileName(profile_key) + if not self.__check_profile(profile): + raise exceptions.UnknownProfileError("Unknown or disconnected profile") + if not self.clients[profile].joined_rooms.has_key(room_jid.userhost()): + raise UnknownRoom("This room has not been joined") + return self.clients[profile].joined_rooms[room_jid.userhost()].inRoster(nick) def getRoomsSubjects(self, profile_key='@DEFAULT@'): """Return received subjects of rooms""" @@ -209,7 +218,6 @@ def getHandler(self, profile): self.clients[profile] = SatMUCClient(self) return self.clients[profile] - class SatMUCClient (muc.MUCClient): @@ -219,7 +227,7 @@ self.plugin_parent = plugin_parent self.host = plugin_parent.host muc.MUCClient.__init__(self) - self.joined_rooms = {} + self.joined_rooms = {} #FIXME: seem to do the same thing as MUCClient's _rooms attribute, must be removed self.rec_subjects = {} self.__changing_nicks = set() # used to keep trace of who is changing nick, # and to discard userJoinedRoom signal in this case @@ -283,7 +291,7 @@ def userUpdatedStatus(self, room, user, show, status): print("FIXME: MUC status not managed yet") - #FIXME: gof + #FIXME: def receivedSubject(self, room, user, subject): debug (_("New subject for room (%(room_id)s): %(subject)s") % {'room_id':room.roomJID.full(),'subject':subject})