Edited at

Atom.ioで公開しているパッケージのダウンロード数をGoogleAppsScriptで可視化する

More than 3 years have passed since last update.

最近Atomのパッケージを何個か作って公開しています。

nobuhito's Packages

Atom内からもパッケージの検索ができるので特に宣伝しなくてもダウンロード数が増えたりするのですが、なんでも可視化したい可視化坊としては増えていく推移を見ながらニヤニヤしたくなるわけですね。

ということで、手っ取り早くGoogleSpreadsheetとGoogleAppsScriptで実装してみました。

まず事前準備として、適当な名前でSpreadsheetを作成して「ツール > スクリプトエディタ...」を選択して「空のプロジェクトを作成」でプロジェクトを作成。

開いたScriptEditorの「コード.js」に以下のコードを貼り付ける。

function main() {

var api = "https://atom.io/api";
var sheet = SpreadsheetApp.getActiveSheet();
var lastCol = sheet.getDataRange().getLastColumn();
if (lastCol > 1) {
sheet.insertRowAfter(1);
var datetime = Utilities.formatDate(new Date(), 'JST', 'yyyy/MM/dd HH:mm');
sheet.getRange(2, 1).setValue(datetime);
for (i=2; i <= lastCol; i++) {
var packageName = sheet.getRange(1, i).getValue();
var json = JSON.parse(UrlFetchApp.fetch(api + "/packages/" + packageName));
sheet.getRange(2, i).setValue(json["downloads"]);
}
}
}

「ファイル > 保存」を選択して適当な名前で保存。

「リソース > 現在のプロジェクトのトリガー」を選択して、main関数を任意の時間で起動するように設定。

ScriptEditorを閉じてSpreadsheetに戻り、1行目のB列以降にパッケージの名前を列挙。

そして、指定した時間待つとどんどんデータが入ってくるはずですので、適当にグラフを作るとこんな感じになります。

グラフの公開も含めてお手軽すぎて涙が出てきそうですね。