Ver Fonte

Improve raw request command

Tulir Asokan há 4 anos atrás
pai
commit
6bd85ff109
1 ficheiros alterados com 12 adições e 3 exclusões
  1. 12 3
      mautrix_signal/commands/signal.py

+ 12 - 3
mautrix_signal/commands/signal.py

@@ -116,19 +116,28 @@ async def safety_number(evt: CommandEvent) -> None:
 
 
 @command_handler(needs_admin=True, needs_auth=False, help_section=SECTION_ADMIN,
-                 help_text="Send raw requests to signald", help_args="<type> <_json_>")
+                 help_text="Send raw requests to signald", help_args="[--user] <type> <_json_>")
 async def raw(evt: CommandEvent) -> None:
+    add_username = False
+    if evt.args[0].lower() == "--user":
+        add_username = True
+        evt.args = evt.args[1:]
     type = evt.args[0]
     try:
         args = json.loads(" ".join(evt.args[1:]))
     except json.JSONDecodeError as e:
         await evt.reply(f"JSON decode error: {e}")
         return
+    if add_username:
+        args["username"] = evt.sender.username
 
     try:
         resp_type, resp_data = await evt.bridge.signal._raw_request(type, **args)
     except Exception as e:
         await evt.reply(f"Error sending request: {e}")
     else:
-        await evt.reply(f"Got reply `{resp_type}`:\n\n"
-                        f"```json\n{json.dumps(resp_data, indent=2)}\n```")
+        if resp_data is None:
+            await evt.reply(f"Got reply `{resp_type}` with no content")
+        else:
+            await evt.reply(f"Got reply `{resp_type}`:\n\n"
+                            f"```json\n{json.dumps(resp_data, indent=2)}\n```")