from turbot.hunt import (
find_hunt_for_hunt_id,
hunt_blocks,
- hunt_puzzles_for_hunt_id
+ hunt_puzzles_for_hunt_id,
+ hunt_update_topic
)
from turbot.puzzle import (
find_puzzle_for_url,
turb.slack_client, puzzle['channel_id'],
edit_message, blocks=blocks)
+ # Advertize any tag additions to the hunt
+ hunt = find_hunt_for_hunt_id(turb, puzzle['hunt_id'])
+
+ new_tags = set(puzzle['tags']) - set(old_puzzle['tags'])
+ if new_tags:
+ message = "Puzzle <{}|{}> has been tagged: {}".format(
+ puzzle['channel_url'],
+ puzzle['name'],
+ ", ".join(['`{}`'.format(t) for t in new_tags])
+ )
+ slack_send_message(turb.slack_client, hunt['channel_id'], message)
+
# Also inform the hunt if the puzzle's solved status changed
if puzzle['status'] != old_puzzle['status']:
- hunt = find_hunt_for_hunt_id(turb, puzzle['hunt_id'])
if puzzle['status'] == 'solved':
message = "Puzzle <{}|{}> has been solved!".format(
puzzle['channel_url'],
input_block("Hunt URL", "url", "External URL of hunt",
initial_value=hunt.get("url", None),
optional=True),
+ input_block("State", "state",
+ "State of the hunt (goals, upcoming meetings, etc.)",
+ initial_value=hunt.get("state", None),
+ optional=True),
checkbox_block("Is this hunt active?", "Active", "active",
checked=(hunt.get('active', False)))
]
if url:
hunt['url'] = url
+ hunt_state = state['state']['state']['value']
+ if hunt_state:
+ hunt['state'] = hunt_state
if state['active']['active']['selected_options']:
hunt['active'] = True
else:
turb.slack_client, hunt['channel_id'],
edit_message, blocks=blocks)
+ # Update channel topic and description
+ hunt_update_topic(turb, hunt)
+
return lambda_ok
def new_hunt_command(turb, body):
item['url'] = url
turb.table.put_item(Item=item)
+ # Update channel topic and description
+ hunt_update_topic(turb, item)
+
# Invite the initiating user to the channel
turb.slack_client.conversations_invite(channel=channel_id, users=user_id)
puzzle_update_channel_and_sheet(turb, puzzle, old_puzzle=old_puzzle)
+ # Advertize any tag additions to the hunt
+ new_tags = set(puzzle['tags']) - set(old_puzzle['tags'])
+ if new_tags:
+ hunt = find_hunt_for_hunt_id(turb, puzzle['hunt_id'])
+ message = "Puzzle <{}|{}> has been tagged: {}".format(
+ puzzle['channel_url'],
+ puzzle['name'],
+ ", ".join(['`{}`'.format(t) for t in new_tags])
+ )
+ slack_send_message(turb.slack_client, hunt['channel_id'], message)
+
return lambda_ok
commands["/tag"] = tag