]> git.cworth.org Git - turbot/commitdiff
Announce to the hunt whenever a puzzle receives a new tag
authorCarl Worth <cworth@cworth.org>
Sat, 8 Jan 2022 10:46:43 +0000 (02:46 -0800)
committerCarl Worth <cworth@cworth.org>
Sat, 8 Jan 2022 10:49:58 +0000 (02:49 -0800)
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

index c84afbc40d77dbd8d05c877579ccd2b402076585..21e741e8c19ac84776e8c36330c295876315d553 100644 (file)
@@ -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