Files
SteamPathCLI/prompt_helper.py
T
2025-06-07 17:36:50 +01:00

38 lines
1.2 KiB
Python

import prompt_toolkit as pt
from prompt_toolkit.completion import WordCompleter, FuzzyCompleter
import sys
def generate_completer(game_list):
g_list = [x['name'] for x in game_list] + [x['appid'] for x in game_list]
g_list.append("q")
g_list.append("quit")
return FuzzyCompleter(WordCompleter(g_list))
class PromptHelper:
def __init__(self, game_list):
self.game_list = game_list
self.completer = generate_completer(game_list)
def find_game_str(self, game_name):
for game in self.game_list:
if game['name'] == game_name:
return game
def find_game_num(self, appid: str):
for game in self.game_list:
if game['appid'] == appid:
return game
print("Game not found")
return None
def prompt_game(self, text, default="None"):
response = pt.prompt(text, completer=self.completer, complete_while_typing=True)
if response == "":
return None
elif response == "q" or response == "quit":
print("Goodbye!")
sys.exit(0)
elif response[0].isalpha():
return self.find_game_str(response)
else:
return self.find_game_num(response)