from nio import * import utils # Our message callback. It should be passed through a router. async def msg_cb(room: MatrixRoom, event: RoomMessageText) -> None: import re import latex client = utils.get_client() if event.sender == client.user_id: return print("ae", client) for tex in re.findall(r'((?:\$[^\$]+\$)|(?:\$\$[^\$]+\$\$)|(?:\\\[[^\]]+\\\]))', event.body, re.M): print("Text:", tex) try: filename = latex.render("", tex) await utils.send_png(room, filename) except FileNotFoundError as e: content = { "msgtype": "m.text", "body": f"Couldn't parse LaTeX correctly.\n```{e.args[0]}\n```", "formatted_body": f"Couldn't parse LaTeX correctly.
{e.args[0]}
", } await client.room_send(room.room_id, message_type="m.room.message", content=content) except OSError: content = { "msgtype": "m.text", "body": "???", "formatted_body": "???" } await client.room_send(room.room_id, message_type="m.room.message", content=content) # Our file callback. async def file_cb(room: MatrixRoom, event: RoomMessageFile) -> None: url = event.url filename = event.body