From 6033aaa159a5d92e638d5fb7626d86a5ea07b74a Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Fri, 23 Oct 2020 11:16:20 -0700 Subject: [PATCH] Add a welcome message to any new puzzle channel that is created. This gives links to the original puzzle's URL and also explains how to use the /state and /solved commands. --- turbot/events.py | 42 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/turbot/events.py b/turbot/events.py index 1b15f0c..9e51223 100644 --- a/turbot/events.py +++ b/turbot/events.py @@ -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): -- 2.43.0