sqid change and mailed loot are rather unimportant, but with this combat
logs seem to work completely.
This commit is contained in:
		
							parent
							
								
									e57175c57d
								
							
						
					
					
						commit
						80f3f30b92
					
				@ -27,14 +27,14 @@ class CombatLog(Log):
 | 
			
		||||
    __slots__ = Log.__slots__ + [ '_match_id', 'values']
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def _log_handler(cls, log):
 | 
			
		||||
        if log.get('log', '').strip().startswith(cls.__name__):
 | 
			
		||||
        if log.startswith(cls.__name__):
 | 
			
		||||
            return True
 | 
			
		||||
        return False
 | 
			
		||||
    
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def is_handler(cls, log):
 | 
			
		||||
        if log.get('logtype', None) == L_CMBT:
 | 
			
		||||
            return cls._log_handler(log)
 | 
			
		||||
            return cls._log_handler(log.get('log', '').strip())
 | 
			
		||||
        return False
 | 
			
		||||
    
 | 
			
		||||
    def __init__(self, values=None):
 | 
			
		||||
@ -177,7 +177,7 @@ class GameEvent(CombatLog):
 | 
			
		||||
    
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def _log_handler(cls, log):
 | 
			
		||||
        if log.get('log', '').strip().startswith('======='):
 | 
			
		||||
        if log.startswith('======='):
 | 
			
		||||
            return True
 | 
			
		||||
        return False
 | 
			
		||||
    
 | 
			
		||||
@ -241,16 +241,35 @@ class Set(CombatLog):
 | 
			
		||||
    __slots__ = CombatLog.__slots__
 | 
			
		||||
    matcher = re.compile("^Set\s(?P<what>\w+)\s(?P<name>[^\s]+)\sto\s(?P<value>\w+)")
 | 
			
		||||
 | 
			
		||||
class SqIdChange(CombatLog):
 | 
			
		||||
    """ - number: player number
 | 
			
		||||
        - name: player name
 | 
			
		||||
        - old_sqid: sqid of player before
 | 
			
		||||
        - sqid: new player sqid
 | 
			
		||||
    """
 | 
			
		||||
    __slots__ = CombatLog.__slots__
 | 
			
		||||
    matcher = re.compile("^Player\s(?P<number>\d+)\((?P<name>[^\)]+)\)\schanged\ssqid\sfrom\s(?P<old_sqid>\d+)\sto\s(?P<sqid>\d+)")
 | 
			
		||||
    
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def _log_handler(cls, log):
 | 
			
		||||
        if log.startswith('Player'):
 | 
			
		||||
            return True
 | 
			
		||||
        return False
 | 
			
		||||
 | 
			
		||||
class Mailed(CombatLog):
 | 
			
		||||
    """ has no information. only that loot has been mailed """
 | 
			
		||||
    __slots__ = CombatLog.__slots__
 | 
			
		||||
    matcher = re.compile("Mailed\sloot")
 | 
			
		||||
 | 
			
		||||
class UserEvent(CombatLog):
 | 
			
		||||
    """ special class for combat logs that might be associated with the playing player """
 | 
			
		||||
    __slots__ = CombatLog.__slots__
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def _log_handler(cls, log):
 | 
			
		||||
        line =  log.get('log', '').strip()
 | 
			
		||||
        if line and 'earned medal' in line:
 | 
			
		||||
        if log and 'earned medal' in log:
 | 
			
		||||
            return True
 | 
			
		||||
        elif line:
 | 
			
		||||
            logging.debug('UserEvent saw unknown line:\n%s' % line)
 | 
			
		||||
        elif log:
 | 
			
		||||
            logging.debug('UserEvent saw unknown line:\n%s' % log)
 | 
			
		||||
        return False
 | 
			
		||||
 | 
			
		||||
# Action?
 | 
			
		||||
@ -260,7 +279,7 @@ COMBAT_LOGS = [ Apply, Damage, Spawn, Spell, Reward, Participant, Rocket, Heal,
 | 
			
		||||
               Killed, Captured, AddStack, Cancel, Uncaptured,
 | 
			
		||||
               # undone openspace:
 | 
			
		||||
               PVE_Mission, Looted, Set, Dropped,
 | 
			
		||||
               
 | 
			
		||||
               SqIdChange, Mailed, # unknown if these are important...
 | 
			
		||||
               # always last:
 | 
			
		||||
               GameEvent, UserEvent,
 | 
			
		||||
               Stacktrace,
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user