X-Git-Url: http://git.treefish.org/~alex/mtxbot.git/blobdiff_plain/a6f58518069909db7b170ad374b13328986b98da..bb49ec12c34aa247c5a972695a318324fffa15ca:/src/presence.py?ds=inline diff --git a/src/presence.py b/src/presence.py index e239bdb..d9b6529 100644 --- a/src/presence.py +++ b/src/presence.py @@ -4,8 +4,11 @@ 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 @@ -68,14 +71,17 @@ class Presence: if self._stop: break if self._joined_room_id != None: - await client.room_send( - room_id=self._joined_room_id, - message_type="m.room.message", - content={ - "msgtype": "m.text", - "body": line.rstrip("\n") - } - ) + try: + self._input_parser.feed_line(line) + except Exception as e: + self._log(logging.WARNING, "Error parsing input: %s" % str(e)) + continue + 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")