X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=turbot%2Finteraction.py;h=53f45a701a9fb9bae68d41316af01fe29f518a14;hb=5e7ee7c20f71996cedd04586d7139250c6704c0d;hp=392574d89f1d8c9405dd18fee541a8815aea720f;hpb=9a0a686586122ccb3c44c1cf61ee2addfe58cf08;p=turbot diff --git a/turbot/interaction.py b/turbot/interaction.py index 392574d..53f45a7 100644 --- a/turbot/interaction.py +++ b/turbot/interaction.py @@ -17,6 +17,7 @@ from turbot.puzzle import ( puzzle_copy ) from turbot.round import round_quoted_puzzles_titles_answers +from turbot.help import turbot_help import turbot.rot import turbot.sheets import turbot.slack @@ -146,7 +147,6 @@ def edit_puzzle_button(turb, payload): """Handler for the action of user pressing an edit_puzzle button""" action_id = payload['actions'][0]['action_id'] - response_url = payload['response_url'] trigger_id = payload['trigger_id'] (hunt_id, sort_key) = action_id.split('-', 1) @@ -154,9 +154,6 @@ def edit_puzzle_button(turb, payload): puzzle = find_puzzle_for_sort_key(turb, hunt_id, sort_key) if not puzzle: - requests.post(response_url, - json = {"text": "Error: Puzzle not found!"}, - headers = {"Content-type": "application/json"}) return bot_reply("Error: Puzzle not found.") return edit_puzzle(turb, puzzle, trigger_id) @@ -387,15 +384,11 @@ def edit_hunt_button(turb, payload): """Handler for the action of user pressing an edit_hunt button""" hunt_id = payload['actions'][0]['action_id'] - response_url = payload['response_url'] trigger_id = payload['trigger_id'] - hunt = find_hunt_for_hunt_id(hunt_id) + hunt = find_hunt_for_hunt_id(turb, hunt_id) if not hunt: - requests.post(response_url, - json = {"text": "Error: Hunt not found!"}, - headers = {"Content-type": "application/json"}) return bot_reply("Error: Hunt not found.") return edit_hunt(turb, hunt, trigger_id) @@ -1334,3 +1327,29 @@ def round(turb, body, args): return lambda_ok commands["/round"] = round + +def help_command(turb, body, args): + """Implementation of the /help command + + Displays help on how to use Turbot. + """ + + channel_id = body['channel_id'][0] + response_url = body['response_url'][0] + + help_string = turbot_help(args) + + # The "/help me" command is special in that it reports in the + # current channel, (where all other commands report privately to + # the invoking user). + if args == "me": + turb.slack_client.chat_postMessage( + channel=channel_id, text=help_string) + else: + requests.post(response_url, + json = {"text": help_string}, + headers = {"Content-type": "application/json"}) + + return lambda_ok + +commands["/help"] = help_command