diff --git a/polygon/websocket/__init__.py b/polygon/websocket/__init__.py index 4875a1ac..6d00d907 100644 --- a/polygon/websocket/__init__.py +++ b/polygon/websocket/__init__.py @@ -197,15 +197,24 @@ async def _unsubscribe(self, topics: Union[List[str], Set[str]]): self.json.dumps({"action": "unsubscribe", "params": subs}) ) + @staticmethod def _parse_subscription(s: str): s = s.strip() split = s.split(".") - if len(split) != 2: - logger.warning("invalid subscription:", s) + length = len(split) + + if length < 2: + logger.warning("invalid subscription:", s) + return [None, None] + if length == 2: + return split[0], split[1] + if length == 3: + return split[0], split[1] + "." + split[2] + if length > 3: + logger.warning("invalid subscription:", s) return [None, None] - return split def subscribe(self, *subscriptions: str): """