Skip to content

Instantly share code, notes, and snippets.

@AWtnb
Created September 14, 2019 12:03
Show Gist options
  • Save AWtnb/7f0139e12146250c7ed6ca6c8c9916ff to your computer and use it in GitHub Desktop.
Save AWtnb/7f0139e12146250c7ed6ca6c8c9916ff to your computer and use it in GitHub Desktop.
log work achievement with trello
/*
シートからその日に終わらせた仕事を取得して記録
*/
/////////////////////////////////////////////
// グローバル変数
/////////////////////////////////////////////
// シート
var SHEET_ID = PropertiesService.getScriptProperties().getProperty("SHEET_ID");
var sht = SpreadsheetApp.openById(SHEET_ID).getSheets();
var WEBHOOK_URL = PropertiesService.getScriptProperties().getProperty("WEBHOOK_URL");
/////////////////////////////////////////////
// 事前処理関数
/////////////////////////////////////////////
// IFTTTのタイムスタンプをyyyy/mm/dd hh:mm形式に整形する関数
function getDateFromTimestamp(timestamp) {
var m = timestamp.match(/[A-Z][a-z]+ (\d{1,2})\, \d{4} at \d{1,2}:\d{1,2}[AP]M/);
var date = m[1];
date = ("0" + date).slice(-2);
return date;
}
// 今日のログを集約してする関数
function getSummary () {
var achieved = [];
var maxRow = sht[0].getLastRow();
var data = sht[0].getRange(1, 1, maxRow, 2).getValues();
var lastTimestamp = data[(maxRow - 1)][0];
var lastLogDate = getDateFromTimestamp(lastTimestamp);
for (var r = (maxRow -1); r >= 0; r--) {
var dateStr = getDateFromTimestamp(data[r][0]);
if (dateStr != lastLogDate) {
break;
}
achieved.unshift((data[r][1]).replace(/\s/g, ""));
}
return achieved;
}
/////////////////////////////////////////////
// 投稿内容の処理
/////////////////////////////////////////////
function postAsBot (msg) {
var payload = {
"text":msg
}
var options = {
"method" : "POST",
"payload": JSON.stringify(payload)
}
UrlFetchApp.fetch(WEBHOOK_URL, options);
}
// POST リクエストに対応する処理
function doPost(e) {
var workLog = getSummary();
var msg = "you achieved nothing...";
if (workLog.length > 0) {
msg = workLog.join(" ");
}
postAsBot(msg);
return ContentService.createTextOutput();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment