matrix_chatgpt_bot/send_message.py

27 lines
1.2 KiB
Python
Raw Normal View History

2023-03-05 14:07:25 +00:00
from nio import AsyncClient
async def send_room_message(client: AsyncClient,
room_id: str,
2023-04-10 02:52:18 +00:00
reply_message: str,
sender_id: str = '',
user_message: str = '',
2023-03-22 14:28:22 +00:00
reply_to_event_id: str = '') -> None:
if reply_to_event_id == '':
2023-04-10 02:52:18 +00:00
content = {"msgtype": "m.text", "body": reply_message, }
2023-03-22 14:28:22 +00:00
else:
2023-04-10 02:52:18 +00:00
body = r'> <' + sender_id + r'> ' + user_message + r'\n\n' + reply_message
format = r'org.matrix.custom.html'
formatted_body = r'<mx-reply><blockquote><a href=\"https://matrix.to/#/' + room_id + r'/' + reply_to_event_id
+ r'\">In reply to</a> <a href=\"https://matrix.to/#/' + sender_id + r'\">' + sender_id
+ r'</a><br>' + user_message + r'</blockquote></mx-reply>' + reply_message
content={"msgtype": "m.text", "body": body, "format": format, "formatted_body": formatted_body,
2023-03-22 14:28:22 +00:00
"m.relates_to": {"m.in_reply_to": {"event_id": reply_to_event_id}}, }
2023-03-05 14:07:25 +00:00
await client.room_send(
room_id,
message_type="m.room.message",
2023-03-22 14:28:22 +00:00
content=content,
2023-03-14 14:37:30 +00:00
ignore_unverified_devices=True,
2023-03-05 14:07:25 +00:00
)
await client.room_typing(room_id, typing_state=False)