From 9ecf2c1b07731f4dad5fba9218ed383136f46aba Mon Sep 17 00:00:00 2001 From: Benjamin Braatz Date: Wed, 16 Jun 2021 11:47:27 +0200 Subject: [PATCH] Prevent message loop. --- controlpi_plugins/wsclient.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/controlpi_plugins/wsclient.py b/controlpi_plugins/wsclient.py index f080a78..e14be7b 100644 --- a/controlpi_plugins/wsclient.py +++ b/controlpi_plugins/wsclient.py @@ -29,8 +29,11 @@ class WSClient(BasePlugin): if not self._websocket: return assert isinstance(message['sender'], str) + prefix = f"{self.name}/" original_sender = self.conf['client'] if 'original sender' in message: + if message['original sender'].startswith(prefix): + return original_sender += f"/{message['original sender']}" else: original_sender += f"/{message['sender']}" @@ -39,7 +42,6 @@ class WSClient(BasePlugin): if 'target' in message: assert isinstance(message['target'], str) target = message['target'] - prefix = f"{self.name}/" if target.startswith(prefix): target = target[len(prefix):] else: @@ -50,8 +52,11 @@ class WSClient(BasePlugin): async def _send(self, json_message: str) -> None: message = json.loads(json_message) + prefix = f"{self.conf['client']}/" original_sender = self.name if 'original sender' in message: + if message['original sender'].startswith(prefix): + return original_sender += f"/{message['original sender']}" else: original_sender += f"/{message['sender']}" @@ -59,7 +64,6 @@ class WSClient(BasePlugin): message['sender'] = self.name if 'target' in message: target = message['target'] - prefix = f"{self.conf['client']}/" if target.startswith(prefix): target = target[len(prefix):] else: -- 2.34.1