From a2745340164550c5b307374835e0f15da8f5ea7b Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Fri, 23 Oct 2020 14:29:06 -0700 Subject: [PATCH] Use blocks to send the welcome message This approach has the benefit of allowing separate sections, (I tried doing this with newlines in the 'text' parameter but they were getting swallowed by Slack). --- turbot/events.py | 75 ++++++++++++++++++++++++++++-------------------- 1 file changed, 44 insertions(+), 31 deletions(-) diff --git a/turbot/events.py b/turbot/events.py index 9e51223..0dabb71 100644 --- a/turbot/events.py +++ b/turbot/events.py @@ -293,39 +293,52 @@ def puzzle_channel_created(turb, puzzle_channel_name, puzzle_channel_id): # 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']) - ) + welcome_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) + welcome_msg += ( + "See the <{}|puzzle itself> ".format(item['url']) + + "for what was originally presented to us." + ) + + sheet_msg = ( + "Actual puzzle solving work will take place within the following " + + "<{}|shared spreadsheet> ".format(item['sheet_url']) + ) + + state_msg = ( + "Whenever 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." + ) + + solved_msg = ( + "When 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)." + ) + + turb.slack_client.chat_postMessage( + channel=puzzle_channel_id, + text="New puzzle: {}".format(item['name']), + blocks=[ + section_block(text_block(welcome_msg)), + section_block(text_block(sheet_msg)), + section_block(text_block(state_msg)), + section_block(text_block(solved_msg)) + ]) return lambda_success -- 2.43.0