def _getOnlineAsync(self): try: res = {} for host in self.hosts: res[host] = l10n_macros_replace(config.get('hangar/onlineServers/errorString', '--k') if g_hangarSpace.inited else config.get('login/onlineServers/errorString', '--k')) req = "onlineUsersCount/0" server = XVM.SERVERS[randint(0, len(XVM.SERVERS) - 1)] (response, delay, error) = loadUrl(server, req, showLog=False) # typical response: #{ # "eu": [{"players_online":4297,"server":"EU2"},{"players_online":8331,"server":"EU1"}], # "na": [{"players_online":22740,"server":"NA EAST"},{"players_online":7431,"server":"NA WEST"}], # "asia":[{"players_online":6603,"server":"ASIA"}], # "kr": [{"players_online":868,"server":"KR"}], # "ru": [{"players_online":14845,"server":"RU8"},{"players_online":8597,"server":"RU2"},{"players_online":9847,"server":"RU1"},{"players_online":3422,"server":"RU3"},{"players_online":11508,"server":"RU6"},{"players_online":6795,"server":"RU5"},{"players_online":3354,"server":"RU4"}] #} region = GAME_REGION.lower() if 'CT' in URLS.WG_API_SERVERS and region == 'ct': # CT is uncommented in xfw.constants to check on test server region = 'ru' response_data = None if response is None else simplejson.loads(response).get(region, []) best_online = 0 if not error and type(response_data) is list: for host in response_data: if host['server'].find('NA ') == 0: # API returns "NA EAST" instead of "US East" => can't determine current server host['server'] = 'US ' + host['server'][3:].capitalize() res[str(host['server'])] = host['players_online'] best_online = max(best_online, int(host['players_online'])) if (g_hangarSpace.inited and config.get('hangar/onlineServers/showTitle')) or (not g_hangarSpace.inited and config.get('login/onlineServers/showTitle')): res['###best_online###'] = str(best_online) # will be first in sorting, key is replaced by localized "Online" except Exception, ex: err('_getOnlineAsync() exception: ' + traceback.format_exc())
def _doRequest(self, cmd, body=None): req = '{0}/{1}'.format(cmd, self.cached_token) server = XVM.SERVERS[randint(0, len(XVM.SERVERS) - 1)] (response, duration, errStr) = loadUrl(server, req, body=body, api=XVM.API_VERSION_OLD) if errStr: raise Exception(errStr) response = response.strip() if response in ('', '[]', '{}'): response = None # log(utils.hide_guid(response)) return response
def _doRequest(self, cmd, body=None): req = '{0}/{1}'.format(cmd, self.cached_token) server = XVM.SERVERS[randint(0, len(XVM.SERVERS) - 1)] (response, duration, errStr) = loadUrl(server, req, body=body, api=XVM.API_VERSION) if errStr: raise Exception(errStr) response = response.strip() if response in ('', '[]', '{}'): response = None # log(utils.hide_guid(response)) return response