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')