X-Git-Url: https://git.cworth.org/git?p=turbot;a=blobdiff_plain;f=turbot%2Finteraction.py;h=69db52149d1eda35e3a62fda6b70b1184e0476ba;hp=bbaa51d1fd862e2e38183c1e1219d3e7ee321cdf;hb=716d0fe0c535e7501bd506603f825790f288bf8f;hpb=886cb3f4f96ac644b90df1b979ee7a9345eb2515 diff --git a/turbot/interaction.py b/turbot/interaction.py index bbaa51d..69db521 100644 --- a/turbot/interaction.py +++ b/turbot/interaction.py @@ -7,7 +7,8 @@ from turbot.puzzle import ( find_puzzle_for_url, find_puzzle_for_puzzle_id, puzzle_update_channel_and_sheet, - puzzle_id_from_name + puzzle_id_from_name, + puzzle_blocks ) import turbot.rot import turbot.sheets @@ -549,13 +550,45 @@ def puzzle(turb, body, args): The args string can be a sub-command: /puzzle new: Bring up a dialog to create a new puzzle + + Or with no argument at all: + + /puzzle: Print details of the current puzzle (if in a puzzle channel) """ if args == 'new': return new_puzzle(turb, body) - return bot_reply("Unknown syntax for `/puzzle` command. " + - "Use `/puzzle new` to create a new puzzle.") + if len(args): + return bot_reply("Unknown syntax for `/puzzle` command. " + + "Use `/puzzle new` to create a new puzzle.") + + # For no arguments we print the current puzzle as a reply + channel_id = body['channel_id'][0] + response_url = body['response_url'][0] + + puzzle = puzzle_for_channel(turb, channel_id) + + if not puzzle: + hunt = hunt_for_channel(turb, channel_id) + if hunt: + return bot_reply( + "This is not a puzzle channel, but is a hunt channel. " + + "If you want to create a new puzzle for this hunt, use " + + "`/puzzle new`.") + else: + return bot_reply( + "Sorry, this channel doesn't appear to be a hunt or a puzzle " + + "channel, so the `/puzzle` command cannot work here.") + + blocks = puzzle_blocks(puzzle) + + requests.post(response_url, + json = {'blocks': blocks}, + headers = {'Content-type': 'application/json'} + ) + + return lambda_ok commands["/puzzle"] = puzzle