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
"""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)
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)
"""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)
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