NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

serverInfo.py (4833B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\lib\serverInfo.py
      2 import logmodule
      3 import utillib
      4 from eveprefs import prefs, boot
      5 
      6 def _GetServerIP(serverName):
      7     if boot.region == 'optic':
      8         if serverName == 'serenity':
      9             return '{}.evepc.163.com'.format(serverName)
     10         else:
     11             return 'servers-{}.evepc.163.com'.format(serverName)
     12     else:
     13         return '{}.servers.eveonline.com'.format(serverName)
     14 
     15 
     16 LIVE_SERVER = _GetServerIP('tranquility')
     17 TEST_SERVER1 = _GetServerIP('singularity')
     18 TEST_SERVER2 = _GetServerIP('multiplicity')
     19 TEST_SERVER3 = _GetServerIP('duality')
     20 WEB_EVE = 'http://client.eveonline.com'
     21 SERVERS = [('Tranquility', LIVE_SERVER),
     22  ('Test Server (Singularity)', TEST_SERVER1),
     23  ('Test Server (Multiplicity)', TEST_SERVER2),
     24  ('Test Server (Duality)', TEST_SERVER3),
     25  ('Singularity', TEST_SERVER1),
     26  ('Multiplicity', TEST_SERVER2),
     27  ('Duality', TEST_SERVER3)]
     28 if boot.region == 'optic':
     29     LIVE_SERVER = _GetServerIP('serenity')
     30     TEST_SERVER1 = _GetServerIP('hurricane')
     31     TEST_SERVER2 = _GetServerIP('storm')
     32     TEST_SERVER3 = None
     33     WEB_EVE = 'http://evepc.163.com'
     34     SERVERS = [(u'\u6668\u66e6', LIVE_SERVER), (u'\u98d3\u98ce', TEST_SERVER1), (u'\u66b4\u98ce', TEST_SERVER2)]
     35 
     36 def GetServerIP(checkServerName):
     37     for serverName, serverIP in SERVERS:
     38         if checkServerName.lower() == serverName.lower():
     39             return serverIP
     40 
     41     return checkServerName
     42 
     43 
     44 def GetServerName(checkServerIP):
     45     for serverName, serverIP in SERVERS:
     46         if serverIP.lower() == checkServerIP.lower():
     47             return serverName
     48 
     49     return checkServerIP
     50 
     51 
     52 def GetServerInfo():
     53     serverName = utillib.GetServerName()
     54     ip = GetServerIP(serverName)
     55     servers = [['Tranquility', _GetServerIP('tranquility'), _GetServerIP('tranquilityesp')],
     56      ['Multiplicity', _GetServerIP('multiplicity'), _GetServerIP('multiplicityesp')],
     57      ['Singularity', _GetServerIP('singularity'), _GetServerIP('singularityesp')],
     58      ['Duality', _GetServerIP('duality'), _GetServerIP('dualityesp')],
     59      ['Chaos', _GetServerIP('chaos'), _GetServerIP('chaosesp')],
     60      ['Buckingham', _GetServerIP('buckingham'), _GetServerIP('buckinghamesp')],
     61      ['Adam', 'Adam', 'Adam'],
     62      ['localhost', 'localhost', 'localhost']]
     63     foundServerInfo = False
     64     espUrl = ip
     65     for s in servers:
     66         if s[1] == ip:
     67             espUrl = s[2]
     68             serverName = s[0]
     69             foundServerInfo = True
     70             break
     71 
     72     if ':' not in espUrl:
     73         espUrl += ':50001'
     74     isLive = True
     75     if boot.region != 'optic' and not IsLiveServer(ip):
     76         isLive = False
     77     try:
     78         inf = None
     79         import __builtin__
     80         if hasattr(__builtin__, 'sm') and 'machoNet' in sm.services:
     81             inf = sm.GetService('machoNet').GetGlobalConfig().get('serverInfo')
     82             if inf:
     83                 lst = inf.split(',')
     84                 if len(lst) != 4:
     85                     logmodule.general.Log("Broken Server info in Global Config! It should contain 'serverName,ip,espIP:espPort,isLive'", logmodule.LGERR)
     86                 else:
     87                     l = lst[3]
     88                     if l.lower() == 'false':
     89                         l = 0
     90                     elif l.lower() == 'true':
     91                         l = 1
     92                     isLive = bool(int(l))
     93                     serverName = lst[0]
     94                     ip = lst[1]
     95                     foundServerInfo = True
     96                     espUrl = lst[2]
     97                     if ':' not in espUrl:
     98                         logmodule.general.Log("Broken Server info in Global Config! ESP URL missing port. Full config should be 'serverName,ip,espIP:espPort,isLive'. Defaulting to port 50001", logmodule.LGWARN)
     99                         espUrl += ':50001'
    100                     logmodule.general.Log('Returning Server info from Global Config. serverName = %s, IP = %s, espUrl = %s, live = %s' % (serverName,
    101                      ip,
    102                      espUrl,
    103                      isLive))
    104             elif not foundServerInfo:
    105                 logmodule.general.Log('The server you are connected to, %s, does not supply serverInfo. This can be configured in globalconfig: serverInfo=serverName,ip,espIP:espPort,isLive' % ip)
    106     except Exception as e:
    107         logmodule.general.Log('Could not get server info from server. Info: %s, Error: %s' % (inf, e), logmodule.LGERR)
    108 
    109     def safeGetEveAttr(attr):
    110         try:
    111             return getattr(eve, attr)
    112         except (NameError, AttributeError):
    113             return None
    114 
    115     serverInfo = utillib.KeyVal(name=serverName, IP=ip, espUrl=espUrl, isLive=isLive, version=safeGetEveAttr('serverVersion'), build=safeGetEveAttr('serverBuild'))
    116     return serverInfo
    117 
    118 
    119 def IsLiveServer(ip):
    120     return ip in (LIVE_SERVER, '87.237.38.200')