X-Git-Url: http://git.treefish.org/~alex/mtxbot.git/blobdiff_plain/78728c1ec35a28086bf6939eb8afaaae897fa3e5..HEAD:/src/presence.py diff --git a/src/presence.py b/src/presence.py index b3da858..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,19 +72,16 @@ class Presence: break if self._joined_room_id != None: try: - msgB64Bytes = line.rstrip("\n").encode("UTF-8") - msgBytes = base64.b64decode(msgB64Bytes) - 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": msgBytes.decode("UTF-8") - } - ) + 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")