Created
August 6, 2015 18:51
-
-
Save jjelosua/7187ad07a378905d7711 to your computer and use it in GitHub Desktop.
documentCloud helper google script
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*********************************************************************************** | |
// Author: Juan Elosua (Twitter: @jjelosua) | |
// Description: Google Apps Script associated with Doc2Media spreadsheet template | |
// to get Data From DocumentCloud and prepopulate data in the required final sheet format. | |
************************************************************************************/ | |
var DC_SHEET = "doc2Media"; | |
var DC_URL_HEADER_CELLS = "A1:B1"; | |
var DC_URL_CELL = "A2"; | |
var COMMENTS_CELL = "B2"; | |
var DC_URL_HEADERS = [["DocumentCloud URL", "Comments"]]; | |
var doc2media_COMMENT = "Copy the URL from the document cloud document here\nExample: https://www.documentcloud.org/documents/1678993-garrido.html"; | |
var doc2media_HEADERS_RANGE = "A1:I1"; | |
var doc2media_HEADERS = [["page","annotation","annotation_title", "tag","index_text","media_label","media_type", "media_source", "media_html_content"]]; | |
// Create a custom menu to access the script functionality | |
function onOpen() { | |
var ui = SpreadsheetApp.getUi(); | |
// Or DocumentApp or FormApp. | |
ui.createMenu('GetDocumentCloudData') | |
.addItem('Get Data', 'get_dc_data') | |
.addSeparator() | |
.addItem('Enter data manually', 'manual') | |
.addItem('Reset Sheet', 'reset') | |
.addToUi(); | |
} | |
function get_dc_data() { | |
// Get the parameters sheet | |
var ss = SpreadsheetApp.getActiveSpreadsheet(); | |
var dc_sheet = ss.getSheetByName(DC_SHEET); | |
var site_url = dc_sheet.getRange(DC_URL_CELL).getValue(); | |
var url = site_url.toString().replace(".html",".json"); | |
var response = UrlFetchApp.fetch(url); | |
var json = response.getContentText(); | |
var data = JSON.parse(json); | |
var annotations | |
clear_sheet(); | |
//Add header | |
dc_sheet.getRange(doc2media_HEADERS_RANGE) | |
.setValues(doc2media_HEADERS) | |
.setBackgroundRGB(0, 0, 0) | |
.setHorizontalAlignment("center") | |
.setFontColor("white") | |
.setFontWeight("bold"); | |
var annotations = data.annotations; | |
for (var i in annotations) { | |
dc_sheet.appendRow([annotations[i].page, annotations[i].id, annotations[i].title]); | |
} | |
} | |
function clear_sheet() { | |
var ss = SpreadsheetApp.getActiveSpreadsheet(); | |
var dc_sheet = ss.getSheetByName(DC_SHEET); | |
dc_sheet.clear(); | |
} | |
function reset() { | |
clear_sheet(); | |
var ss = SpreadsheetApp.getActiveSpreadsheet(); | |
var dc_sheet = ss.getSheetByName(DC_SHEET); | |
//Restore headers | |
dc_sheet.getRange(DC_URL_HEADER_CELLS) | |
.setValues(DC_URL_HEADERS) | |
.setBackgroundRGB(0, 0, 0) | |
.setHorizontalAlignment("center") | |
.setFontColor("white") | |
.setFontWeight("bold"); | |
//Restore comment | |
dc_sheet.getRange(COMMENTS_CELL) | |
.setValue(doc2media_COMMENT); | |
} | |
function manual() { | |
clear_sheet(); | |
var ss = SpreadsheetApp.getActiveSpreadsheet(); | |
var dc_sheet = ss.getSheetByName(DC_SHEET); | |
dc_sheet.getRange(doc2media_HEADERS_RANGE) | |
.setValues(doc2media_HEADERS) | |
.setBackgroundRGB(0, 0, 0) | |
.setHorizontalAlignment("center") | |
.setFontColor("white") | |
.setFontWeight("bold"); | |
dc_sheet.autoResizeColumn(9); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment