replace old masterserver with new http MS

This commit is contained in:
headshot2017 2022-02-21 12:49:06 -04:00
parent 53aa9064e0
commit 9230b1b785

View File

@ -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)