def getVehicleList():
    import nations
    from constants import VEHICLE_CLASSES
    from items.vehicles import g_list
    from helpers import getFullClientVersion
    data = {}
    for nationId in nations.INDICES.values():
        for v in g_list.getList(nationId).values():
            nation, tag = v.name.split(':')
            data[v.compactDescr] = {
                'name': v.userString,
                'nation': nation,
                'tag': tag,
                'tier': v.level,
                'type': list(set(VEHICLE_CLASSES) & v.tags)[0],
                'tank_id': v.compactDescr
            }
    size = len(data)
    result = {
        'meta': {
            'count': size,
            'total': size,
            'version': getFullClientVersion()
        },
        'data': data
    }
    saveDataJSON(FILE_VEHICLELIST, result)
Example #2
0
    def run(self):
        try:
            self.result = feedparser.parse(self.url, None, None, helpers.getFullClientVersion())
        except Exception:
            LOG_CURRENT_EXCEPTION()

        return
Example #3
0
 def afterCreate(self):
     super(GameLoading, self).afterCreate()
     self.as_setLocaleS(getClientOverride())
     self.as_setVersionS(getFullClientVersion())
     if getClientLanguage() == 'ko':
         self.as_setInfoS(MENU.LOADING_GAMEINFO)
     self._updateStage()
Example #4
0
 def onClientReady(self):
     if not (self.isPlaying or self.isRecording):
         return
     elif self.isRecording and BigWorld.player().arena.guiType == constants.ARENA_GUI_TYPE.TUTORIAL:
         self.stop(None, True)
         return
     else:
         self.__replayCtrl.playerVehicleID = BigWorld.player().playerVehicleID
         self.__replayCtrl.onClientReady()
         if self.isPlaying:
             AreaDestructibles.g_destructiblesManager.onAfterReplayTimeWarp()
             if isPlayerAvatar():
                 BigWorld.player().onVehicleEnterWorld += self.__onVehicleEnterWorld
         if self.isRecording:
             player = BigWorld.player()
             arena = player.arena
             arenaName = arena.arenaType.geometry
             i = arenaName.find('/')
             if i != -1:
                 arenaName = arenaName[i + 1:]
             now = datetime.datetime.now()
             now = '%02d.%02d.%04d %02d:%02d:%02d' % (now.day,
              now.month,
              now.year,
              now.hour,
              now.minute,
              now.second)
             vehicleName = BigWorld.entities[player.playerVehicleID].typeDescriptor.name
             vehicleName = vehicleName.replace(':', '-')
             vehicles = self.__getArenaVehiclesInfo()
             gameplayID = player.arenaTypeID >> 16
             clientVersionFromXml = getFullClientVersion()
             clientVersionFromExe = BigWorld.wg_getProductVersion()
             arenaInfo = {'dateTime': now,
              'playerName': player.name,
              'playerID': self.__playerDatabaseID,
              'playerVehicle': vehicleName,
              'mapName': arenaName,
              'mapDisplayName': arena.arenaType.name,
              'gameplayID': ArenaType.getGameplayName(gameplayID) or gameplayID,
              'vehicles': vehicles,
              'battleType': arena.bonusType,
              'clientVersionFromExe': clientVersionFromExe,
              'clientVersionFromXml': clientVersionFromXml,
              'serverName': connectionManager.serverUserName,
              'regionCode': constants.AUTH_REALM,
              'serverSettings': self.__serverSettings,
              'hasMods': self.__replayCtrl.hasMods}
             self.__replayCtrl.recMapName = arenaName
             self.__replayCtrl.recPlayerVehicleName = vehicleName
             self.__replayCtrl.setArenaInfoStr(json.dumps(arenaInfo))
         else:
             self.__showInfoMessage('replayControlsHelp1')
             self.__showInfoMessage('replayControlsHelp2')
             self.__showInfoMessage('replayControlsHelp3')
             if self.replayTimeout > 0:
                 LOG_DEBUG('replayTimeout set for %.2f' % float(self.replayTimeout))
                 BigWorld.callback(float(self.replayTimeout), BigWorld.quit)
         return
Example #5
0
 def onClientReady(self):
     if not (self.isPlaying or self.isRecording):
         return
     elif self.isRecording and BigWorld.player().arena.guiType == constants.ARENA_GUI_TYPE.TUTORIAL:
         self.stop(None, True)
         return
     else:
         self.__replayCtrl.playerVehicleID = BigWorld.player().playerVehicleID
         self.__replayCtrl.onClientReady()
         if self.isPlaying:
             AreaDestructibles.g_destructiblesManager.onAfterReplayTimeWarp()
             if isPlayerAvatar():
                 BigWorld.player().onVehicleEnterWorld += self.__onVehicleEnterWorld
         if self.isRecording:
             player = BigWorld.player()
             arena = player.arena
             arenaName = arena.arenaType.geometry
             i = arenaName.find('/')
             if i != -1:
                 arenaName = arenaName[i + 1:]
             now = datetime.datetime.now()
             now = '%02d.%02d.%04d %02d:%02d:%02d' % (now.day,
              now.month,
              now.year,
              now.hour,
              now.minute,
              now.second)
             vehicleName = BigWorld.entities[player.playerVehicleID].typeDescriptor.name
             vehicleName = vehicleName.replace(':', '-')
             vehicles = self.__getArenaVehiclesInfo()
             gameplayID = player.arenaTypeID >> 16
             clientVersionFromXml = getFullClientVersion()
             clientVersionFromExe = BigWorld.wg_getProductVersion()
             arenaInfo = {'dateTime': now,
              'playerName': player.name,
              'playerID': self.__playerDatabaseID,
              'playerVehicle': vehicleName,
              'mapName': arenaName,
              'mapDisplayName': arena.arenaType.name,
              'gameplayID': ArenaType.getGameplayName(gameplayID) or gameplayID,
              'vehicles': vehicles,
              'battleType': arena.bonusType,
              'clientVersionFromExe': clientVersionFromExe,
              'clientVersionFromXml': clientVersionFromXml,
              'serverName': connectionManager.serverUserName,
              'regionCode': constants.AUTH_REALM,
              'serverSettings': self.__serverSettings}
             self.__replayCtrl.recMapName = arenaName
             self.__replayCtrl.recPlayerVehicleName = vehicleName
             self.__replayCtrl.setArenaInfoStr(json.dumps(arenaInfo))
         else:
             self.__showInfoMessage('replayControlsHelp1')
             self.__showInfoMessage('replayControlsHelp2')
             self.__showInfoMessage('replayControlsHelp3')
             if self.replayTimeout > 0:
                 LOG_DEBUG('replayTimeout set for %.2f' % float(self.replayTimeout))
                 BigWorld.callback(float(self.replayTimeout), BigWorld.quit)
         return
Example #6
0
 def __init__(self, component = None):
     Flash.__init__(self, 'gameLoading.swf', path=SCALEFORM_SWF_PATH_V3)
     self._displayRoot = self.getMember('root.main')
     if self._displayRoot is not None:
         self._displayRoot.resync()
         self._displayRoot.setLocale(getClientOverride())
         self._displayRoot.setVersion(getFullClientVersion())
         (width, height,) = GUI.screenResolution()
         self._displayRoot.updateStage(width, height)
 def afterCreate(self):
     super(GameLoading, self).afterCreate()
     self.as_setLocaleS(getClientOverride())
     self.as_setVersionS(getFullClientVersion())
     if getClientLanguage() == 'ko':
         self.as_setInfoS(
             backport.text(R.strings.menu.loading.gameInfo(),
                           age=makeHtmlString('html_templates:loading',
                                              'game-info-age')))
     self._updateStage()
Example #8
0
 def __init__(self, component = None):
     Flash.__init__(self, 'gameLoading.swf', path=SCALEFORM_SWF_PATH_V3)
     self._displayRoot = self.getMember('root.main')
     if self._displayRoot is not None:
         self._displayRoot.resync()
         self._displayRoot.setLocale(getClientOverride())
         self._displayRoot.setVersion(getFullClientVersion())
         if constants.IS_KOREA:
             self._displayRoot.setInfo(MENU.LOADING_GAMEINFO)
         g_guiResetters.add(self.onUpdateStage)
         self.onUpdateStage()
Example #9
0
 def __init__(self, component=None):
     Flash.__init__(self, 'gameLoading.swf', path=SCALEFORM_SWF_PATH_V3)
     self._displayRoot = self.getMember('root.main')
     if self._displayRoot is not None:
         self._displayRoot.resync()
         self._displayRoot.setLocale(getClientOverride())
         self._displayRoot.setVersion(getFullClientVersion())
         if constants.IS_KOREA:
             self._displayRoot.setInfo(MENU.LOADING_GAMEINFO)
         g_guiResetters.add(self.onUpdateStage)
         self.onUpdateStage()
Example #10
0
 def _populate(self):
     View._populate(self)
     self.as_enableS(True)
     self._servers.onServersStatusChanged += self.__updateServersList
     connectionManager.onRejected += self._onLoginRejected
     g_playerEvents.onLoginQueueNumberReceived += self._onHandleQueue
     g_playerEvents.onKickWhileLoginReceived += self._onKickedWhileLogin
     g_playerEvents.onAccountShowGUI += self._clearLoginView
     self.as_setVersionS(getFullClientVersion())
     self.as_setCopyrightS(_ms(MENU.COPY), _ms(MENU.LEGAL))
     self.__loadRandomBgImage()
     if self.__capsLockCallbackID is None:
         self.__capsLockCallbackID = BigWorld.callback(0.1, self.__checkUserInputState)
     g_sessionProvider.getCtx().lastArenaUniqueID = None
     self._setData()
     self._showForm()
     return
Example #11
0
 def _populate(self):
     View._populate(self)
     self._serversDP = ServersDataProvider()
     self._serversDP.setFlashObject(self.as_getServersDPS())
     self.as_enableS(True)
     self._servers.onServersStatusChanged += self.__updateServersList
     connectionManager.onRejected += self._onLoginRejected
     connectionManager.onKickWhileLoginReceived += self._onKickedWhileLogin
     connectionManager.onQueued += self._onHandleQueue
     g_playerEvents.onAccountShowGUI += self._clearLoginView
     self.as_setVersionS(getFullClientVersion())
     self.as_setCopyrightS(_ms(MENU.COPY), _ms(MENU.LEGAL))
     ScaleformFileLoader.enableStreaming([getPathForFlash(_LOGIN_VIDEO_FILE)])
     self.__backgroundMode.show()
     if self.__capsLockCallbackID is None:
         self.__capsLockCallbackID = BigWorld.callback(0.1, self.__checkUserInputState)
     g_sessionProvider.getCtx().lastArenaUniqueID = None
     self._setData()
     self._showForm()
     return
 def _populate(self):
     View._populate(self)
     self._serversDP = ServersDataProvider()
     self._serversDP.setFlashObject(self.as_getServersDPS())
     self.as_enableS(True)
     self._servers.onServersStatusChanged += self.__updateServersList
     self.connectionMgr.onRejected += self._onLoginRejected
     self.connectionMgr.onKickWhileLoginReceived += self._onKickedWhileLogin
     self.connectionMgr.onQueued += self._onHandleQueue
     self.connectionMgr.onLoggedOn += self._onLoggedOn
     g_playerEvents.onAccountShowGUI += self._clearLoginView
     g_playerEvents.onEntityCheckOutEnqueued += self._onEntityCheckoutEnqueued
     g_playerEvents.onAccountBecomeNonPlayer += self._onAccountBecomeNonPlayer
     self.as_setVersionS(getFullClientVersion())
     self.as_setCopyrightS(_ms(MENU.COPY), _ms(MENU.LEGAL))
     self.sessionProvider.getCtx().lastArenaUniqueID = None
     self._loginMode.init()
     self.update()
     if self.__capsLockCallbackID is None:
         self.__capsLockCallbackID = BigWorld.callback(0.0, self.__checkUserInputState)
     return
Example #13
0
 def _populate(self):
     View._populate(self)
     self._serversDP = ServersDataProvider()
     self._serversDP.setFlashObject(self.as_getServersDPS())
     self.as_enableS(True)
     self._servers.onServersStatusChanged += self.__updateServersList
     connectionManager.onRejected += self._onLoginRejected
     connectionManager.onKickWhileLoginReceived += self._onKickedWhileLogin
     connectionManager.onQueued += self._onHandleQueue
     g_playerEvents.onAccountShowGUI += self._clearLoginView
     self.as_setVersionS(getFullClientVersion())
     self.as_setCopyrightS(_ms(MENU.COPY), _ms(MENU.LEGAL))
     if BigWorld.isLowProductivityPC():
         self._showOnlyStaticBackground()
     else:
         self._showBackground()
     if self.__capsLockCallbackID is None:
         self.__capsLockCallbackID = BigWorld.callback(0.1, self.__checkUserInputState)
     g_sessionProvider.getCtx().lastArenaUniqueID = None
     self._setData()
     self._showForm()
     return
