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:
+6
-3
@@ -78,12 +78,15 @@ def format_message(message, add_timestamp=True):
|
||||
# Handle broadcast messages
|
||||
attributes = 0
|
||||
if message[:10] == "broadcast:":
|
||||
message = message[11:]
|
||||
message = message[10:].lstrip()
|
||||
attributes = 1 # Bold
|
||||
|
||||
# Handle print messages
|
||||
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
|
||||
if add_timestamp and should_add_timestamp(message):
|
||||
@@ -173,7 +176,7 @@ def format_powerup_message(message, player_tracker):
|
||||
import time
|
||||
|
||||
if message.startswith("broadcast:"):
|
||||
message = message[11:].strip()
|
||||
message = message[10:].strip()
|
||||
|
||||
# Strip print " wrapper
|
||||
if message.startswith('print "'):
|
||||
|
||||
+1
-2
@@ -84,7 +84,7 @@ class EventParser:
|
||||
except json.JSONDecodeError as e:
|
||||
logger.debug(f'JSON decode error: {e}')
|
||||
return None
|
||||
except (KeyError, TypeError) as e:
|
||||
except (KeyError, TypeError, ValueError) as e:
|
||||
logger.debug(f'Error parsing event: {e}')
|
||||
return None
|
||||
|
||||
@@ -212,7 +212,6 @@ class EventParser:
|
||||
else:
|
||||
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 None
|
||||
|
||||
# Regular kill: +1 for killer
|
||||
if not data.get('WARMUP', False):
|
||||
|
||||
Reference in New Issue
Block a user