From 2b7676194f174ebb5019d0be1c83c2827af545c9 Mon Sep 17 00:00:00 2001 From: mathieui Date: Fri, 14 Jun 2013 20:36:04 +0200 Subject: Fix #2320 (TB on /info with an off-roster contact) --- src/contact.py | 2 ++ src/tabs.py | 17 +++++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/contact.py b/src/contact.py index 5074a0dc..93f2f69e 100644 --- a/src/contact.py +++ b/src/contact.py @@ -41,6 +41,8 @@ class Resource(object): def presence(self): return self._data.get('show') or '' + show = presence + @property def status(self): return self._data.get('status') or '' diff --git a/src/tabs.py b/src/tabs.py index fb6b393b..d4267c59 100644 --- a/src/tabs.py +++ b/src/tabs.py @@ -3189,14 +3189,23 @@ class ConversationTab(ChatTab): def command_info(self, arg): contact = roster[self.get_dest_jid()] jid = safeJID(self.get_dest_jid()) - if jid.resource: - resource = contact[jid.full] + if contact: + if jid.resource: + resource = contact[jid.full] + else: + resource = contact.get_highest_priority_resource() else: - resource = contact.get_highest_priority_resource() + resource = None if resource: - self._text_buffer.add_message("\x19%(info_col)s}Status: %(status)s\x193}" % {'status': resource.status, 'info_col': dump_tuple(get_theme().COLOR_INFORMATION_TEXT)}, None, None, None, None, None) + status = (_('Status : %s') % resource.status) if resource.status else '' + self._text_buffer.add_message("\x19%(info_col)s}Show: %(show)s, %(status)s\x19o" % { + 'show': resource.show or 'available', 'status': status, 'info_col': dump_tuple(get_theme().COLOR_INFORMATION_TEXT)}) + return True + else: + self._text_buffer.add_message("\x19%(info_col)s}No information available\x19o" % {'info_col': dump_tuple(get_theme().COLOR_INFORMATION_TEXT)}) return True + def command_attention(self, message=''): if message is not '': self.command_say(message, attention=True) -- cgit v1.2.3