def update_search(self): search = LauncherSettings.get("config_search").strip().lower() print("search for", search) words = [] special = [] for word in search.split(" "): word = word.strip() if not word: continue if ":" in word[1:-1]: special.append(word) else: words.append(word) terms = GameNameUtil.extract_search_terms(" ".join(words)) terms.update(special) database = Database.get_instance() try: have = int(LauncherSettings.get("database_show_games")) except ValueError: # default is show all downloadable and locally available games have = 1 items = database.find_games_new( " ".join(terms), have=have, list_uuid=LauncherSettings.get("game_list_uuid"), ) self.set_items(items)
def update_search(self): search = LauncherSettings.get("config_search").strip().lower() print("search for", search) words = [] special = [] for word in search.split(" "): word = word.strip() if not word: continue if ":" in word[1:-1]: special.append(word) else: words.append(word) terms = GameNameUtil.extract_search_terms(" ".join(words)) terms.update(special) database = Database.get_instance() try: have = int(LauncherSettings.get("database_show_games")) except ValueError: # default is show all downloadable and locally available games have = 1 items = database.find_games_new( " ".join(terms), have=have, list_uuid=LauncherSettings.get("game_list_uuid")) self.set_items(items)
def main(): Application("fs-uae-game-system") if "--unsupported" in sys.argv: if "--http-server" in sys.argv: from fsgs.http.server import http_server_main return http_server_main() if len(sys.argv) < 3: print("") print("usage: fsgs run <game>") print("") print("game:") print(" - search term(s) identifying a single game") print(" - path to a .fsgs file") print(" - path to a recognized cartridge ROM or disk file format") print("") sys.exit(1) assert sys.argv[1] == "run" game_arg = " ".join(sys.argv[2:]) print(game_arg) if os.path.exists(game_arg): load_file(game_arg) else: search = game_arg.lower() database = Database.instance() # cursor.execute("SELECT id FROM game WHERE name like") terms = GameNameUtil.extract_search_terms(search) found_games = database.find_games_new(" ".join(terms)) games = [] for game in found_games: print(list(game)) if game[0]: # only process entries with a game uuid games.append(game) game_uuid = None if len(games) == 0: print("no games found") sys.exit(2) if len(games) > 1: matches = 0 for row in games: if row[1].lower() == search: if game_uuid is None: game_uuid = row[0] matches += 1 if matches != 1: print("") print("More than one game matches:") print("") for row in games: print(" {0} ({1})".format(row[1], row[2])) print(" {0}".format(row[0])) print("") sys.exit(3) game_uuid = games[0][0] assert game_uuid variant_uuid = find_preferred_variant(game_uuid) load_game_variant(variant_uuid) fsgs.run_game()
def create_search_results_menu(text): global current_menu try: if text == current_menu.search_text: return False except AttributeError: pass new_menu = SearchResultsMenu("Search Results") new_menu.search_text = text # words = [v.strip() for v in text.lower().split(" ")] # print "Creating search results for", words new_menu.top.append_left( SearchTextItem("Search: {0}_".format(text))) # clause = [] # args = [] # for word in words: # clause.append("AND name like ?") # args.append("%{0}%".format(word)) # clause = " ".join(clause) terms = GameNameUtil.extract_search_terms(text.lower()) for item in MenuItem.create_game_items(terms): new_menu.append(item) if len(new_menu) == 0: new_menu.append(NoItem("No Search Results")) # if hasattr(current_menu, "search_text"): # # replace current search menu, not append to path # #new_menu.parent_menu = current_menu.parent_menu # replace = True # else: # #new_menu.parent_menu = current_menu # replace = False replace = isinstance(current_menu, SearchResultsMenu) print("create search results menu") # set_current_menu(new_menu) enter_menu(new_menu, replace=replace) return True