Skip to content

Instantly share code, notes, and snippets.

@venetucci
Last active November 25, 2016 07:57
Show Gist options
  • Save venetucci/4a32f895354c7fdc9f7a9fcea7454f45 to your computer and use it in GitHub Desktop.
Save venetucci/4a32f895354c7fdc9f7a9fcea7454f45 to your computer and use it in GitHub Desktop.
function addNewItemToSheet(sheets, params) {
// PROCESS TEXT FROM MESSAGE
var textRaw = String(params.text).replace(/^\s*add\s*:*\s*/gi,'');
var text = textRaw.split(/\s*;\s*/g);
// FALL BACK TO DEFAULT TEXT IF NO UPDATE PROVIDED
var sheetName = text[0] || "";
var title = text[1] || "";
var author = text[2] || "";
var description = text[3] || "";
var link = (text[4] || "").replace("<", "");
var sheet = sheets.getSheetByName(sheetName)
var nR = getNextRow(sheet) + 1;
// RECORD USER NAME IN SPREADSHEET
sheet.getRange('E:E').getCell(nR,1).setValue(params.user_name);
// RECORD UPDATE INFORMATION INTO SPREADSHEET
sheet.getRange('A:A').getCell(nR,1).setValue(title);
sheet.getRange('B:B').getCell(nR,1).setValue(author);
sheet.getRange('C:C').getCell(nR,1).setValue(description);
sheet.getRange('D:D').getCell(nR,1).setValue('=HYPERLINK("' + link + '", "Link")');
var channel = "reading-list";
postResponse(channel,params.user_name, sheetName, title, author, description, link);
}
function listSheetNames(sheets, channelName) {
var sheetNames = sheets.getSheets().map(function(sheet) { return sheet.getName() });
postTopicNamesResponse(channelName, sheetNames.slice(1));
}
function getNextRow(sheet) {
var titles = sheet.getRange("A:A").getValues();
for (i in titles) {
if(titles[i][0] == "") {
return Number(i);
break;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment