def get_cookies(url): starting_up = QApplication.startingUp() if starting_up: global APP APP = QApplication([]) icon_path = str(Path(__file__, '../jd.png').resolve()) APP.setWindowIcon(QIcon(icon_path)) the_browser = MobileBrowser() the_browser.load_and_show(QUrl(url)) if starting_up: # On Unix/Linux Qt is configured to use the system locale settings by default. This can cause a conflict when using POSIX functions. # http://doc.qt.io/qt-5/qcoreapplication.html#locale-settings # 重设 locale, 否则某些依赖 locale 的代码可能产生错误, 如 Requests 中解析 cookie 时间的代码. locale.setlocale(locale.LC_TIME, 'C') APP.exec() return the_browser.cookies
def fedit(data, title="", comment="", icon=None, parent=None, apply=None): """ Create form dialog and return result (if Cancel button is pressed, return None) data: datalist, datagroup title: string comment: string icon: QIcon instance parent: parent QWidget apply: apply callback (function) datalist: list/tuple of (field_name, field_value) datagroup: list/tuple of (datalist *or* datagroup, title, comment) -> one field for each member of a datalist -> one tab for each member of a top-level datagroup -> one page (of a multipage widget, each page can be selected with a combo box) for each member of a datagroup inside a datagroup Supported types for field_value: - int, float, str, unicode, bool - colors: in Qt-compatible text form, i.e. in hex format or name (red,...) (automatically detected from a string) - list/tuple: * the first element will be the selected index (or value) * the other elements can be couples (key, value) or only values """ # Create a QApplication instance if no instance currently exists # (e.g. if the module is used directly from the interpreter) if QApplication.startingUp(): _app = QApplication([]) dialog = FormDialog(data, title, comment, icon, parent, apply) if dialog.exec_(): return dialog.get()
self.viewer.SetResliceModeToAxisAligned() self.interactor = interactor def SetResliceCursor(self, cursor): self.viewer.SetResliceCursor(cursor) def GetResliceCursor(self): return self.viewer.GetResliceCursor() def start(self): self.interactor.Initialize() self.interactor.Start() if __name__ == '__main__': if QApplication.startingUp(): app = QApplication(sys.argv) else: app = QCoreApplication.instance() app.setApplicationName("FourPaneViewer") app.setOrganizationName("KitWare") app.setOrganizationDomain("www.kitware.com") main_window = FourPaneViewer() main_window.show() main_window.initialize() #main_window.loadFile('c:/github/fis/data/Abdomen/CT-Abdomen.mhd') sys.exit(app.exec_()) # Local variables: # # tab-width: 2 # # python-indent: 2 #
elif msg["update"] == "passing_building": # print("I am here passing_building") # print(msg) if msg["player"] == 1: player = self.player1 else: player = self.player2 x = msg["x"] y = msg["y"] self.pass_building_update(player, x, y, msg) self.step.setEnabled(True) def end(self): # d = {"action": "gaming", "update": "stop"} # mysend(self.s, json.dumps(d)) self.close() self.hide() if __name__ == '__main__': app = QApplication(sys.argv) myWin = MyWindow(None) app.startingUp() myWin.show() while True: app.processEvents() if myWin.isHidden(): app.exit() break
class ClientSM: def __init__(self, s): self.state = S_OFFLINE self.peer = '' self.me = '' self.out_msg = '' self.s = s self.app = QApplication(sys.argv) self.myWind = MyWindow(s) def set_state(self, state): self.state = state def get_state(self): return self.state def set_myname(self, name): self.me = name def get_myname(self): return self.me def connect_to(self, peer): msg = json.dumps({"action": "connect", "target": peer}) mysend(self.s, msg) response = json.loads(myrecv(self.s)) if response["status"] == "success": self.peer = peer self.out_msg += 'You are connected with ' + self.peer + '\n' return (True) elif response["status"] == "busy": self.out_msg += 'User is busy. Please try again later\n' elif response["status"] == "self": self.out_msg += 'Cannot talk to yourself (sick)\n' else: self.out_msg += 'User is not online, try again later\n' return (False) def disconnect(self): msg = json.dumps({"action": "disconnect"}) mysend(self.s, msg) self.out_msg += 'You are disconnected from ' + self.peer + '\n' self.peer = '' def proc(self, my_msg, peer_msg): self.out_msg = '' #============================================================================== # Once logged in, do a few things: get peer listing, connect, search # And, of course, if you are so bored, just go # This is event handling instate "S_LOGGEDIN" #============================================================================== if self.state == S_LOGGEDIN: if len(my_msg) > 0: if my_msg == 'q': self.out_msg += 'See you next time!\n' self.state = S_OFFLINE elif my_msg == 'time': mysend(self.s, json.dumps({"action": "time"})) time_in = json.loads(myrecv(self.s))["results"] self.out_msg += "Time is: " + time_in elif my_msg == 'who': mysend(self.s, json.dumps({"action": "list"})) logged_in = json.loads(myrecv(self.s))["results"] self.out_msg += 'Here are all the users in the system:\n' self.out_msg += logged_in elif my_msg[0] == 'c': peer = my_msg[1:] peer = peer.strip() if self.connect_to(peer) == True: self.state = S_CHATTING self.out_msg += 'Connect to ' + peer + '. Chat away!\n\n' self.out_msg += '-----------------------------------\n' else: self.out_msg += 'Connection unsuccessful\n' elif my_msg[0] == '?': term = my_msg[1:].strip() mysend(self.s, json.dumps({ "action": "search", "target": term })) search_rslt = json.loads(myrecv( self.s))["results"][0:].strip() if (len(search_rslt)) > 0: self.out_msg += search_rslt + '\n\n' else: self.out_msg += '\'' + term + '\'' + ' not found\n\n' elif my_msg[0] == 'p': poem_idx = my_msg[1:].strip() mysend(self.s, json.dumps({ "action": "poem", "target": poem_idx })) poem = json.loads(myrecv(self.s))["results"][0:].strip() if (len(poem) > 0): self.out_msg += poem + '\n\n' else: self.out_msg += 'Sonnet ' + poem_idx + ' not found\n\n' else: self.out_msg += menu if len(peer_msg) > 0: peer_msg = json.loads(peer_msg) if peer_msg["action"] == "connect": name = peer_msg["from"] self.out_msg += "Hello, {0}".format(name) self.state = S_CHATTING #============================================================================== # Start chatting, 'bye' for quit # This is event handling instate "S_CHATTING" #============================================================================== elif self.state == S_CHATTING: try: self.myWind.destroy() except: pass if len(my_msg) > 0: # my stuff going out if my_msg == "game": mysend(self.s, json.dumps({ "action": "to_game", "from": self.me })) self.state = S_GAMING self.app.startingUp() self.myWind = MyWindow(self.s) self.myWind.setObjectName(self.me) self.myWind.show() self.myWind.setName1(self.me) self.myWind.setName2(self.peer) else: mysend( self.s, json.dumps({ "action": "exchange", "from": "[" + self.me + "]", "message": my_msg })) if my_msg == 'bye': self.disconnect() self.state = S_LOGGEDIN self.peer = '' if len(peer_msg) > 0: # peer's stuff, coming in peer_msg = json.loads(peer_msg) if peer_msg["action"] == "exchange": print("coming message from {0}: {1}".format( peer_msg["from"], peer_msg["message"])) elif peer_msg["action"] == "disconnect": self.state = S_LOGGEDIN elif peer_msg["action"] == "connect": name = peer_msg["from"] self.peer = name self.out_msg += "Hello, {0}".format(name) elif peer_msg["action"] == "to_game": self.state = S_GAMING self.app.startingUp() self.myWind = MyWindow(self.s) self.myWind.setObjectName(self.me) self.myWind.show() self.myWind.setName1(peer_msg["from"]) self.myWind.setName2(self.me) # Display the menu again if self.state == S_LOGGEDIN: self.out_msg += menu elif self.state == S_GAMING: if len(peer_msg) > 0: peer_msg = json.loads(peer_msg) if peer_msg["action"] == "gaming": self.myWind.update_board(peer_msg) self.app.processEvents() # self.app.processEvents() if self.myWind.isHidden(): self.app.processEvents() self.out_msg += "Back to normal chat." d = {"action": "gaming", "update": "stop"} self.app.exit() mysend(self.s, json.dumps(d)) self.state = S_CHATTING #============================================================================== # invalid state #============================================================================== else: self.out_msg += 'How did you wind up here??\n' print_state(self.state) return self.out_msg
class ClientSM: def __init__(self, s): self.state = S_OFFLINE self.peer = '' self.me = '' self.out_msg = '' self.s = s self.app = QApplication(sys.argv) self.hupu_server = None self.hupu_client = None self.stats_h = { 'number': [ 'ponits', 'assists', 'rebounds', 'attempts', 'made', '3-attempt', '3-made', 'ft', 'ft-made', 'fouls' ] } self.stats_g = { 'number': [ 'ponits', 'assists', 'rebounds', 'attempts', 'made', '3-attempt', '3-made', 'ft', 'ft-made', 'fouls' ] } def stat(self, msg): try: lis = msg.split(',') if lis[0] == 'h': try: a = self.stats_h[lis[1]] except: self.stats_h[lis[1]] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] for i in lis[2:]: if i == 'p2': self.stats_h[lis[1]][0] += 2 elif i == 'p1': self.stats_h[lis[1]][0] += 1 elif i == 'p3': self.stats_h[lis[1]][0] += 3 elif i == 'a': self.stats_h[lis[1]][1] += 1 elif i == 'r': self.stats_h[lis[1]][2] += 1 elif i == 'at': self.stats_h[lis[1]][3] += 1 elif i == '3at': self.stats_h[lis[1]][3] += 1 self.stats_h[lis[1]][5] += 1 elif i == 'fa': self.stats_h[lis[1]][7] += 1 elif i == 'm': self.stats_h[lis[1]][4] += 1 elif i == '3m': self.stats_h[lis[1]][6] += 1 elif i == 'fm': self.stats_h[lis[1]][8] += 1 elif i == 'f': self.stats_h[lis[1]][9] += 1 elif lis[0] == 'g': try: a = self.stats_g[lis[1]] except: self.stats_g[lis[1]] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] for i in lis[2:]: if i == 'p2': self.stats_g[lis[1]][0] += 2 elif i == 'p1': self.stats_h[lis[1]][0] += 1 elif i == 'p3': self.stats_g[lis[1]][0] += 3 elif i == 'a': self.stats_g[lis[1]][1] += 1 elif i == 'r': self.stats_g[lis[1]][2] += 1 elif i == 'at': self.stats_g[lis[1]][3] += 1 elif i == '3at': self.stats_g[lis[1]][3] += 1 self.stats_g[lis[1]][5] += 1 elif i == 'fa': self.stats_g[lis[1]][7] += 1 elif i == 'm': self.stats_g[lis[1]][4] += 1 elif i == '3m': self.stats_g[lis[1]][6] += 1 elif i == 'fm': self.stats_g[lis[1]][8] += 1 elif i == 'f': self.stats_g[lis[1]][9] += 1 else: return False return True except: return False def set_state(self, state): self.state = state def get_state(self): return self.state def set_myname(self, name): self.me = name def get_myname(self): return self.me def connect_to(self, peer): msg = json.dumps({"action": "connect", "target": peer}) mysend(self.s, msg) response = json.loads(myrecv(self.s)) if response["status"] == "success": self.peer = peer self.out_msg += 'You are connected with ' + self.peer + '\n' return (True) elif response["status"] == "busy": self.out_msg += 'User is busy. Please try again later\n' elif response["status"] == "self": self.out_msg += 'Cannot talk to yourself (sick)\n' else: self.out_msg += 'User is not online, try again later\n' return (False) def disconnect(self): msg = json.dumps({"action": "disconnect"}) mysend(self.s, msg) self.out_msg += 'You are disconnected from ' + self.peer + '\n' self.peer = '' def proc(self, my_msg, peer_msg): self.out_msg = '' #============================================================================== # Once logged in, do a few things: get peer listing, connect, search # And, of course, if you are so bored, just go # This is event handling instate "S_LOGGEDIN" #============================================================================== if self.state == S_LOGGEDIN: # todo: can't deal with multiple lines yet if len(my_msg) > 0: if my_msg == 'q': self.out_msg += 'See you next time!\n' self.state = S_OFFLINE elif my_msg == 'time': mysend(self.s, json.dumps({"action": "time"})) time_in = json.loads(myrecv(self.s))["results"] self.out_msg += "Time is: " + time_in elif my_msg == 'who': mysend(self.s, json.dumps({"action": "list"})) logged_in = json.loads(myrecv(self.s))["results"] self.out_msg += 'Here are all the users in the system:\n' self.out_msg += logged_in elif my_msg[0] == 'c': peer = my_msg[1:] peer = peer.strip() self.peer = peer if self.connect_to(peer) == True: self.state = S_CHATTING self.out_msg += 'Connect to ' + peer + '. Chat away!\n\n' self.out_msg += '-----------------------------------\n' else: self.out_msg += 'Connection unsuccessful\n' elif my_msg[0] == '?': term = my_msg[1:].strip() mysend(self.s, json.dumps({ "action": "search", "target": term })) search_rslt = json.loads(myrecv( self.s))["results"][0:].strip() if (len(search_rslt)) > 0: self.out_msg += search_rslt + '\n\n' else: self.out_msg += '\'' + term + '\'' + ' not found\n\n' elif my_msg[0] == 'p': poem_idx = my_msg[1:].strip() mysend(self.s, json.dumps({ "action": "poem", "target": poem_idx })) poem = json.loads(myrecv(self.s))["results"][0:].strip() if (len(poem) > 0): self.out_msg += poem + '\n\n' else: self.out_msg += 'Sonnet ' + poem_idx + ' not found\n\n' else: self.out_msg += menu if len(peer_msg) > 0: peer_msg = json.loads(peer_msg) if peer_msg["action"] == "connect": name = peer_msg["from"] self.peer = name self.out_msg += "Hello, {0}".format(name) self.state = S_CHATTING #============================================================================== # Start chatting, 'bye' for quit # This is event handling instate "S_CHATTING" #============================================================================== elif self.state == S_CHATTING: if len(my_msg) > 0: # my stuff going out if my_msg == "broadcasting": self.app.startingUp() self.hupu_server = HupuSever(self.s) self.state = S_POSTER self.hupu_server.show() elif my_msg == "Official": self.state = S_STATS print('welcome stat official') else: mysend( self.s, json.dumps({ "action": "exchange", "from": "[" + self.me + "]", "message": my_msg })) if my_msg == 'bye': self.disconnect() self.state = S_LOGGEDIN self.peer = '' if len(peer_msg) > 0: # peer's stuff, coming in peer_msg = json.loads(peer_msg) if peer_msg["action"] == "exchange": print("coming message from {0}: {1}".format( peer_msg["from"], peer_msg["message"])) elif peer_msg["action"] == "disconnect": self.state = S_LOGGEDIN elif peer_msg["action"] == "connect": name = peer_msg["from"] self.out_msg += "Hello, {0}".format(name) elif peer_msg['action'] == 'stats': stats = peer_msg['message'] elif peer_msg[ "action"] == "broadcasting" and self.state != S_STATS and peer_msg[ "update"] == "start": self.state = S_LISTNER self.hupu_client = HupuClient(None) self.app.startingUp() self.hupu_client.show() self.hupu_client.update_board(peer_msg) self.app.processEvents() # Display the menu again if self.state == S_LOGGEDIN: self.out_msg += menu elif self.state == S_POSTER: self.app.processEvents() my_msg = self.hupu_server.de if self.hupu_server.isHidden(): d = {"action": "broadcasting", "update": "end"} mysend(self.s, json.dumps(d)) self.state = S_CHATTING print("Back to normal chatting state.") if my_msg == 'show': self.hupu_server.textBrowser.append( str(self.stats_g) + str(self.stats_h)) self.hupu_server.repaint() if len(peer_msg) > 0: peer_msg = json.loads(peer_msg) if peer_msg['action'] == 'stats': self.stat(peer_msg['message']) elif self.state == S_STATS: if len(my_msg) > 0: print( """input format: h/g(home/guest),num(number),p1/p2/p3(1point/2points/3points),a(assist),r(rebound),\ at/3at/fa(attempt/three att/freethrow),m/3m/fm(made/three made/freethrow),f(foul)\ """) if self.stat(my_msg): mysend( self.s, json.dumps({ "action": "stats", "from": "[" + self.me + "]", "message": my_msg })) print('success') else: print('wrong format') if my_msg == 'bye': self.disconnect() self.state = S_LOGGEDIN self.peer = '' elif my_msg == 'show': print(self.stats_h) print(self.stats_g) elif self.state == S_LISTNER: if len(peer_msg) > 0: peer_msg = json.loads(peer_msg) if peer_msg['action'] == 'broadcasting': if peer_msg['update'] == 'post': if peer_msg['detail'] == 'show': peer_msg['detail'] = str(self.stats_h) + str( self.stats_g) self.hupu_client.update_board(peer_msg) else: self.hupu_client.update_board(peer_msg) elif peer_msg['action'] == 'Listening': self.hupu_client.update_board(peer_msg) elif peer_msg['action'] == 'stats': self.stat(peer_msg['message']) self.app.processEvents() if self.hupu_client.isHidden(): self.app.processEvents() self.state = S_CHATTING print("Back to normal chatting state.") #============================================================================== # invalid state #============================================================================== else: self.out_msg += 'How did you wind up here??\n' print_state(self.state) return self.out_msg