はてなブログで読者様からのリアクションとして、
はてなスターをもらえることがあります。
ブログ全体としていくらはてなスターをもらったかは、
ブログの管理ページから確認できるのですが、
いつどのくらいもらったかは分かりません。
実は、はてなブログに登録したアドレスに
レポートを送信する設定をしていれば、
下のようなメールが届きます。
このレポートメールの情報を集計すれば、
はてなスターの推移がわかるということで、
今回はGoogle App Script(GAS)を使って下のようなグラフを作ってみます。
準備
レポート設定のページから、
Gmailに☆レポートを通知するように設定しておきます。
GAS によるレポート集計
GASでレポートメールを集計し、
スプレッドシートに集計結果を保存します。
スクリプト
下は、スプレッドシートのdata
シートに、
メールの日付とレポートされたスターの数を書き込むスクリプトです。
GmailApp.search
で最大200件のメールを読み込んでいますが、
ここは自由に調整してください。
SHEETNAME = "data" function myFunction() { var ans = [["date","★","☆"]] var threads = GmailApp.search("Hatena::S",0,200) for(var i =0;i<threads.length;i++){ var th = threads[i] var message = th.getMessages()[0] var date = message.getDate() var body = message.getBody() var res = body.match("ただいまの☆総数 : .+★([0-9]+) ☆([0-9]+)") if(res != null){ var color = res[1] var normal = res[2] }else{ var res = body.match("ただいまの☆総数 : ([0-9]+)") if(res == null) continue var color = 0 var normal = res[1] } ans.push([date,color,normal]) } var ss = SpreadsheetApp.getActive() var s = ss.getSheetByName(SHEETNAME) s.clear() s.getRange(1, 1,ans.length,3).setValues(ans) }
グラフの描画
上記のスクリプトを実行すると、
スプレッドシートに下のような集計データが保存されます。
あとは「挿入」タブからグラフを挿入して、
グラフのレイアウトを好みに応じて整えれば完成です。
自動更新
グラフを自動的に更新したい場合は、
スクリプトを定期実行して、
グラフを埋め込むようにすればOKです。
詳しくは下記の記事を参照してください。
clean-copy-of-onenote.hatenablog.com
下のグラフは自動更新されるグラフを埋め込んだものです。
まとめ
あまり気に留めてなかった機械的なレポートメールですが、
消さずに残しておくと、
意外と面白いグラフが作れるというのが今回のポイントですね。
他にも眠っているメールで面白いことができないか考えてみたくなります。