]> git.cworth.org Git - turbot/commitdiff
Add a welcome message to any new puzzle channel that is created.
authorCarl Worth <cworth@cworth.org>
Fri, 23 Oct 2020 18:16:20 +0000 (11:16 -0700)
committerCarl Worth <cworth@cworth.org>
Fri, 23 Oct 2020 18:28:38 +0000 (11:28 -0700)
This gives links to the original puzzle's URL and also explains how to
use the /state and /solved commands.

turbot/events.py

index 1b15f0cdd32b918c141ab13466b74a0de208c8d8..9e51223c2bf22b3cfa13f65332d74ae2f6f74a24 100644 (file)
@@ -260,7 +260,7 @@ def puzzle_channel_created(turb, puzzle_channel_name, puzzle_channel_id):
     # Get the new sheet_url into the channel description
     set_channel_description(turb, item)
 
-    # Finally, lookup and invite all users from this hunt to this new puzzle
+    # Lookup and invite all users from this hunt to this new puzzle
     hunts_table = turb.db.Table('hunts')
     response = hunts_table.scan(
         FilterExpression='hunt_id = :hunt_id',
@@ -280,8 +280,8 @@ def puzzle_channel_created(turb, puzzle_channel_name, puzzle_channel_id):
 
         slack_send_message(
             turb.slack_client, puzzle_channel_id,
-            "Inviting all members from the hunt channel:  {}"
-            .format(hunt_id))
+            "Inviting all members from the hunt channel: "
+            + "<#{}>".format(hunt_channel_id))
 
         # Invite those members to the puzzle channel (in chunks of 500)
         cursor = 0
@@ -291,6 +291,42 @@ def puzzle_channel_created(turb, puzzle_channel_name, puzzle_channel_id):
                 users=members[cursor:cursor + 500])
             cursor += 500
 
+    # And finally, give a welcome message with some documentation
+    # on how to update the state of the puzzle in the database.
+    msg = ("Welcome! This channel is the primary place to discuss things as "
+           + "the team works together to solve the "
+           + "puzzle '{}'. ".format(item['name'])
+           )
+
+    if 'url' in item:
+        msg += ("See the <{}|puzzle itself> ".format(item['url'])
+                + "for what was originally presented to us."
+                )
+
+    msg += ("Actual puzzle solving work will take place within the following "
+            + "<{}|shared spreadsheet> ".format(item['sheet_url'])
+            )
+
+    msg += ("\nWhenever the status of the puzzle progress changes "
+            + "significantly, please type `/state` with a brief message "
+            + "explaining where things stand. This could be something "
+            + "like `/state Grid is filled. Need insight for extraction.` "
+            + "or `/state Nathan has printed this and is cutting/assembling. "
+            + "It's especially important to put information in `/state` "
+            + "when you step away from a puzzle so the next team members "
+            + "to arrive will know what is going on."
+            )
+
+    msg += ("\nWhen a puzzle has been solved, submitted, and the solution is "
+            + "confirmed, please type `/solved THE PUZZLE ANSWER HERE`. All "
+            + "information given in `/state` and `/solved` will be presented "
+            + "in this channel's topic as well as in the hunt overview "
+            + "(which is available by selecting \"Turbot\" from the Slack "
+            + "list of members)."
+            )
+
+    slack_send_message(turb.slack_client, puzzle_channel_id, msg)
+
     return lambda_success
 
 def channel_created(turb, event):