]> git.cworth.org Git - turbot/commitdiff
Add some links to the puzzle sheet when originally creating it
authorCarl Worth <cworth@cworth.org>
Fri, 23 Oct 2020 14:18:31 +0000 (07:18 -0700)
committerCarl Worth <cworth@cworth.org>
Fri, 23 Oct 2020 14:40:15 +0000 (07:40 -0700)
Linking both to the original puzzle as well as to the slack channel.

turbot/events.py
turbot/sheets.py

index 8d70a21d45634053ddd836ce5a98a1059806667e..0a1eb099e8d3744782bd665be10f11ac03849799 100644 (file)
@@ -243,10 +243,11 @@ def puzzle_channel_created(turb, puzzle_channel_name, puzzle_channel_id):
     # and Slack retries the event, that next event will see this 'pending'
     # string and cleanly return (eliminating all future retries).
     item['sheet_url'] = 'pending'
+    item['channel_url'] = channel_url(puzzle_channel_id)
     puzzle_table.put_item(Item=item)
 
     # Create a sheet for the puzzle
-    sheet = turbot.sheets.sheets_create_for_puzzle(turb, item['name'])
+    sheet = turbot.sheets.sheets_create_for_puzzle(turb, item)
 
     # Update the database with the URL of the sheet
     item['sheet_url'] = sheet['url']
index f2a9681f7c7483593d6cfad973076dadf802c61e..fbe9e3d7839d2e52a64d43f471a444efa1869fe3 100644 (file)
@@ -27,13 +27,38 @@ def sheets_create(turb, name):
         'url': new_sheet["spreadsheetUrl"]
     }
 
-def sheets_create_for_puzzle(turb, name):
+def sheets_create_for_puzzle(turb, puzzle):
     """Creates a new sheet for a puzzle of the given name
 
-    Like sheets_create(), but also copies the puzzle template sheet."""
+    Like sheets_create(), but also copies the puzzle template sheet.
+
+    Here, 'puzzle' is a dict that must have a 'name' key and may optionally
+    have a 'channel_url' or 'url' key."""
 
     # First create the new sheet
-    new_sheet = sheets_create(turb, name)
+    new_sheet = sheets_create(turb, puzzle['name'])
+
+    # Insert some useful links into the sheet
+    if 'url' in puzzle:
+        url_text = "Original puzzle is at: {}".format(puzzle['url'])
+    else:
+        url_text = ''
+
+    if 'channel_url' in puzzle:
+        channel_url_text = "Discussion for this puzzle is at: {}".format(
+            puzzle['channel_url'])
+    else:
+        channel_url_text = ''
+
+    turb.sheets.values().append(
+        spreadsheetId=new_sheet['id'],
+        range='A1:A2',
+        valueInputOption='USER_ENTERED',
+        insertDataOption='INSERT_ROWS',
+        body={
+            'range': 'A1:A2',
+            'values': [[url_text], [channel_url_text]]
+        }).execute()
 
     # Copy some sheets from the Template spreadsheet