From fde332fd0224a8536a616f71fda3218d5ed2d2fe Mon Sep 17 00:00:00 2001 From: Rossen Georgiev Date: Wed, 26 Jun 2019 19:17:52 +0100 Subject: [PATCH] fix #196; remove ClientServerList handling --- steam/client/builtins/apps.py | 9 --------- steam/client/cdn.py | 25 +++++++------------------ 2 files changed, 7 insertions(+), 27 deletions(-) diff --git a/steam/client/builtins/apps.py b/steam/client/builtins/apps.py index d438f06..007894b 100644 --- a/steam/client/builtins/apps.py +++ b/steam/client/builtins/apps.py @@ -6,26 +6,17 @@ from steam.util import ip_from_int, proto_fill_from_dict class Apps(object): - servers = None #: :class:`dict: Servers by type licenses = None #: :class:`dict` Account licenses def __init__(self, *args, **kwargs): super(Apps, self).__init__(*args, **kwargs) - self.servers = {} self.licenses = {} self.on(self.EVENT_DISCONNECTED, self.__handle_disconnect) - self.on(EMsg.ClientServerList, self._handle_server_list) self.on(EMsg.ClientLicenseList, self._handle_licenses) def __handle_disconnect(self): - self.servers = {} self.licenses = {} - def _handle_server_list(self, message): - for entry in message.body.servers: - self.servers.setdefault(EServerType(entry.server_type), [])\ - .append((ip_from_int(entry.server_ip), entry.server_port)) - def _handle_licenses(self, message): for entry in message.body.licenses: self.licenses[entry.package_id] = entry diff --git a/steam/client/cdn.py b/steam/client/cdn.py index 36c73ac..7c6de6d 100644 --- a/steam/client/cdn.py +++ b/steam/client/cdn.py @@ -102,9 +102,13 @@ class CDNClient(object): _LOG = logging.getLogger("CDNClient") servers = deque() _chunk_cache = LRUCache(20) + cell_id = 0 def __init__(self, client): self.steam = client + if self.steam: + self.cell_id = self.steam.cell_id + self.web = make_requests_session() self.depot_keys = {} self.manifests = {} @@ -135,28 +139,13 @@ class CDNClient(object): self.licensed_app_ids.update(info['appids'].values()) self.licensed_depot_ids.update(info['depotids'].values()) - @property - def cell_id(self): - return self.steam.cell_id - def fetch_content_servers(self, num_servers=20): self.servers.clear() - if self.steam: - for ip, port in self.steam.servers.get(EServerType.CS, []): - servers = get_content_servers_from_cs(self.cell_id, ip, port, num_servers, self.web) - - if servers: - self.servers.extend(servers) - break - else: - self._LOG.debug("No content servers available on SteamClient instance") - - if not self.servers: - self._LOG.debug("Trying to fetch content servers from Steam API") + self._LOG.debug("Trying to fetch content servers from Steam API") - servers = get_content_servers_from_webapi(self.cell_id) - self.servers.extend(servers) + servers = get_content_servers_from_webapi(self.cell_id) + self.servers.extend(servers) if not self.servers: raise ValueError("Failed to fetch content servers")