10 Commits

Author SHA1 Message Date
695a91cad4 Removed echo command and bumped version number. 2025-04-21 15:25:34 -04:00
Tulir Asokan
55ea03df06 Move CI script to main maubot repo 2022-06-19 14:26:00 +03:00
Tulir Asokan
0d2db04ed5 Update CI artifact expiry 2021-11-28 15:35:30 +02:00
Tulir Asokan
546e5eee21 Bump version to 1.4.0 2020-03-01 14:22:14 +02:00
Tulir Asokan
0e5b7bc2db Use RelatesTo and RelationType classes 2020-03-01 14:06:07 +02:00
Tulir Asokan
25aa06e1ff Update copyright year 2020-03-01 13:57:20 +02:00
Tulir Asokan
4ade107370 Change rel_type to xyz.maubot.pong 2019-12-09 21:20:07 +02:00
Jason Volk
e9b4cd47a2 Add m.relates_to support in pong response content. 2019-12-09 21:18:44 +02:00
Tulir Asokan
4d3f4f1556 Add .gitlab-ci.yml 2019-07-28 22:09:46 +03:00
Tulir Asokan
0d8d59eb1a Fix incorrect html pong message and bump version to 1.3.1 2019-07-08 18:23:12 +03:00
5 changed files with 17 additions and 13 deletions

3
.gitlab-ci.yml Normal file
View File

@@ -0,0 +1,3 @@
include:
- project: 'maubot/maubot'
file: '/.gitlab-ci-plugin.yml'

View File

@@ -1,6 +1,6 @@
The MIT License (MIT) The MIT License (MIT)
Copyright (c) 2019 Tulir Asokan Copyright (c) 2020 Tulir Asokan
Permission is hereby granted, free of charge, to any person obtaining a copy of Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in this software and associated documentation files (the "Software"), to deal in

View File

@@ -3,4 +3,3 @@ A simple [maubot](https://github.com/maubot/maubot) that echoes pings and other
## Usage ## Usage
* `!ping` - Reply with "Pong!" and the time it took for the message to reach the bot. * `!ping` - Reply with "Pong!" and the time it took for the message to reach the bot.
* `!echo <message>` - Reply with the given message

22
echo.py
View File

@@ -2,7 +2,7 @@ from typing import Optional
from time import time from time import time
from html import escape from html import escape
from mautrix.types import TextMessageEventContent, MessageType, Format from mautrix.types import TextMessageEventContent, MessageType, Format, RelatesTo, RelationType
from maubot import Plugin, MessageEvent from maubot import Plugin, MessageEvent
from maubot.handlers import command from maubot.handlers import command
@@ -39,22 +39,24 @@ class EchoBot(Plugin):
async def ping_handler(self, evt: MessageEvent, message: str = "") -> None: async def ping_handler(self, evt: MessageEvent, message: str = "") -> None:
diff = int(time() * 1000) - evt.timestamp diff = int(time() * 1000) - evt.timestamp
pretty_diff = self.prettify_diff(diff) pretty_diff = self.prettify_diff(diff)
message = f'"{message[:20]}" took' if message else "took" text_message = f'"{message[:20]}" took' if message else "took"
html_message = f'"{escape(message[:20])}" took' if message else "took" html_message = f'"{escape(message[:20])}" took' if message else "took"
content = TextMessageEventContent( content = TextMessageEventContent(
msgtype=MessageType.NOTICE, format=Format.HTML, msgtype=MessageType.NOTICE, format=Format.HTML,
body=f"{evt.sender}: Pong! (ping {message} {pretty_diff} to arrive)", body=f"{evt.sender}: Pong! (ping {text_message} {pretty_diff} to arrive)",
formatted_body=f"<a href='https://matrix.to/#/{evt.sender}'>{evt.sender}</a>: Pong! " formatted_body=f"<a href='https://matrix.to/#/{evt.sender}'>{evt.sender}</a>: Pong! "
f"(<a href='https://matrix.to/#/{evt.room_id}/{evt.event_id}'>ping</a> {html_message} " f"(<a href='https://matrix.to/#/{evt.room_id}/{evt.event_id}'>ping</a> {html_message} "
f"{pretty_diff} to arrive)") f"{pretty_diff} to arrive)",
relates_to=RelatesTo(
rel_type=RelationType("xyz.maubot.pong"),
event_id=evt.event_id,
))
pong_from = evt.sender.split(":", 1)[1]
content.relates_to["from"] = pong_from
content.relates_to["ms"] = diff
content["pong"] = { content["pong"] = {
"ms": diff, "ms": diff,
"from": evt.sender.split(":", 1)[1], "from": pong_from,
"ping": evt.event_id, "ping": evt.event_id,
} }
await evt.respond(content) await evt.respond(content)
@command.new("echo", help="Repeat a message")
@command.argument("message", pass_raw=True)
async def echo_handler(self, evt: MessageEvent, message: str) -> None:
await evt.respond(message)

View File

@@ -1,6 +1,6 @@
maubot: 0.1.0 maubot: 0.1.0
id: xyz.maubot.echo id: xyz.maubot.echo
version: 1.3.0 version: 1.4.1
license: MIT license: MIT
modules: modules:
- echo - echo