mirror of
				https://github.com/jlu5/PyLink.git
				synced 2025-11-04 08:57:25 +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,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
 | 
			
		||||
 | 
			
		||||
@ -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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user