X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=turbot%2Fevents.py;h=671eccb95c7303c9762c5b4d7069c624ec96a65b;hb=8e9a333cdc4118878bdf6ece9ee7456644fd1342;hp=eb5bcc46c69a8e8bfa09c275081a6f650e71de69;hpb=c6ad0733c2613b899a30291b14222ef6c322c6cb;p=turbot diff --git a/turbot/events.py b/turbot/events.py index eb5bcc4..671eccb 100644 --- a/turbot/events.py +++ b/turbot/events.py @@ -2,6 +2,9 @@ from turbot.blocks import ( section_block, text_block, button_block, actions_block, divider_block ) from turbot.hunt import find_hunt_for_hunt_id +from turbot.puzzle import ( + puzzle_channel_topic, puzzle_channel_description, +) from turbot.sheets import ( sheets_create, sheets_create_for_puzzle, sheets_create_folder ) @@ -125,8 +128,17 @@ def hunt_channel_created(turb, channel_name, channel_id): "Welcome to the channel for the {} hunt! ".format(hunt['name']) + "Please wait a moment or two while I create some backend resources.") - # Create a new folder within Google drive for the hunt - hunt['folder_id'] = sheets_create_folder(turb, hunt['hunt_id']) + # Create a new folder within Google drive for the hunt in two parts: + + # ... first, a top-level folder named for the hunt + hunt_folder = sheets_create_folder(turb, hunt['hunt_id']) + + # ... second, a folder within that named "turbot" + # + # The concept here is that non-turbot related content could + # be placed adjacent to the turbot folder. + hunt['folder_id'] = sheets_create_folder(turb, "turbot", + parents = [hunt_folder]) # Create a sheet for the hunt sheet = sheets_create(turb, hunt['name'], hunt['folder_id']) @@ -150,25 +162,17 @@ def hunt_channel_created(turb, channel_name, channel_id): return lambda_success -def set_channel_description(turb, puzzle): - channel_id = puzzle['channel_id'] - description = puzzle['name'] - url = puzzle.get('url', None) - sheet_url = puzzle.get('sheet_url', None) +def set_channel_topic_and_description(turb, puzzle): - links = [] - if url: - links.append("<{}|Puzzle>".format(url)) - if sheet_url: - links.append("<{}|Sheet>".format(sheet_url)) + channel_id = puzzle['channel_id'] - if len(links): - description += "({})".format(', '.join(links)) + topic = puzzle_channel_topic(puzzle) + description = puzzle_channel_description(puzzle) turb.slack_client.conversations_setPurpose(channel=channel_id, purpose=description) turb.slack_client.conversations_setTopic(channel=channel_id, - topic=description) + topic=topic) def puzzle_channel_created(turb, channel_name, channel_id): """Creates sheet and invites user for a newly-created puzzle channel""" @@ -210,8 +214,8 @@ def puzzle_channel_created(turb, channel_name, channel_id): puzzle['sheet_url'] = sheet['url'] turb.table.put_item(Item=puzzle) - # Get the new sheet_url into the channel description - set_channel_description(turb, puzzle) + # Get the new sheet_url into the channel topic and description + set_channel_topic_and_description(turb, puzzle) # And finally, give a welcome message with some documentation # on how to update the state of the puzzle in the database.