Skip to content

Instantly share code, notes, and snippets.

@alaq
Created May 18, 2017 21:18
Show Gist options
  • Save alaq/7056162ea9b3fe5afb71c06e26357488 to your computer and use it in GitHub Desktop.
Save alaq/7056162ea9b3fe5afb71c06e26357488 to your computer and use it in GitHub Desktop.
Will scrape from your daily Workflowy summary emails the number of nodes created, changed or competed. For easy charting.
function WorkflowyStats() {
var emails = GmailApp.search('from:help@workflowy.com from:help@workflowy.com subject:your history');
var body = emails[0].getMessages()[emails[0].getMessages().length-1].getPlainBody();
bodysplit = body.split('------------------------------')[2].split(')')[0];
// to match every string of digits, see better solution below
// var values = bodysplit.match(/\d+/g);
var regExpCompleted = new RegExp("\\d+(?= completed)", "g");
var regExpCreated = new RegExp("\\d+(?= created)", "g");
var regExpChanged = new RegExp("\\d+(?= changed)", "g");
var value1 = regExpCompleted.exec(bodysplit);
var value2 = regExpCreated.exec(bodysplit);
var value3 = regExpChanged.exec(bodysplit);
if (value1 == null){
var completed = 0;
} else {
var completed = value1[0];
}
if (value2 == null){
var created = 0;
} else {
var created = value2[0];
}
if (value3 == null){
var changed = 0;
} else {
var changed = value3[0];
}
Logger.log(completed);
Logger.log(created);
Logger.log(changed);
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Workflowy");
// sheet.appendRow([new Date(), values[0],values[1],values[2]]);
sheet.appendRow([new Date(), completed, created, changed]);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment