예제 #1
0
    def updateServerList(self):

        def _serverDottedHost(ip):
            return '%d.%d.%d.%d' % (ip >> 24 & 255,
             ip >> 16 & 255,
             ip >> 8 & 255,
             ip >> 0 & 255)

        def _serverNetName(details):
            name = _serverDottedHost(details.ip)
            if details.port:
                name += ':%d' % details.port
                return name

        def _serverNiceName(details):
            name = details.hostName
            if not name:
                name = _serverNetName(details)
            elif details.port:
                name += ':%d' % details.port
            if details.ownerName:
                name += ' (' + details.ownerName + ')'
            return name

        servers = [ (_serverNiceName(server), server.serverString) for server in BigWorld.serverDiscovery.servers ]
        baseServerList = g_preDefinedHosts.shortList()
        for friendlyName, hostName in servers:
            if not g_preDefinedHosts.predefined(hostName):
                baseServerList.append((hostName,
                 friendlyName,
                 HOST_AVAILABILITY.getDefault(),
                 None))

        self._setServerList(baseServerList)
        return
예제 #2
0
    def updateServerList(self):
        def _serverDottedHost(ip):
            return '%d.%d.%d.%d' % (ip >> 24 & 255, ip >> 16 & 255,
                                    ip >> 8 & 255, ip >> 0 & 255)

        def _serverNetName(details):
            name = _serverDottedHost(details.ip)
            if details.port:
                name += ':%d' % details.port
                return name

        def _serverNiceName(details):
            name = details.hostName
            if not name:
                name = _serverNetName(details)
            elif details.port:
                name += ':%d' % details.port
            if details.ownerName:
                name += ' (' + details.ownerName + ')'
            return name

        servers = [(_serverNiceName(server), server.serverString)
                   for server in BigWorld.serverDiscovery.servers]
        baseServerList = g_preDefinedHosts.shortList()
        for friendlyName, hostName in servers:
            if not g_preDefinedHosts.predefined(hostName):
                baseServerList.append(
                    (hostName, friendlyName,
                     g_preDefinedHosts.getDefaultCSISStatus(), None))

        self._setServerList(baseServerList)
        return
예제 #3
0
 def __init__(self):
     if not self.__clusters:
         for cluster in g_preDefinedHosts.shortList():
             self.__clusters.append({
                 'label': cluster[1],
                 'data': cluster[1]
             })
     AbstractWindowView.__init__(self)
예제 #4
0
    def __serversFind(self, servers=None):
        list = g_preDefinedHosts.shortList()
        if servers is not None:
            for name, key in servers:
                if not g_preDefinedHosts.predefined(key):
                    list.append((key, name))

        self.onSetOptions(list, self.__loginDataLoader.host)
        return
예제 #5
0
    def __getFullServersList(self):
        serversList = g_preDefinedHosts.shortList()
        servers = self.__foundedServers
        if servers is not None:
            for name, key in servers:
                if not g_preDefinedHosts.predefined(key):
                    serversList.append((key, name, HOST_AVAILABILITY.getDefault(), None))

        return serversList
예제 #6
0
    def __serversFind(self, servers=None):
        list = g_preDefinedHosts.shortList()
        if servers is not None:
            for name, key in servers:
                if not g_preDefinedHosts.predefined(key):
                    list.append((key, name))

        self.onSetOptions(list, self.__loginDataLoader.host)
        return
    def callFromFlash(self, data):
        class Mobj:
            def __init__(self):
                pass

        BigWorld.wh_current = Mobj()
        BigWorld.wh_current.mode = 'add'
        if data.action == 'addAcc':
            loadWindow('AccountsManagerSubwindow')
            self.destroy()
            return

        elif data.action == 'edit':
            for account in BigWorld.wh_data.accounts:
                if str(account['id']) == str(data.id):
                    BigWorld.wh_current.accId = account['id']
                    BigWorld.wh_current.mode = 'edit'
                    BigWorld.wh_current.title = account['title']
                    BigWorld.wh_current.email = BigWorld.wg_ucpdata(account['email'])
                    BigWorld.wh_current.password = BigWorld.wg_ucpdata(account['password'])
                    BigWorld.wh_current.cluster = account['cluster']
                    loadWindow('AccountsManagerSubwindow')
                    self.destroy()
                    return

        elif data.action == 'delete':
            _buttons = RemoveConfirmDialogButtons()
            meta = SimpleDialogMeta(message='Подтвердите удаление аккаунта.', title='Удаление аккаунта.', buttons=_buttons)
            DialogsInterface.showDialog(meta, lambda result: onClickAction(result))
            def onClickAction(result):
                if result:
                    for q in xrange(len(BigWorld.wh_data.accounts)):
                        if str(BigWorld.wh_data.accounts[q]['id']) == str(data.id):
                            BigWorld.wh_data.accounts.pop(q)
                            BigWorld.wh_data.write_accounts()
                            BigWorld.wh_data.renew_accounts()
                            self.destroy()
                            loadWindow('AccountsManager')
                            return

        elif data.action == 'submit':
            for account in BigWorld.wh_data.accounts:
                if str(account['id']) == str(data.id):
                    params = {
                        'login'      : BigWorld.wg_ucpdata(account['email']),
                        'auth_method': CONNECTION_METHOD.BASIC,
                        'session'    : '0'
                    }
                    password = BigWorld.wg_ucpdata(account['password'])
                    clusters = g_preDefinedHosts.shortList()
                    account['cluster'] = int(account['cluster'])
                    if len(clusters)-1<account['cluster']:
                        account['cluster'] = 0
                    serverName = clusters[account['cluster']][0]
                    connectionManager.initiateConnection(params, password, serverName)
                    return
예제 #8
0
    def __getFullServersList(self):
        serversList = g_preDefinedHosts.shortList()
        servers = self.__foundedServers
        if servers is not None:
            for name, key in servers:
                if not g_preDefinedHosts.predefined(key):
                    serversList.append(
                        (key, name, HOST_AVAILABILITY.getDefault(), None))

        return serversList
    def callFromFlash(self, data):
        class Mobj:
            def __init__(self):
                pass

        BigWorld.wh_current = Mobj()
        BigWorld.wh_current.mode = 'add'
        BigWorld.wh_current.submitLabel = 'Добавить'
        BigWorld.wh_current.cancelLabel = 'Отменить'
        if data.action == 'addAcc':
            loadWindow('AccountsManagerSubwindow')
            return
        if data.action == 'edit' and BigWorld.isKeyDown(Keys.KEY_LCONTROL):
            for q in BigWorld.wh_data.accounts:
                account = q
                if account['id'] == data.id:
                    BigWorld.wh_current.accId = account['id']
                    BigWorld.wh_current.mode = 'edit'
                    BigWorld.wh_current.submitLabel = 'Сохранить'
                    BigWorld.wh_current.cancelLabel = 'Удалить'
                    BigWorld.wh_current.title = account['title']
                    BigWorld.wh_current.email = account['email']
                    BigWorld.wh_current.password = BigWorld.wg_ucpdata(account['password'])
                    BigWorld.wh_current.cluster = account['cluster']
                    loadWindow('AccountsManagerSubwindow')
                    return
        if data.action == 'edit' and BigWorld.isKeyDown(Keys.KEY_LALT):
            for q in xrange(len(BigWorld.wh_data.accounts)):
                if BigWorld.wh_data.accounts[q]['id'] == data.id:
                    BigWorld.wh_data.accounts.pop(q)
                    BigWorld.wh_data.write_accounts()
                    BigWorld.wh_data.renew_accounts()
                    self.destroy()
                    loadWindow('AccountsManager')
                    return

        if data.action == 'login' or data.action == 'edit':
            for q in BigWorld.wh_data.accounts:
                account = q
                if account['id'] == data.id:
                    params = {
                        'login'      : account['email'],
                        'auth_method': CONNECTION_METHOD.BASIC,
                        'session'    : '0'
                    }
                    password = BigWorld.wg_ucpdata(account['password'])
                    serverName = g_preDefinedHosts.shortList()[int(account['cluster']) + 1][0]
                    connectionManager.initiateConnection(params, password, serverName)
                    return
예제 #10
0
 def _populate(self):
     AbstractWindowView._populate(self)
     zdata = []
     clusters = g_preDefinedHosts.shortList()
     for account in BigWorld.wh_data.accounts:
         account['cluster'] = int(account['cluster'])
         if len(clusters) - 1 < account['cluster']:
             account['cluster'] = 0
         cluster_name = clusters[account['cluster']][1].split().pop()
         zdata.append({
             'id': account['id'],
             'user': account['title'],
             'cluster': cluster_name
         })
     self.callToFlash(zdata)
예제 #11
0
 def _populate(self):
     super(LoginDispatcher, self)._populate()
     self.__loginDataLoader = LoginDataLoader()
     self.__loginDataLoader.onConfigLoaded += self.onConfigLoaded
     self.__loginDataLoader.loadUserConfig()
     connectionManager.connectionStatusCallbacks += self.__handleConnectionStatus
     connectionManager.searchServersCallbacks += self.__serversFind
     connectionManager.onConnected += self.__onConnected
     connectionManager.onDisconnected -= LoginDispatcher.__onDisconnected
     connectionManager.startSearchServers()
     g_preDefinedHosts.readScriptConfig(Settings.g_instance.scriptConfig)
     g_playerEvents.onLoginQueueNumberReceived += self.handleQueue
     g_playerEvents.onAccountBecomePlayer += self.__pe_onAccountBecomePlayer
     g_playerEvents.onKickWhileLoginReceived += self.handleKickWhileLogin
     self.onSetOptions(g_preDefinedHosts.shortList(), self.__loginDataLoader.host)
 def _populate(self):
     AbstractWindowView._populate(self)
     zdata = []
     clusters = g_preDefinedHosts.shortList()
     for account in BigWorld.wh_data.accounts:
         account['cluster'] = int(account['cluster'])
         if len(clusters)-1<account['cluster']:
             account['cluster'] = 0
         cluster_name = clusters[account['cluster']][1].split().pop()
         zdata.append({
             'id'      : account['id'],
             'user'    : account['title'],
             'cluster' : cluster_name
         })
     self.callToFlash(zdata)
예제 #13
0
 def _populate(self):
     super(LoginDispatcher, self)._populate()
     self.__loginDataLoader = LoginDataLoader()
     self.__loginDataLoader.onConfigLoaded += self.onConfigLoaded
     self.__loginDataLoader.loadUserConfig()
     connectionManager.connectionStatusCallbacks += self.__handleConnectionStatus
     connectionManager.searchServersCallbacks += self.__serversFind
     connectionManager.onConnected += self.__onConnected
     connectionManager.onDisconnected -= LoginDispatcher.__onDisconnected
     connectionManager.startSearchServers()
     g_preDefinedHosts.readScriptConfig(Settings.g_instance.scriptConfig)
     g_playerEvents.onLoginQueueNumberReceived += self.handleQueue
     g_playerEvents.onAccountBecomePlayer += self.__pe_onAccountBecomePlayer
     g_playerEvents.onKickWhileLoginReceived += self.handleKickWhileLogin
     self.onSetOptions(g_preDefinedHosts.shortList(),
                       self.__loginDataLoader.host)
예제 #14
0
 def updateServerList(self):
     self._setServerList(g_preDefinedHosts.shortList())
예제 #15
0
 def updateServerList(self):
     self._setServerList(g_preDefinedHosts.shortList())
 def __init__(self):
     for cluster in g_preDefinedHosts.shortList():
         self.__clusters.append({'label':cluster[1],'data':cluster[1]})
     AbstractWindowView.__init__(self)