solved = True
solution_str = None
- solution_list = puzzle.get("solution", [])
- if solution_list:
- solution_str = ", ".join(solution_list)
+ solution_set = puzzle.get("solution", set())
+ if solution_set:
+ solution_str = ", ".join(solution_set)
view = {
"type": "modal",
puzzle['type'] = 'meta'
else:
puzzle['type'] = 'plain'
- rounds = [option['value'] for option in
- state['rounds']['rounds']['selected_options']]
- if rounds:
- puzzle['rounds'] = rounds
+ if 'rounds' in state:
+ rounds = [option['value'] for option in
+ state['rounds']['rounds']['selected_options']]
+ if rounds:
+ puzzle['rounds'] = rounds
new_rounds = state['new_rounds']['new_rounds']['value']
puzzle_state = state['state']['state']['value']
if puzzle_state:
puzzle['status'] = 'solved'
else:
puzzle['status'] = 'unsolved'
- puzzle['solution'] = []
+ puzzle['solution'] = set()
solution = state['solution']['solution']['value']
if solution:
- puzzle['solution'] = [
+ puzzle['solution'] = {
sol.strip() for sol in solution.split(',')
- ]
+ }
# Verify that there's a solution if the puzzle is mark solved
if puzzle['status'] == 'solved' and not puzzle['solution']:
if rounds:
puzzle['rounds'] = rounds
- puzzle['solution'] = []
+ puzzle['solution'] = set()
puzzle['status'] = 'unsolved'
# Create a channel for the puzzle
# Set the status and solution fields in the database
puzzle['status'] = 'solved'
- puzzle['solution'].append(args)
+ puzzle['solution'].add(args)
if 'state' in puzzle:
del puzzle['state']
turb.table.put_item(Item=puzzle)