]> git.cworth.org Git - turbot/blobdiff - turbot/interaction.py
Don't set a channel description longer than 250 character.
[turbot] / turbot / interaction.py
index cbb8befe2bcb3eb4ebf3df0d7f3165fcf1f5e128..b2d83170d4a4a266083cf79394a747b94d4bce95 100644 (file)
@@ -283,9 +283,10 @@ def edit_puzzle_submission(turb, payload, metadata):
     puzzle['solution'] = []
     solution = state['solution']['solution']['value']
     if solution:
-        puzzle['solution'] = [
+        # Construct a list from a set to avoid any duplicates
+        puzzle['solution'] = list({
             sol.strip() for sol in solution.split(',')
-        ]
+        })
 
     # Verify that there's a solution if the puzzle is mark solved
     if puzzle['status'] == 'solved' and not puzzle['solution']:
@@ -320,7 +321,7 @@ def edit_puzzle_submission(turb, payload, metadata):
                                           puzzle['SK'])
 
     # If we are changing puzzle type (meta -> plain or plain -> meta)
-    # the the sort key has to change, so compute the new one and delete
+    # then the sort key has to change, so compute the new one and delete
     # the old item from the database.
     #
     # XXX: We should really be using a transaction here to combine the
@@ -1184,7 +1185,10 @@ def solved(turb, body, args):
 
     # Set the status and solution fields in the database
     puzzle['status'] = 'solved'
-    puzzle['solution'].append(args)
+
+    # Don't append a duplicate solution
+    if args not in puzzle['solution']:
+        puzzle['solution'].append(args)
     if 'state' in puzzle:
         del puzzle['state']
     turb.table.put_item(Item=puzzle)
@@ -1192,7 +1196,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_id, args))
+        "Puzzle marked solved by <@{}>: `{}`".format(user_id, args))
 
     # Also report the solution to the hunt channel
     hunt = find_hunt_for_hunt_id(turb, puzzle['hunt_id'])