X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=turbot%2Finteraction.py;h=ec64706658f3126bfc1974921d12e4cdece78ffe;hb=2dd1171d23caf8fcc739541bfad22d3805a094a9;hp=fb11599034fc1f518a1ec7a19a7d54ade43862be;hpb=1efdf784442e0bfc0fb96a18ec833e2801af7973;p=turbot diff --git a/turbot/interaction.py b/turbot/interaction.py index fb11599..ec64706 100644 --- a/turbot/interaction.py +++ b/turbot/interaction.py @@ -13,7 +13,8 @@ from turbot.puzzle import ( puzzle_update_channel_and_sheet, puzzle_id_from_name, puzzle_blocks, - puzzle_sort_key + puzzle_sort_key, + puzzle_copy ) from turbot.round import round_quoted_puzzles_titles_answers import turbot.rot @@ -881,8 +882,8 @@ def state(turb, body, args): return bot_reply( "Sorry, the /state command only works in a puzzle channel") - # Make a copy of the puzzle object - puzzle = old_puzzle.copy() + # Make a deep copy of the puzzle object + puzzle = puzzle_copy(old_puzzle) # Update the puzzle in the database puzzle['state'] = args @@ -941,8 +942,8 @@ def tag(turb, body, args): # OK. Error checking is done. Let's get to work - # Make a copy of the puzzle object - puzzle = old_puzzle.copy() + # Make a deep copy of the puzzle object + puzzle = puzzle_copy(old_puzzle) if action == 'remove': puzzle['tags'] = [t for t in puzzle['tags'] if t != tag] @@ -966,7 +967,7 @@ def solved(turb, body, args): The args string should be a confirmed solution.""" channel_id = body['channel_id'][0] - user_name = body['user_name'][0] + user_id = body['user_id'][0] old_puzzle = puzzle_for_channel(turb, channel_id) @@ -977,8 +978,8 @@ def solved(turb, body, args): return bot_reply( "Error, no solution provided. Usage: `/solved SOLUTION HERE`") - # Make a copy of the puzzle object - puzzle = old_puzzle.copy() + # Make a deep copy of the puzzle object + puzzle = puzzle_copy(old_puzzle) # Set the status and solution fields in the database puzzle['status'] = 'solved' @@ -990,7 +991,7 @@ def solved(turb, body, args): # Report the solution to the puzzle's channel slack_send_message( turb.slack_client, channel_id, - "Puzzle mark solved by {}: `{}`".format(user_name, args)) + "Puzzle mark solved by <@{}>: `{}`".format(user_id, args)) # Also report the solution to the hunt channel hunt = find_hunt_for_hunt_id(turb, puzzle['hunt_id']) @@ -1023,9 +1024,10 @@ def hunt(turb, body, args): character in a term). All terms must match on a puzzle in order for that puzzle to be included. But a puzzle will be considered to match if any of the puzzle title, round title, puzzle URL, puzzle - state, or puzzle solution match. Matching will be performed - without regard to case sensitivity and the search terms can - include regular expression syntax. + state, puzzle type, tags, or puzzle solution match. Matching will + be performed without regard to case sensitivity and the search + terms can include regular expression syntax. + """ channel_id = body['channel_id'][0]