Add check_game_name and input checks

Game name is checked against the GAME_INFO dict
This commit is contained in:
chris committed 2026-05-27 08:57:58 -04:00
1 parent b1732c07c5
commit f50cc994d0
1 file changed
+15 -2
+15 -2
View File
@@ -1,5 +1,6 @@
import argparse import argparse
import random import random
import sys
from datetime import date, datetime from datetime import date, datetime
from time import sleep from time import sleep
@@ -219,6 +220,10 @@ def get_prediction(
return prediction_output return prediction_output
def check_game_name(game: str) -> bool:
return game in GAME_INFO
def main(): def main():
parser = argparse.ArgumentParser(description="A lottery prediction tool.") parser = argparse.ArgumentParser(description="A lottery prediction tool.")
subparsers = parser.add_subparsers(dest="command", required=True) subparsers = parser.add_subparsers(dest="command", required=True)
@@ -258,8 +263,9 @@ def main():
ticket_parser.add_argument( ticket_parser.add_argument(
"--game", "--game",
type=str, type=str,
choices=[game for game in GAME_INFO.keys()],
required=True, required=True,
help="The game to predict the next result for [MegaMillions, Powerball]", help="The game to predict the next result for",
) )
predict_parser = subparsers.add_parser( predict_parser = subparsers.add_parser(
@@ -269,8 +275,9 @@ def main():
predict_parser.add_argument( predict_parser.add_argument(
"--game", "--game",
type=str, type=str,
choices=[game for game in GAME_INFO.keys()],
required=True, required=True,
help="The game to predict the next result for [MegaMillions, Powerball]", help="The game to predict the next result for",
) )
predict_parser.add_argument( predict_parser.add_argument(
"--window-size", "--window-size",
@@ -289,6 +296,9 @@ def main():
args = parser.parse_args() args = parser.parse_args()
match args.command: match args.command:
case "generate-ticket": case "generate-ticket":
if not check_game_name(args.game):
print(f"{args.game} is not a valid game name.")
sys.exit()
main_balls, game_ball = ticket.generate_random_ticket( main_balls, game_ball = ticket.generate_random_ticket(
max_main=GAME_INFO[args.game]['max_main_ball'], max_main=GAME_INFO[args.game]['max_main_ball'],
max_game=GAME_INFO[args.game]['max_game_ball'], max_game=GAME_INFO[args.game]['max_game_ball'],
@@ -317,6 +327,9 @@ def main():
case "update": case "update":
update_games(dry_run=args.dryrun) update_games(dry_run=args.dryrun)
case "predict": case "predict":
if not check_game_name(args.game):
print(f"{args.game} is not a valid game name.")
sys.exit()
if args.test: if args.test:
recent, prediction = get_prediction( recent, prediction = get_prediction(
game=args.game, game=args.game,