Archived
1
0
Fork 0
This repository has been archived on 2024-04-26. You can view files and clone it, but cannot push or open issues or pull requests.
akari-bot/server/server.py

58 lines
2.6 KiB
Python
Raw Normal View History

2020-06-13 12:43:43 +00:00
import re
import requests
import json
2020-07-18 12:58:39 +00:00
from .be import main
async def server(address):
2020-06-13 12:43:43 +00:00
matchObj = re.match(r'(.*):(.*).*', address, re.M|re.I)
2020-07-18 12:58:39 +00:00
servers = []
2020-06-13 12:43:43 +00:00
try:
if matchObj:
2020-07-18 12:58:39 +00:00
serip = matchObj.group(1)
port1 = matchObj.group(2)
port2 = matchObj.group(2)
2020-06-13 12:43:43 +00:00
else:
2020-07-18 12:58:39 +00:00
serip = address
port1 = '25565'
port2 = '19132'
2020-07-19 02:24:39 +00:00
2020-07-18 12:58:39 +00:00
try:
2020-07-19 02:24:39 +00:00
url = 'http://motd.wd-api.com/?ip='+serip+'&port='+port1+'&mode=info'
2020-07-19 02:29:41 +00:00
motd = requests.get(url,timeout=5)
2020-07-19 02:24:39 +00:00
file = json.loads(motd.text)
try:
if file['code'] == 200:
x=re.sub(r'§\w',"",file['data']['description']['text'])
if not x:
extra = file['data']['description']['extra']
text = []
qwq = ''
for item in extra[:]:
text.append(item['text'])
servers.append('[JE]\n'+qwq.join(text)+"\n"+"在线玩家:"+str(file['data']['players']['online'])+"/"+str(file['data']['players']['max'])+"\n"+"游戏版本:"+file['data']['version']['name'])
else:
servers.append('[JE]\n'+x+"\n"+"在线玩家:"+str(file['data']['players']['online'])+"/"+str(file['data']['players']['max'])+"\n"+"游戏版本:"+file['data']['version']['name'])
2020-06-13 12:43:43 +00:00
else:
2020-07-19 02:24:39 +00:00
print('获取JE服务器信息失败。')
except Exception:
try:
x=re.sub(r'§\w',"",file['data']['description'])
2020-07-18 12:58:39 +00:00
servers.append('[JE]\n'+x+"\n"+"在线玩家:"+str(file['data']['players']['online'])+"/"+str(file['data']['players']['max'])+"\n"+"游戏版本:"+file['data']['version']['name'])
2020-07-19 02:24:39 +00:00
except Exception as e:
print('获取JE服务器信息失败。'+str(e))
servers.append("[JE]\n发生错误调用API时发生错误。")
except Exception as e:
print('获取JE服务器信息失败。'+str(e))
2020-07-18 12:58:39 +00:00
try:
2020-07-18 13:14:43 +00:00
BE = await main(serip,port2)
BER = re.sub(r'§\w',"",BE)
servers.append(BER)
except Exception as e:
print('获取BE服务器信息失败。'+str(e))
2020-07-18 12:58:39 +00:00
if str(servers)=='[]':
return('连接失败,没有检测到任何服务器。')
else:
awa = '\n'
return(awa.join(servers))
2020-06-13 12:43:43 +00:00
except Exception as e:
return("发生错误:"+str(e)+".")