X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=turbot%2Finteraction.py;h=a3fe496c81adb8dc1ceca981c04d3d16a911058e;hb=d63943a1adccccda1ddf43e609701a0615577670;hp=8cba346a2122a96c1e2bd9740f78977fd597db7c;hpb=f0ed5cb2f865d8c44c1bd8ac382e50c39357df46;p=turbot diff --git a/turbot/interaction.py b/turbot/interaction.py index 8cba346..a3fe496 100644 --- a/turbot/interaction.py +++ b/turbot/interaction.py @@ -572,7 +572,8 @@ def new_hunt_submission(turb, payload, metadata): {'AttributeName': 'SK', 'AttributeType': 'S'}, {'AttributeName': 'channel_id', 'AttributeType': 'S'}, {'AttributeName': 'is_hunt', 'AttributeType': 'S'}, - {'AttributeName': 'url', 'AttributeType': 'S'} + {'AttributeName': 'url', 'AttributeType': 'S'}, + {'AttributeName': 'puzzle_id', 'AttributeType': 'S'} ], ProvisionedThroughput={ 'ReadCapacityUnits': 5, @@ -616,6 +617,16 @@ def new_hunt_submission(turb, payload, metadata): 'Projection': { 'ProjectionType': 'ALL' } + }, + { + 'IndexName': 'puzzle_id_index', + 'KeySchema': [ + {'AttributeName': 'hunt_id', 'KeyType': 'HASH'}, + {'AttributeName': 'puzzle_id', 'KeyType': 'RANGE'}, + ], + 'Projection': { + 'ProjectionType': 'ALL' + } } ] ) @@ -1335,7 +1346,6 @@ def help_command(turb, body, args): Displays help on how to use Turbot. """ - channel_name = body['channel_name'][0] channel_id = body['channel_id'][0] response_url = body['response_url'][0] user_id = body['user_id'][0] @@ -1349,15 +1359,19 @@ def help_command(turb, body, args): to_try = "In response to <@{}> asking `/help me`:\n\n{}\n".format( user_id, have_you_tried()) - # If this is a direct message then there's not a usable channel_id - # and we have to use the response_url instead - if channel_name == "directmessage": + # We'll try first to reply directly to the channel (for the benefit + # of anyone else in the same channel that might be stuck too. + # + # But if this doesn't work, (direct message or private channel), + # then we can instead reply with an ephemeral message by using + # the response_url. + try: + turb.slack_client.chat_postMessage( + channel=channel_id, text=to_try) + except SlackApiError: requests.post(response_url, json = {"text": to_try}, headers = {"Content-type": "application/json"}) - else: - turb.slack_client.chat_postMessage( - channel=channel_id, text=to_try) return lambda_ok help_string = turbot_help(args)