X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=turbot%2Finteraction.py;h=5889c74a299bdc0a89d564dc578328fef14de9b1;hb=f39b04b9682bfc68d8f9e71576f144b4b7b0d79a;hp=c84afbc40d77dbd8d05c877579ccd2b402076585;hpb=84463950bbc2b4b10a2cc84d82285336254d4282;p=turbot diff --git a/turbot/interaction.py b/turbot/interaction.py index c84afbc..5889c74 100644 --- a/turbot/interaction.py +++ b/turbot/interaction.py @@ -5,7 +5,8 @@ from turbot.blocks import ( 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, @@ -372,9 +373,20 @@ def edit_puzzle_submission(turb, payload, metadata): 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'], @@ -448,6 +460,10 @@ def edit_hunt(turb, hunt, trigger_id): 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))) ] @@ -486,6 +502,9 @@ def edit_hunt_submission(turb, payload, metadata): 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: @@ -511,6 +530,9 @@ def edit_hunt_submission(turb, payload, metadata): 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): @@ -686,6 +708,9 @@ def new_hunt_submission(turb, payload, metadata): 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) @@ -1204,6 +1229,17 @@ def tag(turb, body, args): 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