diff --git a/server/__init__.py b/server/__init__.py index cf2da67a..f08743f4 100644 --- a/server/__init__.py +++ b/server/__init__.py @@ -11,7 +11,7 @@ async def ser(str1): if str1.find(" -r") != -1: str1 = re.sub(' -r','',str1) str1 = re.match(r'^server (.*)',str1) - return (serverraw(str1.group(1))) + return (await serverraw(str1.group(1))) else: str1 = re.match(r'^server (.*)',str1) return (await server(str1.group(1))) \ No newline at end of file diff --git a/server/server.py b/server/server.py index 4638f5d5..351a4e34 100644 --- a/server/server.py +++ b/server/server.py @@ -1,7 +1,6 @@ import re import requests import json -import os, sys from .be import main async def server(address): matchObj = re.match(r'(.*):(.*).*', address, re.M|re.I) diff --git a/server/serverraw.py b/server/serverraw.py index 09acfcd6..12460bf6 100644 --- a/server/serverraw.py +++ b/server/serverraw.py @@ -1,49 +1,50 @@ import re import requests import json - -def serverraw(address): +from .be import main +async def server(address): matchObj = re.match(r'(.*):(.*).*', address, re.M|re.I) + servers = [] + try: if matchObj: - url = 'http://motd.wd-api.com/?ip='+matchObj.group(1)+'&port='+matchObj.group(2)+'&mode=info' - motd = requests.get(url,timeout=10) - file = json.loads(motd.text) - try: - if file['code'] == 200: - x = file['data']['description']['text'] - if not x: - extra = file['data']['description']['extra'] - return(str(extra)+"\n"+"在线玩家:"+str(file['data']['players']['online'])+"/"+str(file['data']['players']['max'])+"\n"+"游戏版本:"+file['data']['version']['name']) - else: - return(x+"\n"+"在线玩家:"+str(file['data']['players']['online'])+"/"+str(file['data']['players']['max'])+"\n"+"游戏版本:"+file['data']['version']['name']) - else: - return("连接服务器失败。") - except Exception: - try: - x = file['data']['description'] - return(x+"\n"+"在线玩家:"+str(file['data']['players']['online'])+"/"+str(file['data']['players']['max'])+"\n"+"游戏版本:"+file['data']['version']['name']) - except Exception: - return("发生错误:调用API时发生错误。") + serip = matchObj.group(1) + port1 = matchObj.group(2) + port2 = matchObj.group(2) else: - url = 'http://motd.wd-api.com/?ip='+address+'&port=25565&mode=info' - motd = requests.get(url,timeout=10) - file = json.loads(motd.text) - try: - if file['code'] == 200: - x = file['data']['description']['text'] - if not x: - extra = file['data']['description']['extra'] - return(str(extra)+"\n"+"在线玩家:"+str(file['data']['players']['online'])+"/"+str(file['data']['players']['max'])+"\n"+"游戏版本:"+file['data']['version']['name']) - else: - return(x+"\n"+"在线玩家:"+str(file['data']['players']['online'])+"/"+str(file['data']['players']['max'])+"\n"+"游戏版本:"+file['data']['version']['name']) + serip = address + port1 = '25565' + port2 = '19132' + + url = 'http://motd.wd-api.com/?ip='+serip+'&port='+port1+'&mode=info' + motd = requests.get(url,timeout=10) + file = json.loads(motd.text) + try: + if file['code'] == 200: + x = file['data']['description']['text'] + if not x: + extra = file['data']['description']['extra'] + servers.append('[JE]\n'+str(extra)+"\n"+"在线玩家:"+str(file['data']['players']['online'])+"/"+str(file['data']['players']['max'])+"\n"+"游戏版本:"+file['data']['version']['name']) else: - return("连接服务器失败。") - except Exception: - try: - x = file['data']['description'] - return(x+"\n"+"在线玩家:"+str(file['data']['players']['online'])+"/"+str(file['data']['players']['max'])+"\n"+"游戏版本:"+file['data']['version']['name']) - except Exception: - return("发生错误:调用API时发生错误。") - except Exception: - return("发生错误:未知原因。") \ No newline at end of file + servers.append('[JE]\n'+x+"\n"+"在线玩家:"+str(file['data']['players']['online'])+"/"+str(file['data']['players']['max'])+"\n"+"游戏版本:"+file['data']['version']['name']) + else: + print('获取JE服务器信息失败。') + except Exception: + try: + x=file['data']['description'] + servers.append('[JE]\n'+x+"\n"+"在线玩家:"+str(file['data']['players']['online'])+"/"+str(file['data']['players']['max'])+"\n"+"游戏版本:"+file['data']['version']['name']) + except Exception as e: + print('获取JE服务器信息失败。'+str(e)) + servers.append("[JE]\n发生错误:调用API时发生错误。") + try: + BE = await main(serip,port2) + servers.append(BE) + except Exception as e: + print('获取BE服务器信息失败。'+str(e)) + if str(servers)=='[]': + return('连接失败,没有检测到任何服务器。') + else: + awa = '\n' + return(awa.join(servers)) + except Exception as e: + return("发生错误:"+str(e)+".") \ No newline at end of file