fix(logs): update English patterns for actual game output format
- English loot uses parentheses: 'x (2)' not 'x 2' - Add English damage pattern: 'You inflicted X points of damage' - Support both Swedish and English damage dealt events - Fix empty bracket pattern: [System] [] Message Tested with real log output showing English client format.
This commit is contained in:
parent
c511ff2042
commit
bd506e53c2
|
|
@ -41,10 +41,11 @@ class LogWatcher:
|
||||||
# LOOT PATTERNS
|
# LOOT PATTERNS
|
||||||
# English: "You received Shrapnel x 123 (Value: 1.23 PED)"
|
# English: "You received Shrapnel x 123 (Value: 1.23 PED)"
|
||||||
# Swedish: "Du fick Shrapnel x (4627) Värde: 0.4627 PED"
|
# Swedish: "Du fick Shrapnel x (4627) Värde: 0.4627 PED"
|
||||||
|
# English loot: "You received Animal Oil Residue x (2) Value: 0.0 PED"
|
||||||
PATTERN_LOOT_EN = re.compile(
|
PATTERN_LOOT_EN = re.compile(
|
||||||
r'^(\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}:\d{2})\s+\[System\]\s+'
|
r'^(\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}:\d{2})\s+\[System\]\s+\[?\]?\s*'
|
||||||
r'You\s+received\s+([\w\s]+?)\s+x\s*(\d+)\s*.*?'
|
r'You\s+received\s+([\w\s]+?)\s+x\s*\((\d+)\)\s*'
|
||||||
r'(?:Value:\s+(\d+(?:\.\d+)?)\s+PED)?',
|
r'Value:\s+(\d+(?:\.\d+)?)\s+PED',
|
||||||
re.IGNORECASE
|
re.IGNORECASE
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -95,14 +96,21 @@ class LogWatcher:
|
||||||
re.IGNORECASE
|
re.IGNORECASE
|
||||||
)
|
)
|
||||||
|
|
||||||
# DAMAGE DEALT
|
# DAMAGE DEALT - Swedish & English
|
||||||
# Swedish: "Du orsakade 13.5 poäng skada"
|
# Swedish: "Du orsakade 13.5 poäng skada"
|
||||||
|
# English: "You inflicted 4.4 points of damage"
|
||||||
PATTERN_DAMAGE_DEALT_SV = re.compile(
|
PATTERN_DAMAGE_DEALT_SV = re.compile(
|
||||||
r'^(\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}:\d{2})\s+\[System\]\s+'
|
r'^(\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}:\d{2})\s+\[System\]\s+\[?\]?\s*'
|
||||||
r'Du\s+orsakade\s+(\d+(?:\.\d+)?)\s+poäng\s+skada',
|
r'Du\s+orsakade\s+(\d+(?:\.\d+)?)\s+poäng\s+skada',
|
||||||
re.IGNORECASE
|
re.IGNORECASE
|
||||||
)
|
)
|
||||||
|
|
||||||
|
PATTERN_DAMAGE_DEALT_EN = re.compile(
|
||||||
|
r'^(\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}:\d{2})\s+\[System\]\s+\[?\]?\s*'
|
||||||
|
r'You\s+inflicted\s+(\d+(?:\.\d+)?)\s+points?\s+of\s+damage',
|
||||||
|
re.IGNORECASE
|
||||||
|
)
|
||||||
|
|
||||||
# CRITICAL HIT
|
# CRITICAL HIT
|
||||||
# Swedish: "Kritisk träff - Extra skada! Du orsakade 44.4 poäng skada"
|
# Swedish: "Kritisk träff - Extra skada! Du orsakade 44.4 poäng skada"
|
||||||
PATTERN_CRITICAL_SV = re.compile(
|
PATTERN_CRITICAL_SV = re.compile(
|
||||||
|
|
@ -173,7 +181,8 @@ class LogWatcher:
|
||||||
'hof': PATTERN_HOF_MARKER,
|
'hof': PATTERN_HOF_MARKER,
|
||||||
'skill_en': PATTERN_SKILL_EN,
|
'skill_en': PATTERN_SKILL_EN,
|
||||||
'skill_sv': PATTERN_SKILL_SV,
|
'skill_sv': PATTERN_SKILL_SV,
|
||||||
'damage_dealt': PATTERN_DAMAGE_DEALT_SV,
|
'damage_dealt_sv': PATTERN_DAMAGE_DEALT_SV,
|
||||||
|
'damage_dealt_en': PATTERN_DAMAGE_DEALT_EN,
|
||||||
'critical_hit': PATTERN_CRITICAL_SV,
|
'critical_hit': PATTERN_CRITICAL_SV,
|
||||||
'damage_taken': PATTERN_DAMAGE_TAKEN_SV,
|
'damage_taken': PATTERN_DAMAGE_TAKEN_SV,
|
||||||
'heal': PATTERN_HEAL_SV,
|
'heal': PATTERN_HEAL_SV,
|
||||||
|
|
@ -338,14 +347,24 @@ class LogWatcher:
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
# DAMAGE DEALT
|
# DAMAGE DEALT - Swedish
|
||||||
match = self.PATTERN_DAMAGE_DEALT_SV.match(line)
|
match = self.PATTERN_DAMAGE_DEALT_SV.match(line)
|
||||||
if match:
|
if match:
|
||||||
return LogEvent(
|
return LogEvent(
|
||||||
timestamp=self._parse_timestamp(match.group(1)),
|
timestamp=self._parse_timestamp(match.group(1)),
|
||||||
event_type='damage_dealt',
|
event_type='damage_dealt',
|
||||||
raw_line=line,
|
raw_line=line,
|
||||||
data={'damage': Decimal(match.group(2))}
|
data={'damage': Decimal(match.group(2)), 'language': 'swedish'}
|
||||||
|
)
|
||||||
|
|
||||||
|
# DAMAGE DEALT - English
|
||||||
|
match = self.PATTERN_DAMAGE_DEALT_EN.match(line)
|
||||||
|
if match:
|
||||||
|
return LogEvent(
|
||||||
|
timestamp=self._parse_timestamp(match.group(1)),
|
||||||
|
event_type='damage_dealt',
|
||||||
|
raw_line=line,
|
||||||
|
data={'damage': Decimal(match.group(2)), 'language': 'english'}
|
||||||
)
|
)
|
||||||
|
|
||||||
# CRITICAL HIT
|
# CRITICAL HIT
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue