3
0
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:
James Lu 2016-07-31 21:45:38 -07:00
parent ac358f4199
commit 4b27ebbee4
2 changed files with 4 additions and 3 deletions

View File

@ -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,7 +773,8 @@ class Irc():
args = []
# Sort modes alphabetically like a conventional IRCd.
modes = sorted(modes)
if sort:
modes = sorted(modes)
for modepair in modes:
mode, arg = modepair

View File

@ -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