X-Git-Url: http://git.treefish.org/~alex/mtxbot.git/blobdiff_plain/6c4dbc2edd8bf5cac128c2fa48728d8abe52432e..94f38bb41b8a779a1a9345998603fe6b536511c3:/src/presence.py diff --git a/src/presence.py b/src/presence.py index 7430ee8..d9b6529 100644 --- a/src/presence.py +++ b/src/presence.py @@ -1,12 +1,14 @@ import aiofiles import asyncio -import base64 import errno import logging import posix +from inputparser import InputParser + class Presence: def __init__(self, room_name, fifo_path): + self._input_parser = InputParser() self._room_name = room_name self._fifo_path = fifo_path self._joined_room_id = None @@ -70,20 +72,16 @@ class Presence: break if self._joined_room_id != None: try: - msgB64Bytes = line.rstrip("\n").encode("UTF-8") - msgBytes = base64.b64decode(msgB64Bytes) - msgStr = msgBytes.decode("UTF-8") - except: - self._log(logging.WARNING, "Error decoding message") + self._input_parser.feed_line(line) + except Exception as e: + self._log(logging.WARNING, "Error parsing input: %s" % str(e)) continue - await client.room_send( - room_id=self._joined_room_id, - message_type="m.room.message", - content={ - "msgtype": "m.text", - "body": msgStr - } - ) + for content in self._input_parser.fetch_decoded(): + await client.room_send( + room_id=self._joined_room_id, + message_type="m.room.message", + content=content + ) else: self._log(logging.WARNING, "Dropping message cause no room joined")