mirror of
https://github.com/jlu5/PyLink.git
synced 2024-12-24 19:52:53 +01:00
Irc: make sorting in joinModes() an option, and explicitly enable it in WHOIS output
This prevents mode lists from being sorted when they really shouldn't be, such as when relaying mode changes ("+qo nick nick" became +oq nick nick").
This commit is contained in:
parent
ac358f4199
commit
4b27ebbee4
@ -763,7 +763,7 @@ class Irc():
|
||||
return set(newmodes)
|
||||
|
||||
@staticmethod
|
||||
def joinModes(modes):
|
||||
def joinModes(modes, sort=False):
|
||||
"""Takes a list of (mode, arg) tuples in parseModes() format, and
|
||||
joins them into a string.
|
||||
|
||||
@ -773,6 +773,7 @@ class Irc():
|
||||
args = []
|
||||
|
||||
# Sort modes alphabetically like a conventional IRCd.
|
||||
if sort:
|
||||
modes = sorted(modes)
|
||||
|
||||
for modepair in modes:
|
||||
|
@ -87,7 +87,7 @@ def handle_whois(irc, source, command, args):
|
||||
# Only show this to opers!
|
||||
if sourceisOper:
|
||||
f(378, source, "%s :is connecting from %s@%s %s" % (nick, user.ident, user.realhost, user.ip))
|
||||
f(379, source, '%s :is using modes %s' % (nick, irc.joinModes(user.modes)))
|
||||
f(379, source, '%s :is using modes %s' % (nick, irc.joinModes(user.modes, sort=True)))
|
||||
|
||||
# 301: used to show away information if present
|
||||
away_text = user.away
|
||||
|
Loading…
Reference in New Issue
Block a user