Harden JSON event parsing and broadcast message formatting

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
This commit is contained in:
Debian
2026-09-13 14:00:13 +02:00
co-authored by Sisyphus
parent 15d461c234
commit e47badb7b3
2 changed files with 7 additions and 5 deletions
+6 -3
View File
@@ -78,12 +78,15 @@ def format_message(message, add_timestamp=True):
# Handle broadcast messages # Handle broadcast messages
attributes = 0 attributes = 0
if message[:10] == "broadcast:": if message[:10] == "broadcast:":
message = message[11:] message = message[10:].lstrip()
attributes = 1 # Bold attributes = 1 # Bold
# Handle print messages # Handle print messages
if message[:7] == "print \"": if message[:7] == "print \"":
message = message[7:-2] + "\n" message = message[7:]
if message.endswith("\""):
message = message[:-1]
message = message.rstrip() + "\n"
# Add timestamp if requested and appropriate # Add timestamp if requested and appropriate
if add_timestamp and should_add_timestamp(message): if add_timestamp and should_add_timestamp(message):
@@ -173,7 +176,7 @@ def format_powerup_message(message, player_tracker):
import time import time
if message.startswith("broadcast:"): if message.startswith("broadcast:"):
message = message[11:].strip() message = message[10:].strip()
# Strip print " wrapper # Strip print " wrapper
if message.startswith('print "'): if message.startswith('print "'):
+1 -2
View File
@@ -84,7 +84,7 @@ class EventParser:
except json.JSONDecodeError as e: except json.JSONDecodeError as e:
logger.debug(f'JSON decode error: {e}') logger.debug(f'JSON decode error: {e}')
return None return None
except (KeyError, TypeError) as e: except (KeyError, TypeError, ValueError) as e:
logger.debug(f'Error parsing event: {e}') logger.debug(f'Error parsing event: {e}')
return None return None
@@ -212,7 +212,6 @@ class EventParser:
else: else:
weapon_name = WEAPON_NAMES.get(weapon, weapon) weapon_name = WEAPON_NAMES.get(weapon, weapon)
return f"{score_prefix}{killer_prefix}^8{killer_name}^0 ^7committed suicide with the ^7{weapon_name}{warmup}\n" return f"{score_prefix}{killer_prefix}^8{killer_name}^0 ^7committed suicide with the ^7{weapon_name}{warmup}\n"
return None
# Regular kill: +1 for killer # Regular kill: +1 for killer
if not data.get('WARMUP', False): if not data.get('WARMUP', False):