update
This commit is contained in:
parent
4c4ab09387
commit
e2c5d9ff3f
2 changed files with 116 additions and 60 deletions
|
@ -1,10 +1,9 @@
|
|||
import json
|
||||
import re
|
||||
import traceback
|
||||
|
||||
import aiohttp
|
||||
|
||||
from .be import main
|
||||
|
||||
|
||||
async def server(address):
|
||||
matchObj = re.match(r'(.*):(.*)', address, re.M | re.I)
|
||||
|
@ -21,7 +20,7 @@ async def server(address):
|
|||
port2 = '19132'
|
||||
|
||||
try:
|
||||
url = 'http://motd.wd-api.com/?ip=' + serip + '&port=' + port1 + '&mode=info'
|
||||
url = 'http://motd.wd-api.com/java?ip=' + serip + '&port=' + port1 + '&mode=info'
|
||||
async with aiohttp.ClientSession() as session:
|
||||
async with session.get(url, timeout=aiohttp.ClientTimeout(total=20)) as req:
|
||||
if req.status != 200:
|
||||
|
@ -31,43 +30,69 @@ async def server(address):
|
|||
file = json.loads(motd)
|
||||
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'])
|
||||
servers.append('[JE]')
|
||||
jejson = file['data']
|
||||
if 'description' in jejson:
|
||||
description = jejson['description']
|
||||
if 'text' in description:
|
||||
servers.append(description['text'])
|
||||
elif 'extra' in description:
|
||||
extra = description['extra']
|
||||
text = []
|
||||
qwq = ''
|
||||
for item in extra[:]:
|
||||
text.append(item['text'])
|
||||
servers.append(qwq.join(text))
|
||||
else:
|
||||
servers.append(description)
|
||||
|
||||
if 'players' in jejson:
|
||||
onlinesplayer = f"在线玩家:{str(jejson['players']['online'])} / {str(jejson['players']['max'])}"
|
||||
servers.append(onlinesplayer)
|
||||
if 'version' in jejson:
|
||||
versions = "游戏版本:" + file['data']['version']['name']
|
||||
servers.append(versions)
|
||||
servers.append(serip + ':' + port1)
|
||||
else:
|
||||
print('获取JE服务器信息失败。')
|
||||
except Exception:
|
||||
try:
|
||||
x = re.sub(r'§\w', "", 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时发生错误。")
|
||||
except Exception as e:
|
||||
print('获取JE服务器信息失败。' + str(e))
|
||||
traceback.print_exc()
|
||||
servers.append("[JE]\n发生错误:调用API时发生错误。")
|
||||
except Exception:
|
||||
print('获取JE服务器信息失败。')
|
||||
traceback.print_exc()
|
||||
try:
|
||||
BE = await main(serip, port2)
|
||||
BER = re.sub(r'§\w', "", BE)
|
||||
servers.append(BER)
|
||||
except Exception as e:
|
||||
print('获取BE服务器信息失败。' + str(e))
|
||||
beurl = 'http://motd.wd-api.com/bedrock?ip=' + serip + '&port=' + port2 + '&mode=info'
|
||||
async with aiohttp.ClientSession() as session:
|
||||
async with session.get(url, timeout=aiohttp.ClientTimeout(total=20)) as req:
|
||||
if req.status != 200:
|
||||
print(f"请求时发生错误:{req.status}")
|
||||
else:
|
||||
bemotd = await req.text()
|
||||
bejson = json.loads(bemotd)
|
||||
besplit = bejson['motd'].split(';')
|
||||
motd_1 = besplit[1]
|
||||
motd_2 = besplit[8]
|
||||
player_count = besplit[5]
|
||||
max_players = besplit[6]
|
||||
edition = besplit[0]
|
||||
version_name = besplit[4]
|
||||
game_mode = besplit[9]
|
||||
bemsg = '[BE]\n' +\
|
||||
motd_1 + ' - ' + motd_2 +\
|
||||
'\n在线玩家:' + player_count + '/' + max_players +\
|
||||
'\n游戏版本:' + edition + version_name +\
|
||||
'\n游戏模式:' + game_mode
|
||||
servers.append(bemsg)
|
||||
|
||||
except Exception:
|
||||
print('获取BE服务器信息失败。')
|
||||
traceback.print_exc()
|
||||
if str(servers) == '[]':
|
||||
return ('连接失败,没有检测到任何服务器。')
|
||||
else:
|
||||
awa = '\n'
|
||||
servers.append("[30秒后撤回本消息]")
|
||||
return (awa.join(servers))
|
||||
return re.sub(r'§\w', "", awa.join(servers))
|
||||
except Exception as e:
|
||||
return ("发生错误:" + str(e) + ".")
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
import json
|
||||
import re
|
||||
import traceback
|
||||
|
||||
import aiohttp
|
||||
|
||||
from .be import main
|
||||
|
||||
|
||||
async def serverraw(address):
|
||||
async def server(address):
|
||||
matchObj = re.match(r'(.*):(.*)', address, re.M | re.I)
|
||||
servers = []
|
||||
|
||||
|
@ -21,7 +20,7 @@ async def serverraw(address):
|
|||
port2 = '19132'
|
||||
|
||||
try:
|
||||
url = 'http://motd.wd-api.com/?ip=' + serip + '&port=' + port1 + '&mode=info'
|
||||
url = 'http://motd.wd-api.com/java?ip=' + serip + '&port=' + port1 + '&mode=info'
|
||||
async with aiohttp.ClientSession() as session:
|
||||
async with session.get(url, timeout=aiohttp.ClientTimeout(total=20)) as req:
|
||||
if req.status != 200:
|
||||
|
@ -31,37 +30,69 @@ async def serverraw(address):
|
|||
file = json.loads(motd)
|
||||
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:
|
||||
servers.append(
|
||||
'[JE]\n' + x + "\n" + "在线玩家:" + str(file['data']['players']['online']) + "/" + str(
|
||||
file['data']['players']['max']) + "\n" + "游戏版本:" + file['data']['version']['name'])
|
||||
servers.append('[JE]')
|
||||
jejson = file['data']
|
||||
if 'description' in jejson:
|
||||
description = jejson['description']
|
||||
if 'text' in description:
|
||||
servers.append(description['text'])
|
||||
elif 'extra' in description:
|
||||
extra = description['extra']
|
||||
text = []
|
||||
qwq = ''
|
||||
for item in extra[:]:
|
||||
text.append(item['text'])
|
||||
servers.append(qwq.join(text))
|
||||
else:
|
||||
servers.append(description)
|
||||
|
||||
if 'players' in jejson:
|
||||
onlinesplayer = f"在线玩家:{str(jejson['players']['online'])} / {str(jejson['players']['max'])}"
|
||||
servers.append(onlinesplayer)
|
||||
if 'version' in jejson:
|
||||
versions = "游戏版本:" + file['data']['version']['name']
|
||||
servers.append(versions)
|
||||
servers.append(serip + ':' + port1)
|
||||
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时发生错误。")
|
||||
except Exception as e:
|
||||
print('获取JE服务器信息失败。' + str(e))
|
||||
traceback.print_exc()
|
||||
servers.append("[JE]\n发生错误:调用API时发生错误。")
|
||||
except Exception:
|
||||
print('获取JE服务器信息失败。')
|
||||
traceback.print_exc()
|
||||
try:
|
||||
BE = await main(serip, port2)
|
||||
servers.append(BE)
|
||||
except Exception as e:
|
||||
print('获取BE服务器信息失败。' + str(e))
|
||||
beurl = 'http://motd.wd-api.com/bedrock?ip=' + serip + '&port=' + port2 + '&mode=info'
|
||||
async with aiohttp.ClientSession() as session:
|
||||
async with session.get(url, timeout=aiohttp.ClientTimeout(total=20)) as req:
|
||||
if req.status != 200:
|
||||
print(f"请求时发生错误:{req.status}")
|
||||
else:
|
||||
bemotd = await req.text()
|
||||
bejson = json.loads(bemotd)
|
||||
besplit = bejson['motd'].split(';')
|
||||
motd_1 = besplit[1]
|
||||
motd_2 = besplit[8]
|
||||
player_count = besplit[5]
|
||||
max_players = besplit[6]
|
||||
edition = besplit[0]
|
||||
version_name = besplit[4]
|
||||
game_mode = besplit[9]
|
||||
bemsg = '[BE]\n' +\
|
||||
motd_1 + ' - ' + motd_2 +\
|
||||
'\n在线玩家:' + player_count + '/' + max_players +\
|
||||
'\n游戏版本:' + edition + version_name +\
|
||||
'\n游戏模式:' + game_mode
|
||||
servers.append(bemsg)
|
||||
|
||||
except Exception:
|
||||
print('获取BE服务器信息失败。')
|
||||
traceback.print_exc()
|
||||
if str(servers) == '[]':
|
||||
return ('连接失败,没有检测到任何服务器。')
|
||||
else:
|
||||
awa = '\n'
|
||||
return (awa.join(servers))
|
||||
servers.append("[30秒后撤回本消息]")
|
||||
return awa.join(servers)
|
||||
except Exception as e:
|
||||
return ("发生错误:" + str(e) + ".")
|
||||
|
|
Reference in a new issue