mirror of
				https://github.com/jlu5/PyLink.git
				synced 2025-11-04 08:57:25 +01:00 
			
		
		
		
	relay_clientbot: normalize sender names to the senders' home networks
This should work for most messages, except NICK changes and MODE targets.
This commit is contained in:
		
							parent
							
								
									50e9d2d959
								
							
						
					
					
						commit
						1c0ea24acd
					
				@ -110,8 +110,19 @@ def cb_relay_core(irc, source, command, args):
 | 
			
		||||
                    except (AttributeError, KeyError):
 | 
			
		||||
                        return
 | 
			
		||||
 | 
			
		||||
                log.debug('(%s) relay_cb_core: Original sender found as %s', irc.name, origuser)
 | 
			
		||||
                sourcenet, realsource = origuser
 | 
			
		||||
                log.debug('(%s) relay_cb_core: Original sender found as %s', irc.name, origuser)
 | 
			
		||||
                if 'newnick' not in args: # XXX: we can't really normalize sender names for nick changes, because we'll always see the new nick
 | 
			
		||||
                    try:
 | 
			
		||||
                        sourcename = world.networkobjects[sourcenet].get_friendly_name(realsource)
 | 
			
		||||
                    except LookupError:
 | 
			
		||||
                        # Fallbacks for users that have just quit / servers that have just split
 | 
			
		||||
                        if args.get('serverdata'):
 | 
			
		||||
                            sourcename = args['serverdata'].name
 | 
			
		||||
                        elif args.get('userdata'):
 | 
			
		||||
                            sourcename = args['userdata'].nick
 | 
			
		||||
                        else:
 | 
			
		||||
                            log.debug('(%s) relay_cb_core: could not get original name of sender %s/%s', irc.name, realsource, sourcenet, exc_info=True)
 | 
			
		||||
 | 
			
		||||
            try:  # Try to get the full network name
 | 
			
		||||
                netname = conf.conf['servers'][sourcenet]['netname']
 | 
			
		||||
@ -143,9 +154,9 @@ def cb_relay_core(irc, source, command, args):
 | 
			
		||||
            identhost = ''
 | 
			
		||||
            if source in irc.users:
 | 
			
		||||
                try:
 | 
			
		||||
                    identhost = irc.get_hostmask(source).split('!')[-1]
 | 
			
		||||
                    identhost = irc.get_hostmask(source).split('!', 1)[-1]
 | 
			
		||||
                except KeyError:  # User got removed due to quit
 | 
			
		||||
                    identhost = '%s@%s' % (args['olduser'].ident, args['olduser'].host)
 | 
			
		||||
                    identhost = '%s@%s' % (args['userdata'].ident, args['userdata'].host)
 | 
			
		||||
                # This is specifically spaced so that ident@host is only shown for users that have
 | 
			
		||||
                # one, and not servers.
 | 
			
		||||
                identhost = ' (%s)' % identhost
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user