from msg_container import MsgContainer from msg_sink import MsgSink import re class MsgReceiver(MsgSink): def __init__(self, name: str, filter: str): super().__init__() self.name = name self.filter = filter def is_msg(self, msg: MsgContainer): res = False try: data = msg.data.decode(encoding="utf-8") res = re.match(self.filter, data) is not None except UnicodeDecodeError: pass return res def on_recv(self, msg: MsgContainer): print(f"{self.name}: {msg}")