def main(stdscr): default_colors = CursedColorScheme() stored_session_file = "./saved_sessions.json" session_storage = SessionStorage(stored_session_file) top_menu = SessionMenu(default_colors, session_storage) top_win = CursedWindow(True, default_colors, top_menu, "Actionables", True) bottom_menu = CursedMenu(default_colors) bottom_win = CursedWindow(True, default_colors, bottom_menu, "Values") window_group = CursedWindowGroup() window_group.add_sub_window(stdscr, bottom_win, CursedWindowGroup.Position.BOTTOM_HORIZONTAL_THIRD) window_group.add_sub_window(stdscr, top_win, CursedWindowGroup.Position.TOP_TWO_THIRDS) try: sessions = session_storage.load_sessions() for sess in sessions: item = ScreenItem(sess["session_id"], sess["windows"], sess) top_menu.add_menu_item(item) except FileNotFoundError: print("No stored sessions found") for num in range(40): bottom_menu.add_menu_item(MenuItem("Thing {0}".format(num))) # turn off cursor blinking curses.curs_set(0) stdscr.refresh() window_group.update_all() try: keep_going = True while keep_going: key = stdscr.getch() if key == ord('q'): keep_going = False else: window_group.handle_key_event(key) if key == curses.KEY_ENTER or key == 10: # If a screen session as entered, we will need the keypad mode back on stdscr.keypad(1) window_group.update_all() finally: top_menu.save()
class RequestHandler: # # DONE # Initialisation # Args : Aucun # Return : Aucun # def __init__(self): Logger.log('Request handler init') self.SessionStorage = SessionStorage() # # DONE # Distribue les requètes vers des fonctions # Args : Requète # Return : Valeur renvoyée par la fonction # def dispatchRequest(self, rq): Logger.log('dispatching request : ' + str(rq.requestKind)) if rq.requestKind is not False: if rq.requestKind == RequestKind.CreateNewGameRequest: return self.handleNewGameRequest() if rq.requestKind == RequestKind.JoinGameRequest: return self.handleJoinGameRequest(rq) if rq.requestKind == RequestKind.GameUpdateRequest: return self.handleGameUpdateRequest(rq) if rq.requestKind == RequestKind.MoveRequest: return self.handleMoveRequest(rq) else: return False # # DONE # Fonction qui gère les requètes de création de nouvelle partie # Args : Aucun # Return : Valeur renvoyée par la SessionStorage.addNewSession() # def handleNewGameRequest(self): Logger.log('Handling new game') res = self.SessionStorage.addNewSession() return res # # DONE # Fonction qui gère les requètes de join # Args : Objet Request # Return : Id de joueur # def handleJoinGameRequest(self, rq): res = self.SessionStorage.joinGame(rq.params['uniqueurl']) return res # # DONE # Fonction qui geère les requètes de mise à jour de la game # Args : Objet Request # Return : Json de la partie # def handleGameUpdateRequest(self, rq): res = self.SessionStorage.getGameStateJson(rq.params['uniqueurl']) return res # # TODO # Fonction qui gère les requètes de mouvement # Args : Objet Request # Return : TODO # def handleMoveRequest(self, rq): res = self.SessionStorage.move(rq.params['uniqueid'], rq.params['uniqueurl'], rq.params['move']) return res
def __init__(self): Logger.log('Request handler init') self.SessionStorage = SessionStorage()
class RequestHandler: # # DONE # Initialisation # Args : Aucun # Return : Aucun # def __init__(self): Logger.log("Request handler init") self.SessionStorage = SessionStorage() # # DONE # Distribue les requètes vers des fonctions # Args : Requète # Return : Valeur renvoyée par la fonction # def dispatchRequest(self, rq): Logger.log("dispatching request : " + str(rq.requestKind)) if rq.requestKind is not False: if rq.requestKind == RequestKind.CreateNewGameRequest: return self.handleNewGameRequest() if rq.requestKind == RequestKind.JoinGameRequest: return self.handleJoinGameRequest(rq) if rq.requestKind == RequestKind.GameUpdateRequest: return self.handleGameUpdateRequest(rq) if rq.requestKind == RequestKind.MoveRequest: return self.handleMoveRequest(rq) else: return False # # DONE # Fonction qui gère les requètes de création de nouvelle partie # Args : Aucun # Return : Valeur renvoyée par la SessionStorage.addNewSession() # def handleNewGameRequest(self): Logger.log("Handling new game") res = self.SessionStorage.addNewSession() return res # # DONE # Fonction qui gère les requètes de join # Args : Objet Request # Return : Id de joueur # def handleJoinGameRequest(self, rq): res = self.SessionStorage.joinGame(rq.params["uniqueurl"]) return res # # DONE # Fonction qui geère les requètes de mise à jour de la game # Args : Objet Request # Return : Json de la partie # def handleGameUpdateRequest(self, rq): res = self.SessionStorage.getGameStateJson(rq.params["uniqueurl"]) return res # # TODO # Fonction qui gère les requètes de mouvement # Args : Objet Request # Return : TODO # def handleMoveRequest(self, rq): res = self.SessionStorage.move(rq.params["uniqueid"], rq.params["uniqueurl"], rq.params["move"]) return res
def __init__(self): Logger.log("Request handler init") self.SessionStorage = SessionStorage()