From 9230b1b785f1160bac4c213bff0f6494a00f890d Mon Sep 17 00:00:00 2001 From: headshot2017 <> Date: Mon, 21 Feb 2022 12:49:06 -0400 Subject: [PATCH] replace old masterserver with new http MS --- mainmenu.py | 46 +++++++++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/mainmenu.py b/mainmenu.py index 7119c35..8f115b1 100644 --- a/mainmenu.py +++ b/mainmenu.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -import socket, thread, time, random, traceback +import socket, thread, time, random, traceback, requests, json from os.path import exists from PyQt4 import QtGui, QtCore @@ -194,18 +194,15 @@ class lobby(QtGui.QWidget): self.actual_serverlist = [] del servers[0] del servers[-1] - for svcontent in servers: - server = svcontent.split('&') - - name = server[0].decode('utf-8') - desc = server[1].decode('utf-8') - ip = server[2] - port = int(server[3]) - webAO_bucket = server[4] + for server in servers: + name = server["name"] + desc = server["description"] + ip = server["ip"] + port = server["port"] serveritem = QtGui.QListWidgetItem(name) if self.tab == 0: self.serverlist.addItem(serveritem) - self.actual_serverlist.append((ip, port, name, desc, webAO_bucket)) + self.actual_serverlist.append((ip, port, name, desc)) def moveToGame(self, stuff): tcp, charlist, musiclist, background, evidence, areas, features, joinooc, hplist, webAO_bucket = stuff @@ -319,11 +316,9 @@ class lobby(QtGui.QWidget): if self.tab == 0: self.serverinfo.setText(self.actual_serverlist[i][3]) self.aoserverinfo.setIP(text, *self.actual_serverlist[i][:2]) - self.aoserverinfo.webAO_bucket = self.actual_serverlist[i][-1] print '[debug]', 'ind: ' + str(i) + ', ip: ' + self.actual_serverlist[i][0] + ', port: ' + str(self.actual_serverlist[i][1]) elif self.tab == 1: self.aoserverinfo.setIP(text, *self.favoriteslist[i][:2]) - self.aoserverinfo.webAO_bucket = "" print '[debug]', 'ind: ' + str(i) + ', ip: ' + self.favoriteslist[i][0] + ', port: ' + str(self.favoriteslist[i][1]) self.aoserverinfo.stop() @@ -333,8 +328,9 @@ class lobby(QtGui.QWidget): self.gamewindow.showGame(tcp, charlist, musiclist, background, evidence, areas, features, oocjoin, hplist, webAO_bucket) def lobby_sendchat(self): - text = self.lobbychatinput.text().toUtf8() - self.masterserver.ms_tcp.send('CT#' +self.oocname+ '#' + text + '#%') + #text = self.lobbychatinput.text().toUtf8() + #self.masterserver.ms_tcp.send('CT#' +self.oocname+ '#' + text + '#%') + self.lobbychatlog.append("Lobby chat is not supported on the new HTTP-based masterserver.") self.lobbychatinput.clear() def setoocname(self): @@ -343,13 +339,13 @@ class lobby(QtGui.QWidget): def lobbychatlog_update(self): if self.lobbychatlog.verticalScrollBar().value() == self.lobbychatlog.verticalScrollBar().maximum(): self.lobbychatlog.verticalScrollBar().setValue(self.lobbychatlog.verticalScrollBar().maximum()) - def newOOCMessage(self, name, text): - self.lobbychatlog.append('%s: %s' % (name, text)) + def newOOCMessage(self, text): + self.lobbychatlog.append(text) class MasterServer(QtCore.QThread): gotServers = QtCore.pyqtSignal(list) - gotOOCMsg = QtCore.pyqtSignal(str, str) + gotOOCMsg = QtCore.pyqtSignal(str) msgbox_signal = QtCore.pyqtSignal(int, str, str) def __init__(self): @@ -357,7 +353,13 @@ class MasterServer(QtCore.QThread): def run(self): tempdata = "" - self.ms_tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + self.ms_http = requests.get("http://servers.aceattorneyonline.com/servers") + self.ms_motd = requests.get("http://servers.aceattorneyonline.com/motd") + + if self.ms_http.ok: self.gotServers.emit(json.loads(self.ms_http.content)) + if self.ms_motd.ok: self.gotOOCMsg.emit(self.ms_motd.content) + +""" try: self.ms_tcp.connect(('master.aceattorneyonline.com', 27016)) except: @@ -399,6 +401,7 @@ class MasterServer(QtCore.QThread): name = decode_ao_str(network[1].decode("utf-8")) chatmsg = decode_ao_str(network[2].decode("utf-8")) self.gotOOCMsg.emit(name, chatmsg) + """ class AOServerInfo(QtCore.QThread): moveToGameSignal = QtCore.pyqtSignal(list) @@ -502,11 +505,16 @@ class AOServerInfo(QtCore.QThread): maxplayers = int(network[2]) self.canConnect.emit() self.setOnlinePlayers.emit('%d/%d players online' % (players, maxplayers)) + self.tcp.send("ASS#%") # get webAO bucket got_stuff = True elif header == "decryptor": self.tcp.send("HI#AO2XP %s#%%" % hardware.get_hdid()) - + + elif header == "ASS": # ha ha ha... + self.webAO_bucket = network[1] + print self.webAO_bucket + elif header == "ID": self.tcp.send("ID#AO2XP#%s#%%" % GAME_VERSION[1:]) # need to send this to tsuserver3 servers in order to get feature list (FL)