Created
September 14, 2019 12:03
-
-
Save AWtnb/7f0139e12146250c7ed6ca6c8c9916ff to your computer and use it in GitHub Desktop.
log work achievement with trello
This file contains 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
/* | |
シートからその日に終わらせた仕事を取得して記録 | |
*/ | |
///////////////////////////////////////////// | |
// グローバル変数 | |
///////////////////////////////////////////// | |
// シート | |
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