+ # First create the new sheet
+ new_sheet = sheets_create(turb, puzzle['name'])
+
+ # Insert some useful links into the sheet
+ url_link=''
+ if 'url' in puzzle:
+ url_text = "Original puzzle is at: {}".format(puzzle['url'])
+ url_link = puzzle['url']
+ else:
+ url_text = ''
+
+ channel_url_link = ''
+ if 'channel_url' in puzzle:
+ channel_url_text = "Discussion for this puzzle is at: {}".format(
+ puzzle['channel_url'])
+ channel_url_link = 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': [
+ ['=HYPERLINK("'+url_link+'","'+url_text+'")'],
+ ['=HYPERLINK("'+channel_url_link+'","'+channel_url_text+'")']
+ ]
+ }).execute()
+
+ # Copy some sheets from the Template spreadsheet
+
+ response = turb.sheets.get(spreadsheetId=PUZZLE_TEMPLATE_ID).execute()
+
+ for sheet in response["sheets"]:
+ if sheet["properties"]["title"] in PUZZLE_TEMPLATE_SHEETS:
+ turb.sheets.sheets().copyTo(spreadsheetId=PUZZLE_TEMPLATE_ID,
+ sheetId=sheet["properties"]["sheetId"],
+ body={
+ "destinationSpreadsheetId":
+ new_sheet['id']
+ }).execute()
+
+ return new_sheet
+
+def renameSheet(turb, url, newName):
+ id = extractIdFromSheetUrl(url)
+ requests = []
+ requests.append({
+ 'updateSpreadsheetProperties': {
+ 'properties': {
+ 'title': newName
+ },
+ 'fields': 'title'