コード例 #1
0
ファイル: online.py プロジェクト: Satariall/xvm-test
    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())
コード例 #2
0
    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
コード例 #3
0
ファイル: contacts.py プロジェクト: amelkikh/xvm_for_wot
    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