Browse Source

fix #196; remove ClientServerList handling

pull/191/head
Rossen Georgiev 6 years ago
parent
commit
fde332fd02
  1. 9
      steam/client/builtins/apps.py
  2. 25
      steam/client/cdn.py

9
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

25
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")

Loading…
Cancel
Save