From 217ff9d9f19c33971ab7db379e926196ca9e2f9e Mon Sep 17 00:00:00 2001 From: Mauricio Date: Sat, 13 Mar 2021 13:40:32 -0400 Subject: [PATCH] grab AO server's webAO bucket for downloads --- AO2XP.py | 4 ++-- gameview.py | 9 ++++++--- mainmenu.py | 36 +++++++++++++++++------------------- 3 files changed, 25 insertions(+), 24 deletions(-) diff --git a/AO2XP.py b/AO2XP.py index d7cbd39..172cd11 100644 --- a/AO2XP.py +++ b/AO2XP.py @@ -44,9 +44,9 @@ class gamewindow(QtGui.QMainWindow): frameGm.moveCenter(centerPoint) self.move(frameGm.topLeft()) - def showGame(self, tcp, charlist, musiclist, background, evidence, areas, features=[], oocjoin=[], hplist=[]): + def showGame(self, tcp, charlist, musiclist, background, evidence, areas, features=[], oocjoin=[], hplist=[], webAO_bucket=""): self.gamewidget.disconnectnow = False - self.gamewidget.startGame(tcp, charlist, musiclist, background, evidence, areas, features, oocjoin, hplist) + self.gamewidget.startGame(tcp, charlist, musiclist, background, evidence, areas, features, oocjoin, hplist, webAO_bucket) self.stackwidget.setCurrentWidget(self.gamewidget) def returnToMenu(self): diff --git a/gameview.py b/gameview.py index 5dba48e..61d6242 100644 --- a/gameview.py +++ b/gameview.py @@ -109,7 +109,9 @@ def get_text_color(textcolor): return QtGui.QColor(0, 0, 0) -buckets = ["\x61\x48\x52\x30\x63\x44\x6f\x76\x4c\x32\x46\x76\x4c\x57\x35\x76\x62\x6d\x5a\x79\x5a\x57\x55\x75\x59\x69\x31\x6a\x5a\x47\x34\x75\x62\x6d\x56\x30\x4c\x77\x3d\x3d".decode("\x62\x61\x73\x65\x36\x34")] # troll +buckets = ["", "\x61\x48\x52\x30\x63\x44\x6f\x76\x4c\x32\x46\x76\x4c\x57\x35\x76\x62\x6d\x5a\x79\x5a\x57\x55\x75\x59\x69\x31\x6a\x5a\x47\x34\x75\x62\x6d\x56\x30\x4c\x77\x3d\x3d".decode("\x62\x61\x73\x65\x36\x34")] # troll +# bucket 0 ("") is used for server's own bucket + def download_thread(link, savepath): global DOWNLOAD_BLACKLIST if link in DOWNLOAD_BLACKLIST: @@ -2355,7 +2357,7 @@ class gui(QtGui.QWidget): BASS_ChannelStop(self.music) BASS_StreamFree(self.music) - def startGame(self, tcp, charlist, musiclist, background, evidence, areas, features=[], oocjoin=[], hplist=[]): + def startGame(self, tcp, charlist, musiclist, background, evidence, areas, features=[], oocjoin=[], hplist=[], webAO_bucket=""): self.willDisconnect = False self.mychar = -1 self.mychatcolor = 0 @@ -2365,7 +2367,8 @@ class gui(QtGui.QWidget): self.evidence = evidence self.areas = areas self.features = features - + buckets[0] = webAO_bucket + self.charselect.setCharList(charlist) self.charselect.show() diff --git a/mainmenu.py b/mainmenu.py index b790f57..1fba60c 100644 --- a/mainmenu.py +++ b/mainmenu.py @@ -192,25 +192,20 @@ class lobby(QtGui.QWidget): del servers[-1] for svcontent in servers: server = svcontent.split('&') - del server[-1] + name = server[0].decode('utf-8') desc = server[1].decode('utf-8') - if len(server) <= 2: - ip = '0.0.0.0' - port = 0 - elif len(server) == 3: - ip = server[2] - port = 27017 - elif len(server) == 4: - ip = server[2] - port = int(server[3]) + ip = server[2] + port = int(server[3]) + webAO_bucket = server[4] + serveritem = QtGui.QListWidgetItem(name) if self.tab == 0: self.serverlist.addItem(serveritem) - self.actual_serverlist.append((ip, port, name, desc)) + self.actual_serverlist.append((ip, port, name, desc, webAO_bucket)) def moveToGame(self, stuff): - tcp, charlist, musiclist, background, evidence, areas, features, joinooc, hplist = stuff - self.move_to_game(tcp, charlist, musiclist, background, evidence, areas, features, joinooc, hplist) + tcp, charlist, musiclist, background, evidence, areas, features, joinooc, hplist, webAO_bucket = stuff + self.move_to_game(tcp, charlist, musiclist, background, evidence, areas, features, joinooc, hplist, webAO_bucket) def onSettingsClicked(self): self.gamewindow.showSettings() @@ -320,16 +315,18 @@ 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() self.aoserverinfo.start() - def move_to_game(self, tcp, charlist, musiclist, background, evidence, areas, features=[], oocjoin=[], hplist=[]): - self.gamewindow.showGame(tcp, charlist, musiclist, background, evidence, areas, features, oocjoin, hplist) + def move_to_game(self, tcp, charlist, musiclist, background, evidence, areas, features=[], oocjoin=[], hplist=[], webAO_bucket=""): + self.gamewindow.showGame(tcp, charlist, musiclist, background, evidence, areas, features, oocjoin, hplist, webAO_bucket) def lobby_sendchat(self): text = self.lobbychatinput.text().toUtf8() @@ -382,7 +379,7 @@ class MasterServer(QtCore.QThread): header = network[0] if header == "servercheok": - self.ms_tcp.send("HI#AO2XP %s#%%ID#AO2XP by Headshot#1.4.1#%%" % hardware.get_hdid()) + self.ms_tcp.send("HI#AO2XP %s#%%ID#AO2XP by Headshot#1.5#%%" % hardware.get_hdid()) self.ms_tcp.send("ALL#%") elif header == 'DOOM': @@ -395,8 +392,8 @@ class MasterServer(QtCore.QThread): self.gotServers.emit(network) elif header == 'CT': - name = network[1].decode("utf-8").replace('', '$').replace('', '%').replace('', '&').replace('', '#').replace('', '#') - chatmsg = network[2].decode("utf-8").replace('', '$').replace('', '%').replace('', '&').replace('', '#').replace('', '#') + 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): @@ -414,6 +411,7 @@ class AOServerInfo(QtCore.QThread): self.ip = "" self.port = 0 self.name = "jm" + self.webAO_bucket = "" self.disconnect = False def setIP(self, name, ip, port): @@ -463,7 +461,7 @@ class AOServerInfo(QtCore.QThread): if readytick == 0: readytick = -1 try: - self.moveToGameSignal.emit([self.tcp, charlist, musiclist, background, evidence, areas, features, joinooc, hplist]) + self.moveToGameSignal.emit([self.tcp, charlist, musiclist, background, evidence, areas, features, joinooc, hplist, self.webAO_bucket]) except Exception as err: self.msgbox_signal.emit(0, "Error caught while loading", traceback.format_exc(err)) self.returnToLobby.emit()