From 0015251c4f6f377a3a538b2a09c4ca7fb3d026b5 Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Sat, 8 Jan 2022 02:46:43 -0800 Subject: [PATCH] Announce to the hunt whenever a puzzle receives a new tag This will hopefully help people stay abreast of puzzles that they are most interested in (by having a central place to see which tags are being added to puzzles). --- turbot/interaction.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/turbot/interaction.py b/turbot/interaction.py index c84afbc..21e741e 100644 --- a/turbot/interaction.py +++ b/turbot/interaction.py @@ -372,9 +372,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'], @@ -1204,6 +1215,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 -- 2.43.0