X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=turbot%2Fpuzzle.py;h=3a0e312720aad3ad6c76c39abf89e36ab6691f8a;hb=d53959afec8688d3f3c164f1b94de6dbec8bc13c;hp=e1e1bc2c6ed683fa8fe92962e4c476d59c433acf;hpb=c09a05591d2224c23dab510a94d4a0fc787aadc8;p=turbot diff --git a/turbot/puzzle.py b/turbot/puzzle.py index e1e1bc2..3a0e312 100644 --- a/turbot/puzzle.py +++ b/turbot/puzzle.py @@ -7,11 +7,18 @@ import turbot.sheets import re def find_puzzle_for_sort_key(turb, hunt_id, sort_key): - """Given a hunt_id and puzzle_id, return that puzzle + """Given a hunt_id and sort_key, return that puzzle - Returns None if no puzzle with the given hunt_id and puzzle_id + Returns None if no puzzle with the given hunt_id and sort_key exists in the database, otherwise a dictionary with all fields from the puzzle's row in the database. + + Note: The sort_key is a modified version of the puzzle_id, (used + to make metapuzzles appear in the ordering before non-metapuzzles). + If you've been handed a sort_key, then looking up a puzzle by + sort_key is the right thing to do. But if you instead have just + a puzzle_id, see find_puzzle_for_puzzle_id rather than trying + to convert the puzzle_id into a sort_key to use this function. """ response = turb.table.get_item( @@ -247,7 +254,7 @@ def puzzle_channel_name(puzzle): round = '-' + puzzle_id_from_name(puzzle['rounds'][0]) meta = '' - if puzzle['type'] == 'meta': + if puzzle.get('type', 'plain') == 'meta': meta = '-m' # Note: We don't use puzzle['puzzle_id'] here because we're keeping