Example #14
0
 def _populate(self):
     View._populate(self)
     self._serversDP = ServersDataProvider()
     self._serversDP.setFlashObject(self.as_getServersDPS())
     self.as_enableS(True)
     self._servers.onServersStatusChanged += self.__updateServersList
     connectionManager.onRejected += self._onLoginRejected
     connectionManager.onKickWhileLoginReceived += self._onKickedWhileLogin
     connectionManager.onQueued += self._onHandleQueue
     g_playerEvents.onAccountShowGUI += self._clearLoginView
     self.as_setVersionS(getFullClientVersion())
     self.as_setCopyrightS(_ms(MENU.COPY), _ms(MENU.LEGAL))
     ScaleformFileLoader.enableStreaming(
         [getPathForFlash(_LOGIN_VIDEO_FILE)])
     self.__backgroundMode.show()
     if self.__capsLockCallbackID is None:
         self.__capsLockCallbackID = BigWorld.callback(
             0.1, self.__checkUserInputState)
     g_sessionProvider.getCtx().lastArenaUniqueID = None
     self._setData()
     self._showForm()
     return
Example #15
0
 def _populate(self):
     View._populate(self)
     self._serversDP = ServersDataProvider()
     self._serversDP.setFlashObject(self.as_getServersDPS())
     self.as_enableS(True)
     self._servers.onServersStatusChanged += self.__updateServersList
     connectionManager.onRejected += self._onLoginRejected
     connectionManager.onKickWhileLoginReceived += self._onKickedWhileLogin
     connectionManager.onQueued += self._onHandleQueue
     g_playerEvents.onAccountShowGUI += self._clearLoginView
     self.as_setVersionS(getFullClientVersion())
     self.as_setCopyrightS(_ms(MENU.COPY), _ms(MENU.LEGAL))
     if BigWorld.isLowProductivityPC():
         self._showOnlyStaticBackground()
     else:
         self._showBackground()
     if self.__capsLockCallbackID is None:
         self.__capsLockCallbackID = BigWorld.callback(
             0.1, self.__checkUserInputState)
     g_sessionProvider.getCtx().lastArenaUniqueID = None
     self._setData()
     self._showForm()
     return
Example #16
0
 def __loadVersion(self):
     self.as_setVersionS(getFullClientVersion())
import urllib2
import binascii
import threading
import random
import shelve as provider
from functools import partial
from Queue import Queue
import BigWorld
from debug_utils import LOG_WARNING, LOG_ERROR, LOG_CURRENT_EXCEPTION, LOG_DEBUG
from helpers import getFullClientVersion
from soft_exception import SoftException
_MIN_LIFE_TIME = 900
_MAX_LIFE_TIME = 86400
_LIFE_TIME_IN_MEMORY = 1200
_CACHE_VERSION = 2
_CLIENT_VERSION = getFullClientVersion()


def _LOG_EXECUTING_TIME(startTime, methodName, deltaTime=0.1):
    finishTime = time.time()
    if finishTime - startTime > deltaTime:
        LOG_WARNING('Method "%s" takes too much time %s' %
                    (methodName, finishTime - startTime))


def parseHttpTime(t):
    if t is None:
        return
    elif isinstance(t, int):
        return t
    else:
Example #18
0
 def __loadVersion(self):
     self.as_setVersionS(getFullClientVersion())
def _getClientVersion():
    global _CLIENT_VERSION
    if _CLIENT_VERSION is None:
        _CLIENT_VERSION = getFullClientVersion()
    return _CLIENT_VERSION
Example #20
0
# 2016.08.04 19:53:46 Støední Evropa (letní èas)
# Embedded file name: scripts/client/helpers/RSSDownloader.py
import threading
import helpers
import BigWorld
import feedparser
from debug_utils import *
_CLIENT_VERSION = helpers.getFullClientVersion()
feedparser.PARSE_MICROFORMATS = 0
feedparser.SANITIZE_HTML = 0

class RSSDownloader:
    UPDATE_INTERVAL = 0.1
    lastRSS = property(lambda self: self.__lastRSS)
    isBusy = property(lambda self: self.__thread is not None)

    def __init__(self):
        self.__thread = None
        self.__lastDownloadTime = None
        self.__cbID = BigWorld.callback(self.UPDATE_INTERVAL, self.__update)
        self.__lastRSS = {}
        self.__onCompleteCallbacks = set()
        return

    def destroy(self):
        self.__thread = None
        self.__onCompleteCallbacks = None
        self.__lastDownloadTime = None
        if self.__cbID is not None:
            BigWorld.cancelCallback(self.__cbID)
            self.__cbID = None
