トップ 最新 追記
RSS feed

ただのにっき


2018-03-11(日) [長年日記]

ミリシタイベント プラチナスターシアター「星屑のシンフォニア」(ミルキーウェイ)

32193pt 43003位

36,000ptまで行けそうになかったので最終日は軽く流しておいたら、ちょっと危ない感じのランクになってしまった。セーフだけど。終盤伸びたのかな。怖い怖い。

コミュで天空騎士団の精鋭部隊に笑ってしまった。グリマス終了まで約1週間になって、「おれたちのミリオン」がミリシタに復活しつつある感(笑)。あと、黒井社長が美希にアプローチすると、いまだにちょっと胸騒ぎがしてしまう自分の心理が面白い(SPなんてもう10年も前の記憶である)。

B00SVMMOGC


2018-03-10(土) [長年日記]

川崎 2-0 G大阪@等々力陸上競技場

川崎サポになったミッフィー

今日のイベントは(恒例の)動物園だったんだけど、なぜかミッフィーとコラボしていて(動物園……?)、ユニを着たミッフィーが試合前と後に出てきてた。シュール。これがキティちゃんだったらそんなに違和感ないんだけど(笑)。

後半になってから晴れ間が

試合の方は点差以上に実力差があって、ガンバはシュートに至る攻撃すらほとんどないありさまで、いったいどうしちゃったの??? という感じだった。こっちはほぼ好きなようにやれていて、ボールを奪われてもすぐに取り返すし、パスは出せば必ず通るくらいの感覚。

見ごたえのある試合とはとうてい言えないが、楽に勝てて良かった……かなぁ。これで変に調子を崩されても困るが。

Tags: frontale

2018-03-09(金) [長年日記]

Google SpreadsheetとGASでSlackボットを作った

今日からモバマスでフェスなんだけど、フェスにかぎらず開催時刻が決まってるイベントはついつい忘れる(という話が複数のわさますメンバから出る。老いは万人に等しくやってくる)。ここ数回は手動でSlackにリマインダを設定していたんだけど*1、さすがに面倒なのでbotを作ることにした。指定した時刻に適当なメッセージを投稿してくれる簡素なヤツで良い。

こういう、以前ならサーバを建ててcronを回して……みたいな用途のプログラムは、いまならGoogle SpreadsheetとGoogle Apps Script (GAS)で充分になってて、いい時代に生きてるなぁって思うね。

というわけで、こんなシートを作成して*2:

2018/03/08 22:00【これはテストです】アイプロ終了まで残り1時間です!
2018/03/09 15:00ffdy
2018/03/09 20:00ffdy

スクリプトはこう:

function triggerEvent() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var now = new Date();
  for (var i = 0; i <data.length; i++) {
    var task = data[i];
    var trigger = new Date(task[0]);
    if (task[2] != 'done' && now >= trigger) {
      notifySlack(task[1], '#general', 'Chihiro', ':chihiro:');
      sheet.getRange(i+1, 2+1).setValue('done');
    }
  };
}

function notifySlack(message, channel, username, icon_emoji) {
  var webhookUrl = 'https://hooks.slack.com/services/XXXXX/XXXXX/XXXXX';
  var payload = {
    'text': message,
    'channel': channel,
    'username': username,
    'icon_emoji': icon_emoji
  };
  var opts = {
    "method": "post",
    "contentType": "application/json",
    "payload" : JSON.stringify(payload)
  };
  var res = UrlFetchApp.fetch(webhookUrl, opts);
  return JSON.stringify(res);
}

なおカスタム絵文字で「:chihiro:」は定義済み。で、1分間隔*3で回すようにtriggerEvent関数を実行するようにトリガーを設定する。と、時間がきたらちひろ様からありがたいメッセージが投下される:

Chihiro: 【これはテストです】アイプロ終了まで残り1時間です!

処理済みのエントリは3カラム目に「done」が記入される。めでたしめでたし。

スクリプトがバージョン管理できないのが厳しいなぁと思ったが、Chrome拡張でGitHubと同期してくれる「Google Apps Script Github アシスタント」というのがあるようだ。あとで使ってみよう。

*1 通常のコミュニケーションはmassr上でおこなっているが、もっぱらbotのためにSlackも併用している。

*2 「ffdy」は「フェスフェスダヨー」と読みます。「フェスが始まってるよ」という意味の隠語。

*3 今回の用途なら、しばらく運用して安定してるようなら10分間隔にしてもOK。


トップ 最新 追記
RSS feed