X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=turbot%2Finteraction.py;h=546e59a70a25728b1dcdee92d60f6d5730687fda;hb=4a390d5c89977ae8ff8baae26001d6f047e50903;hp=f784a0266203862711d4c20f16656195f712a09f;hpb=1cfe6d6ce6ca9adc502683e38a46012798b623a6;p=turbot diff --git a/turbot/interaction.py b/turbot/interaction.py index f784a02..546e59a 100644 --- a/turbot/interaction.py +++ b/turbot/interaction.py @@ -1335,9 +1335,9 @@ 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] # Process "/help me" first. It calls out to have_you_tried rather # than going through our help system. @@ -1345,17 +1345,22 @@ def help_command(turb, body, args): # Also, it reports in the current channel, (where all other help # output is reported privately to the invoking user). if args == "me": - to_try = 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": + to_try = "In response to <@{}> asking `/help me`:\n\n{}\n".format( + user_id, have_you_tried()) + + # 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)