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)
Copyright (c) 2019 Tulir Asokan
Copyright (c) 2020 Tulir Asokan
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

View File

@@ -3,4 +3,3 @@ A simple [maubot](https://github.com/maubot/maubot) that echoes pings and other
## Usage
* `!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 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.handlers import command
@@ -39,22 +39,24 @@ class EchoBot(Plugin):
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"
text_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 {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! "
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"] = {
"ms": diff,
"from": evt.sender.split(":", 1)[1],
"from": pong_from,
"ping": evt.event_id,
}
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
id: xyz.maubot.echo
version: 1.3.0
version: 1.4.1
license: MIT
modules:
- echo