X-Git-Url: https://git.cworth.org/git?p=turbot;a=blobdiff_plain;f=turbot%2Fevents.py;h=4099ac5a25c11f30f45f7994ed2328a8846cce45;hp=671eccb95c7303c9762c5b4d7069c624ec96a65b;hb=d47444e021aab4d3a89fd0e1b75c0a49867290b7;hpb=58422543a8aeba8e9011403fc49049d3c3730a33 diff --git a/turbot/events.py b/turbot/events.py index 671eccb..4099ac5 100644 --- a/turbot/events.py +++ b/turbot/events.py @@ -197,7 +197,8 @@ def puzzle_channel_created(turb, channel_name, channel_id): # We need hunt from the database to know which folder to create # the sheet in. - hunt = find_hunt_for_hunt_id(turb, puzzle['hunt_id']) + hunt_id = puzzle['hunt_id'] + hunt = find_hunt_for_hunt_id(turb, hunt_id) # Before launching into sheet creation, indicate that we're doing this # in the database. This way, if we take too long to create the sheet @@ -217,6 +218,28 @@ def puzzle_channel_created(turb, channel_name, channel_id): # Get the new sheet_url into the channel topic and description set_channel_topic_and_description(turb, puzzle) + # Lookup and invite all users from this hunt to this new puzzle + + # Find all members of the hunt channel + members = slack_channel_members(turb.slack_client, hunt['channel_id']) + + # Filter out Turbot's own ID to avoid inviting itself + # has opted out of being auto-invited + members = [m for m in members if m != TURBOT_USER_ID] + + slack_send_message( + turb.slack_client, channel_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 + while cursor < len(members): + turb.slack_client.conversations_invite( + channel=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. welcome_msg = ( @@ -243,7 +266,6 @@ def puzzle_channel_created(turb, channel_name, channel_id): turb.slack_client.chat_postMessage(channel=channel_id, text=welcome_msg) # Finally, finally, notify the hunt channel about the new puzzle - hunt = find_hunt_for_hunt_id(turb, puzzle['hunt_id']) slack_send_message( turb.slack_client, hunt['channel_id'], "New puzzle available: <{}|{}>".format(