diff --git a/src/gui.py b/src/gui.py index da70c1df..685bcb97 100644 --- a/src/gui.py +++ b/src/gui.py @@ -388,12 +388,29 @@ class Gui(object): self.add_message_to_room(room, _('%s has left the room') % (from_nick)) # status change else: - user.update(affiliation, show, status, role) hide_status_change = config.get('hide_status_change', -1) if config.get('hide_status_change', -1) >= -1 else -1 - if hide_status_change == -1 or \ + if (hide_status_change == -1 or \ user.has_talked_since(hide_status_change) or\ - user.nick == room.own_nick: - self.add_message_to_room(room, _('%(nick)s changed his/her status : %(a)s, %(b)s, %(c)s, %(d)s') % {'nick':from_nick, 'a':affiliation, 'b':role, 'c':show, 'd':status}) + user.nick == room.own_nick)\ + and\ + (affiliation != user.affiliation or\ + role != user.role or\ + show != user.show or\ + status != user.status): + msg = _('%s changed his/her status: ')% from_nick + if affiliation != user.affiliation: + msg += _('affiliation: %s,') % affiliation + if role != user.role: + msg += _('role: %s,') % role + if show != user.show: + msg += _('show: %s,') % show + if status != user.status: + msg += _('status: %s,') % status + # (a)s, %(b)s, %(c)s, %(d)s') % {'nick':from_nick, 'a':affiliation, 'b':role, 'c':show, 'd':status}) + user.update(affiliation, show, status, role) + msg = msg[:-1] # remove the last "," + self.add_message_to_room(room, msg) + if room == self.current_room(): self.window.user_win.refresh(room.users) self.window.input.refresh() diff --git a/src/user.py b/src/user.py index 6dc87c73..6f0f3328 100644 --- a/src/user.py +++ b/src/user.py @@ -52,14 +52,10 @@ class User(object): Return True if the user talked since the last s seconds """ from common import debug - debug('anus===========\n') if self.last_talked is None: - debug('return False1\n') return False delta = timedelta(0, t) debug("Last talk: %s\nDelai:%s\nDelta:%s\n" % (str(self.last_talked), str(t), str(delta))) if datetime.now() - delta > self.last_talked: - debug('return False2\n') return False - debug('return True') return True