23 lines
490 B
Python
23 lines
490 B
Python
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}")
|
|
|