12345678910111213141516171819202122232425262728293031323334 |
- from nio.events.room_events import RoomMessageText
- from nio.rooms import MatrixRoom
- async def command_systemmessage(room: MatrixRoom, event: RoomMessageText, context: dict):
- system_message = " ".join(event.body.split()[2:])
- if system_message:
- context["logger"]("Adding system message...")
- with context["database"].cursor() as cur:
- cur.execute(
- "INSERT INTO system_messages (room_id, message_id, user_id, body, timestamp) VALUES (?, ?, ?, ?, ?)",
- (room.room_id, event.event_id, event.sender,
- system_message, event.server_timestamp)
- )
- return room.room_id, "m.room.message", {"msgtype": "m.notice", "body": f"System message stored: {system_message}"}
- context["logger"]("Retrieving system message...")
- with context["database"].cursor() as cur:
- cur.execute(
- "SELECT body FROM system_messages WHERE room_id = ? ORDER BY timestamp DESC LIMIT 1",
- (room.room_id,)
- )
- system_message = cur.fetchone()
- if system_message is None:
- system_message = context.get("system_message", "No system message set")
- elif context.get("force_system_message") and context.get("system_message"):
- system_message = system_message + "\n\n" + context["system_message"]
- return room.room_id, "m.room.message", {"msgtype": "m.notice", "body": f"System message: {system_message}"}
|