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']:
return lambda_ok
-actions['button']['new_hunt'] = new_hunt
+actions['button']['new_hunt'] = new_hunt_button
def new_hunt_submission(turb, payload, metadata):
"""Handler for the user submitting the new hunt modal
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)
blocks = hunt_blocks(turb, hunt, puzzle_status=status, search_terms=terms)
for block in blocks:
+ if len(block) > 100:
+ block = block[:100]
requests.post(response_url,
json = { 'blocks': block },
headers = {'Content-type': 'application/json'}
)
for block in blocks:
+ if len(block) > 100:
+ block = block[:100]
requests.post(response_url,
json = { 'blocks': block },
headers = {'Content-type': 'application/json'}