summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorg Lukas <georg@op-co.de>2018-12-14 13:08:37 +0100
committerGeorg Lukas <georg@op-co.de>2018-12-16 19:02:06 +0100
commitd619e0c5ff9c896c0eb35b24cb28f79b150595fe (patch)
tree46aca5d7e802154be61c4ad6795e5da9863fedca
parentf3aad52c7febd63fc251cf70604326eb14e57f61 (diff)
downloadpoezio-d619e0c5ff9c896c0eb35b24cb28f79b150595fe.tar.gz
poezio-d619e0c5ff9c896c0eb35b24cb28f79b150595fe.tar.bz2
poezio-d619e0c5ff9c896c0eb35b24cb28f79b150595fe.tar.xz
poezio-d619e0c5ff9c896c0eb35b24cb28f79b150595fe.zip
Roster: display presence.show when contact goes offline, if available.
-rw-r--r--poezio/core/handlers.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/poezio/core/handlers.py b/poezio/core/handlers.py
index b87e7307..0a6e7e50 100644
--- a/poezio/core/handlers.py
+++ b/poezio/core/handlers.py
@@ -1068,7 +1068,8 @@ class HandlerCore:
'{http://jabber.org/protocol/muc#user}x') is not None:
return
jid = presence['from']
- if not logger.log_roster_change(jid.bare, 'got offline'):
+ status = presence['status']
+ if not logger.log_roster_change(jid.bare, 'got offline{}'.format(' ({})'.format(status) if status else '')):
self.core.information('Unable to write in the log file', 'Error')
# If a resource got offline, display the message in the conversation with this
# precise resource.
@@ -1078,12 +1079,15 @@ class HandlerCore:
roster.connected -= 1
if contact.name:
name = contact.name
+ offline_msg = '%s is \x191}offline' % name
+ if status:
+ offline_msg += ' (\x19o%s\x191})' % status
if jid.resource:
self.core.add_information_message_to_conversation_tab(
- jid.full, '\x195}%s is \x191}offline' % name)
+ jid.full, '\x195}' + offline_msg)
self.core.add_information_message_to_conversation_tab(
- jid.bare, '\x195}%s is \x191}offline' % name)
- self.core.information('\x193}%s \x195}is \x191}offline' % name,
+ jid.bare, '\x195}' + offline_msg)
+ self.core.information('\x193}' + offline_msg,
'Roster')
roster.modified()
if isinstance(self.core.tabs.current_tab, tabs.RosterInfoTab):