# 2016.02.14 12:41:24 Støední Evropa (bìžný èas)
# Embedded file name: scripts/client/gui/shared/RemoteDataDownloader.py
import time
import httplib
import base64
import threading
from functools import partial
from collections import namedtuple
from debug_utils import LOG_DEBUG
from helpers import threads, getFullClientVersion, http, time_utils, local_cache
_CLIENT_VERSION = getFullClientVersion()
_TIMEOUT = 10.0
_REMOTE_DATA_CACHE_VERSION = 1

class LIFE_TIME(object):
    MIN = time_utils.QUARTER_HOUR
    MAX = time_utils.ONE_DAY

    @classmethod
    def isExpired(cls, expires):
        ct = time_utils.getCurrentTimestamp()
        return not ct <= expires <= ct + cls.MAX


class _HttpOpenPageJob(threads.Job):

    def __init__(self, page, lastModified, callback):
        super(_HttpOpenPageJob, self).__init__()
        self.__page = page
        self.__lastModified = lastModified
        self.__callback = callback
Example #22
0
 def onClientReady(self):
     if not (self.isPlaying or self.isRecording):
         return
     elif self.isRecording and BigWorld.player(
     ).arena.guiType == constants.ARENA_GUI_TYPE.TUTORIAL:
         self.stop(None, True)
         return
     else:
         self.__replayCtrl.playerVehicleID = BigWorld.player(
         ).playerVehicleID
         self.__replayCtrl.onClientReady()
         if self.isPlaying:
             AreaDestructibles.g_destructiblesManager.onAfterReplayTimeWarp(
             )
             if isPlayerAvatar():
                 BigWorld.player(
                 ).onVehicleEnterWorld += self.__onVehicleEnterWorld
             from gui.app_loader import settings
             self.appLoader.attachCursor(
                 settings.APP_NAME_SPACE.SF_BATTLE,
                 flags=GUI_CTRL_MODE_FLAG.CURSOR_ATTACHED)
         if self.isRecording:
             player = BigWorld.player()
             arena = player.arena
             arenaName = arena.arenaType.geometry
             i = arenaName.find('/')
             if i != -1:
                 arenaName = arenaName[i + 1:]
             now = datetime.datetime.now()
             now = '%02d.%02d.%04d %02d:%02d:%02d' % (
                 now.day, now.month, now.year, now.hour, now.minute,
                 now.second)
             vehicleName = BigWorld.entities[
                 player.playerVehicleID].typeDescriptor.name
             vehicleName = vehicleName.replace(':', '-')
             vehicles = self.__getArenaVehiclesInfo()
             gameplayID = player.arenaTypeID >> 16
             clientVersionFromXml = getFullClientVersion()
             clientVersionFromExe = BigWorld.wg_getProductVersion()
             arenaInfo = {
                 'dateTime': now,
                 'playerName': player.name,
                 'playerID': self.__playerDatabaseID,
                 'playerVehicle': vehicleName,
                 'mapName': arenaName,
                 'mapDisplayName': arena.arenaType.name,
                 'gameplayID': ArenaType.getGameplayName(gameplayID)
                 or gameplayID,
                 'vehicles': vehicles,
                 'battleType': arena.bonusType,
                 'clientVersionFromExe': clientVersionFromExe,
                 'clientVersionFromXml': clientVersionFromXml,
                 'serverName': self.connectionMgr.serverUserName,
                 'regionCode': constants.AUTH_REALM,
                 'serverSettings': self.__serverSettings,
                 'hasMods': self.__replayCtrl.hasMods
             }
             if BigWorld.player(
             ).arena.guiType == constants.ARENA_GUI_TYPE.BOOTCAMP:
                 from bootcamp.Bootcamp import g_bootcamp
                 arenaInfo['lessonId'] = g_bootcamp.getLessonNum()
                 arenaInfo['bootcampCtx'] = g_bootcamp.serializeContext()
             self.__replayCtrl.recMapName = arenaName
             self.__replayCtrl.recPlayerVehicleName = vehicleName
             self.__replayCtrl.setArenaInfoStr(
                 json.dumps(_JSON_Encode(arenaInfo)))
         else:
             self.__showInfoMessages()
             if self.replayTimeout > 0:
                 LOG_DEBUG('replayTimeout set for %.2f' %
                           float(self.replayTimeout))
                 BigWorld.callback(float(self.replayTimeout), BigWorld.quit)
         return