Fix reaction events

This commit is contained in:
Astra Logical 2026-07-22 17:25:34 -04:00
parent f97b8c742d
commit e9e32279dc

View file

@ -112,6 +112,7 @@ async def on_message(client: AsyncClient, room: MatrixRoom, event: RoomMessageTe
parts = body.split(maxsplit=1) parts = body.split(maxsplit=1)
if len(parts) < 2: if len(parts) < 2:
await send_message_safe( await send_message_safe(
client,
room_id=room.room_id, room_id=room.room_id,
message_type="m.room.message", message_type="m.room.message",
content={"msgtype": "m.notice", "body": "Usage: !request <group_name>"}, content={"msgtype": "m.notice", "body": "Usage: !request <group_name>"},
@ -188,9 +189,9 @@ async def on_reaction(client: AsyncClient, room: MatrixRoom, event: ReactionEven
if event.sender not in ADMIN_MATRIX_IDS: if event.sender not in ADMIN_MATRIX_IDS:
return return
relates_to = event.content.get("m.relates_to", {}) # matrix-nio exposes target event ID and emoji as direct properties
target_event_id = relates_to.get("event_id") target_event_id = event.reacts_to
emoji = relates_to.get("key") emoji = event.key
# Check if this reaction targets an active pending request # Check if this reaction targets an active pending request
if not target_event_id or target_event_id not in pending_requests: if not target_event_id or target_event_id not in pending_requests:
@ -216,8 +217,8 @@ async def on_reaction(client: AsyncClient, room: MatrixRoom, event: ReactionEven
f"has been approved!" if success else f"⚠️ Approval failed: {msg}" f"has been approved!" if success else f"⚠️ Approval failed: {msg}"
) )
await send_message_safe( await send_message_safe(
client,
room_id=request["origin_room_id"], room_id=request["origin_room_id"],
message_type="m.room.message",
content={"msgtype": "m.notice", "body": user_msg}, content={"msgtype": "m.notice", "body": user_msg},
) )
@ -228,8 +229,8 @@ async def on_reaction(client: AsyncClient, room: MatrixRoom, event: ReactionEven
) )
await send_message_safe( await send_message_safe(
client,
room_id=request["origin_room_id"], room_id=request["origin_room_id"],
message_type="m.room.message",
content={ content={
"msgtype": "m.notice", "msgtype": "m.notice",
"body": f"Your request for group '{request['requested_group']}' was denied.", "body": f"Your request for group '{request['requested_group']}' was denied.",
@ -240,8 +241,8 @@ async def on_reaction(client: AsyncClient, room: MatrixRoom, event: ReactionEven
# Update the original admin room message to reflect resolution status # Update the original admin room message to reflect resolution status
await send_message_safe( await send_message_safe(
client,
room_id=ADMIN_ROOM_ID, room_id=ADMIN_ROOM_ID,
message_type="m.room.message",
content={ content={
"msgtype": "m.text", "msgtype": "m.text",
"body": status_text, "body": status_text,