diff --git a/echo.py b/echo.py
index 329705e..62a9cc7 100644
--- a/echo.py
+++ b/echo.py
@@ -1,5 +1,6 @@
from typing import Optional
from time import time
+from html import escape
from mautrix.types import TextMessageEventContent, MessageType, Format
@@ -34,14 +35,17 @@ class EchoBot(Plugin):
f"{cls.plural(minutes, 'minute')} and {cls.plural(seconds, 'second')}")
@command.new("ping", help="Ping")
- async def ping_handler(self, evt: MessageEvent) -> None:
+ @command.argument("message", pass_raw=True, required=False)
+ async def ping_handler(self, evt: MessageEvent, message: str = "") -> None:
diff = int(time() * 1000) - evt.timestamp
pretty_diff = self.prettify_diff(diff)
+ message = f'"{message[:20]}" took' if message else "took"
+ html_message = f'"{escape(message[:20])}" took' if message else "took"
content = TextMessageEventContent(
msgtype=MessageType.NOTICE, format=Format.HTML,
- body=f"{evt.sender}: Pong! (ping took {pretty_diff} to arrive)",
+ body=f"{evt.sender}: Pong! (ping {message} {pretty_diff} to arrive)",
formatted_body=f"{evt.sender}: Pong! "
- f"(ping took "
+ f"(ping {message} "
f"{pretty_diff} to arrive)")
content["pong"] = {
"ms": diff,