_RJ 技術メモ

人生を豊かにする技術を提供する、筋肉

人生の残り時間と一年の残り時間を定期的にSlackに通知する

GoogleAppsScript Slack slackbot JavaScript ライフハック

プログラムについて

人生の時間を大切にする為に、来年までの残りの時間日数月数と、人生の時間日数月数年数を定期的に通知する。また意識を高めるためにタイマーを8時間に設定。

スクリーンショット 2017-03-30 1.59.28.png

ソースコードの使い方

  • 時間操作はMomentのライブラリを導入 (プロジェクトキー: MHMchiX6c1bwSqGM1PZiW_PxhMjh3Sh48)
  • 誕生日(birthday)と予想寿命(lifespan)を入力する
  • xoxp-xxxxxxxxxxxxxxxxxxxxxxにはSlackのAccessTokenを入力する
  • lifespanチャンネルを事前に作成しておく
  • トリガーを8時間に設定して、定期的に通知する
function myFunction() {
  var birthday = '1980/1/1';
  var lifespan = 80;

  var now = Moment.moment();
  var end = Moment.moment(birthday).add('years', lifespan);
  var nextYear = Moment.moment(Moment.moment().add('years', 1).get('year') + '/1/1');
  
  var message = '';
  message += '来年までの残り時間はあと *' + -now.diff(nextYear, 'hours') + '時間* です\n';
  message += '来年までの残り日数はあと *' + -now.diff(nextYear, 'days') + '日* です\n';
  message += '来年までの残り月数はあと *' + -now.diff(nextYear, 'month') + 'ヶ月* です\n\n';
  message += '人生の残り時間はあと *' + -now.diff(end, 'hours') + '時間* です\n';
  message += '人生の残り日数はあと *' + -now.diff(end, 'days') + '日* です\n';
  message += '人生の残り月数はあと *' + -now.diff(end, 'month') + 'ヶ月* です\n';
  message += '人生の残り年数はあと *' + -now.diff(end, 'years') + '年* です\n';
  message += '--------------------';

  postSlack('xoxp-xxxxxxxxxxxxxxxxxxxxxx', 'lifespan', 'lifespan-bot', message);
}

function postSlack(token, channel, username, text) {
  var url = 'https://slack.com/api/chat.postMessage?token=' + token + '&channel=' + channel + '&username=' + username + '&text=' + encodeURIComponent(text);
  response = UrlFetchApp.fetch(url).getContentText("UTF-8");
}

おわりに

通知を見るたび、一年と人生の残り時間はとても短いことに気づかされる。