mirror of
				https://github.com/ergochat/ergo.git
				synced 2025-10-30 21:37:23 +01:00 
			
		
		
		
	fix #1403
Handle the case where atheme had a successor, but didn't correctly elect them as founder (?)
This commit is contained in:
		
							parent
							
								
									b95afa1464
								
							
						
					
					
						commit
						468b5a4a39
					
				| @ -140,14 +140,31 @@ def convert(infile): | ||||
|                 chdata['amode'][username] = 'h' | ||||
|             elif 'v' in flags or 'V' in flags: | ||||
|                 chdata['amode'][username] = 'v' | ||||
|             elif 'S' in flags: | ||||
|                 # take the first entry as the successor | ||||
|                 if not chdata.get('successor'): | ||||
|                     chdata['successor'] = username | ||||
|         else: | ||||
|             pass | ||||
| 
 | ||||
|     # do some basic integrity checks | ||||
|     def validate_user(name): | ||||
|         if not name: | ||||
|             return False | ||||
|         return bool(out['users'].get(name)) | ||||
| 
 | ||||
|     invalid_channels = [] | ||||
| 
 | ||||
|     for chname, chdata in out['channels'].items(): | ||||
|         founder = chdata.get('founder') | ||||
|         if founder not in out['users']: | ||||
|             raise ValueError("no user corresponding to channel founder", chname, chdata.get('founder')) | ||||
|         if not validate_user(chdata.get('founder')): | ||||
|             if validate_user(chdata.get('successor')): | ||||
|                 chdata['founder'] = chdata['successor'] | ||||
|             else: | ||||
|                 invalid_channels.append(chname) | ||||
| 
 | ||||
|     for chname in invalid_channels: | ||||
|         logging.warning("Unable to find a valid founder for channel %s, discarding it", chname) | ||||
|         del out['channels'][chname] | ||||
| 
 | ||||
|     return out | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Shivaram Lingamneni
						Shivaram Lingamneni