formatWhois: fix error and restore formatting changes lost in supybot merge

This reapplies content from commits 2b324203e7, 2628dc03c4, ef9fbc4a07,
41effcea13, and 5f23855d27.
This commit is contained in:
James Lu 2015-05-15 18:36:06 -07:00
parent 82b8bf801a
commit c651bc5482

View File

@ -427,15 +427,15 @@ def formatWhois(irc, replies, caller='', channel='', command='whois'):
# The user is in a channel the bot is in, so the ircd may have # The user is in a channel the bot is in, so the ircd may have
# responded with otherwise private data. # responded with otherwise private data.
if chanState: if chanState:
# Skip channels the callee isn't in. This helps prevents # Skip channels the caller isn't in. This prevents
# us leaking information when the channel is +s or the # us from leaking information when the channel is +s or the
# target is +i # target is +i.
if caller not in chanState.users: if caller not in chanState.users:
continue continue
# Skip +s channels the target is in only if the reply isn't # Skip +s channels the target is in only if the reply isn't
# being sent to that channel # being sent to that channel.
if 's' in chanState.modes and \ if 's' in chanState.modes and \
not ircutils.strEqual(channel or '', chan): not strEqual(channel or '', chan):
continue continue
if not modes: if not modes:
normal.append(chan) normal.append(chan)
@ -459,7 +459,7 @@ def formatWhois(irc, replies, caller='', channel='', command='whois'):
L.append(format(_('is on %L'), normal)) L.append(format(_('is on %L'), normal))
else: else:
if command == 'whois': if command == 'whois':
L = [_('isn\'t on any non-secret channels')] L = [_('isn\'t on any publicly visible channels')]
else: else:
L = [] L = []
channels = format('%L', L) channels = format('%L', L)
@ -487,11 +487,11 @@ def formatWhois(irc, replies, caller='', channel='', command='whois'):
else: else:
identify = '' identify = ''
if command == 'whois': if command == 'whois':
s = _('%s (%s) has been%s on server %s since %s (idle for %s) and ' s = _('%s (%s) has been%s on server %s since %s (idle for %s). %s '
'%s.%s') % (user, hostmask, identify, server, '%s.%s') % (user, hostmask, identify, server,
signon, idle, channels, away) signon, idle, nick, channels, away)
else: else:
s = _('%s (%s) has been%s on server %s and disconnect on %s.') % \ s = _('%s (%s) has been%s on server %s and disconnected on %s.') % \
(user, hostmask, identify, server, signoff) (user, hostmask, identify, server, signoff)
return s return s