diff --git a/server.py b/server.py index 9c43785..f87620d 100755 --- a/server.py +++ b/server.py @@ -4,34 +4,22 @@ server.py - Phenny Minetest Server Module Copyright 2012, Sfan5 """ -import web, math, random -from xml.dom import minidom +import web, json, random def read_server(): - bytes = web.get("http://servers.minetest.ru/") - shim = '' - shim2 = '
' - if shim in bytes and shim2 in bytes: - bytes = bytes.split(shim, 1).pop() - bytes = bytes.split(shim2, 1)[0] - bytes = "" + bytes + "
" # Root Tag needed - dom = minidom.parseString(bytes) - l = dom.getElementsByTagName("tr") - chosen = l[int(math.floor(random.random()*(len(l)-1))+1)] - datas = chosen.getElementsByTagName("td") - name = datas[0].firstChild.data # Server Name - addr = datas[1].firstChild.data # Server Address - status = datas[3].firstChild.data # Status (up/down) - statuspercent = datas[4].firstChild.firstChild.data # Status Percent - return format(name,addr,status,statuspercent) - return "Unknown Error" - + text = web.get("http://servers.minetest.net/list") + server_list = json.loads(text)["list"] + choice = random.randrange(0, len(server_list)) + + name = server_list[choice]["name"] + address = server_list[choice]["address"] + clients = server_list[choice]["clients"] + version = server_list[choice]["version"] + ping = server_list[choice]["ping"] + clients_top = server_list[choice]["clients_top"] + + return "%s | %s | Clients: %s/%s | Version: %s | ping: %s" % (name, address, clients, clients_top, version, ping) -def format(name,addr,status,statuspercent): - if status == "up": - return "%s | %s %s (%s)" % (name,addr,status,statuspercent) - else: - return "%s | %s %s" % (name,addr,status) def server(phenny, input): for x in phenny.bot.commands["high"].values(): if x[0].__name__ == "aa_hook":