diff --git a/app/common b/app/common index 6282667..83272b6 160000 --- a/app/common +++ b/app/common @@ -1 +1 @@ -Subproject commit 62826671083c4d29d68793384416e6c7bb77ed1e +Subproject commit 83272b64f2bc59ac84d655fac19cb832d54c591d diff --git a/app/service/subscribers_service_manager.py b/app/service/subscribers_service_manager.py index 5127464..d8b1f54 100644 --- a/app/service/subscribers_service_manager.py +++ b/app/service/subscribers_service_manager.py @@ -107,6 +107,27 @@ class SubscribersServiceManager(ServiceManager, IClientHandler): def on_client_state_changed(self, client, status: ClientStatus): pass + def get_watchers_by_stream_id(self, sid: str): + total = 0 + for user in self._subscribers: + if user.current_stream_id == sid: + total += 1 + + return total + + def get_user_connections_by_email(self, email) -> list: + connections = [] + for user in self._subscribers: + if user.info and user.info.email == email: + connections.append(user) + + return connections + + def send_message(self, email: str, message: PlayerMessage): + for user in self._subscribers: + if user.info and user.info.email == email: + user.send_message(user.gen_request_id(), message.message, message.type, message.ttl * 1000) + # protected def _handle_server_ping_command(self, client, resp: Response): @@ -177,6 +198,7 @@ class SubscribersServiceManager(ServiceManager, IClientHandler): return False channels = client.info.get_streams() + own_channels = client.info.get_own_streams() return client.get_channels_success(cid, channels) def _handle_get_runtime_channel_info(self, client, cid: str, params: dict) -> bool: @@ -189,27 +211,6 @@ class SubscribersServiceManager(ServiceManager, IClientHandler): client.current_stream_id = sid return client.get_runtime_channel_info_success(cid, sid, watchers) - def get_watchers_by_stream_id(self, sid: str): - total = 0 - for user in self._subscribers: - if user.current_stream_id == sid: - total += 1 - - return total - - def get_user_connections_by_email(self, email) -> list: - connections = [] - for user in self._subscribers: - if user.info and user.info.email == email: - connections.append(user) - - return connections - - def send_message(self, email: str, message: PlayerMessage): - for user in self._subscribers: - if user.info and user.info.email == email: - user.send_message(user.gen_request_id(), message.message, message.type, message.ttl * 1000) - # private def __close_subscriber(self, subs: SubscriberConnection): self.__remove_subscriber(subs)