先日、ブログLast Day.jpのまたよしれいさんがこんな記事を書いていました。
feedlyの購読者数を毎日集計するスクリプトを公開します。 | Last Day. jp
で、この記事ではLingon3というアプリを使って自動化をしているのですが、今回はそれを使わないでMacのデフォルトの機能だけでやってみようと思います。
目次
自動化する前にちょっとスクリプトを改造
Macのデフォルトの機能だけで自動化する前に、feedlyの購読者数を取得するスクリプトをちょっと改造しました。
@tetokon その辺良くわかってないので、頼むw
— Ray Matayoshi (@Sayobs) 2014, 2月 4
ビックリするぐらいの丸投げです。
沖縄の言葉でこういう先輩からのむちゃぶりを「やっけーしーじゃーぱわー」と言います。
やっけー:やばい
しーじゃー:先輩の
ぱわー:ちから
通称YSPです。機会があれば使ってください。
という訳でれいまたよ氏のスクリプトをいじったのがこちら。
[php]
<?php
date_default_timezone_set(‘Asia/Tokyo’);
if (!(isset($_SERVER[‘HTTP_X_REQUESTED_WITH’])
&& strtolower($_SERVER[‘HTTP_X_REQUESTED_WITH’]) === ‘xmlhttprequest’)
&& (!empty($_SERVER[‘SCRIPT_FILENAME’]) && ‘json.php’ === basename($_SERVER[‘SCRIPT_FILENAME’]))
) {
die (‘直接このファイルを開かないでください。’);
}
//自分のフィードに置き換えてください。
if(!$json = file_get_contents("http://cloud.feedly.com/v3/feeds/feed%2Fhttp%3A%2F%2Ftetokon.com%2Ffeed%2F")) {
$data =array(‘subscribers’ => 0);
} else {
$data = json_decode( $json , true );
}
$subscribers =$data[‘subscribers’];
//自分の環境に置き換えてください。
$file = "/Users/tetokon/Desktop/feedly.csv";
$string = date(‘Y/m/d’). ‘,’ .$subscribers."\n";
$fp = fopen($file , "a");
fwrite($fp , $string);
fclose($fp);
?>
[/php]
feedのURLとファイルの保存先(feedly.csvって書いてあるパス)はご自身の環境に沿って変えてください。変更したら適当な場所に保存してください。
またよしれい氏のコードとの変更点は、出力するファイルの拡張子を.txtから.csvにしたこと。あと出力する日付と購読者数の間の区切り文字をカンマ’,’にしています。
これで出力ファイルがテキストからCSVファイルになるのでNumbersやOpenOfficeなどの表計算ソフトでそのまま開けるので、簡単にグラフにできると思います。
あと、date関数を使うときにタイムゾーンを指定しないと警告がでるので、先頭でdate_default_timezone_set関数を呼んで東京を指定しました。これで警告出なくなりました。
Macのデフォルトの機能だけで自動化する
さて、本題です。Lingon3を使わずに自動化してみます。
まずはさっき作ったPHPをAutomatorで起動するようにします。AutomatorっていうのはMacにデフォルトで入っているアプリで、いろんな処理を自動で行ってくれる凄いやつです。ロボットみたいなアイコンのあれです。
Automatorを起動したら書類の種類をカレンダーアラームにします。これが大事。
▲次にアクションを選びます。
ユーティリティ→シェルスクリプトを実行
を右側のエリアにドラッグします。
▲ドラッグしたシェルスクリプトを実行の中に
/usr/bin/php “さっき保存したPHPスクリプトのファイルパス”
を書きます。
/usr/bin/phpとファイルパスの間に半角スペースを入れるのを忘れないで下さい。
ここまでできたら保存します。
▲こんな画面が出るので適当な前で保存します。
保存するとカレンダーアプリに飛びます。
▲こんな感じで保存した時間に登録されるはず。
▲あとはこの時間を自分が起動したい時間に設定します。この時繰り返しを「毎日」にしておけば毎日起動されます。
Macをスリープから起こす方法
上記までの設定で毎日自動でfeedlyの購読者を取得することができるようになりました。
…が!しかし!
このままではMacがスリープの時は動きません。
なのでスリープしてるMacを起こしてみます。
▲システム環境設定を起動して「省エネルギー」をクリック。
▲次の画面で右下にある「スケジュール」をクリック。
▲ここで「起動またはスリープ解除」を、先ほどカレンダーに登録したAutomatorが起動する時間より少し前に設定します。
で、スリープ解除したあと、またスリープに戻したい場合はその少し後の時間にまたスリープの設定をしたり。
そのあたりはお好みで。
これでMacのデフォルトの機能だけで毎日feedlyの購読者をカウントする事ができるようになりました。
ホントに毎日毎日動かして試したわけではないですが、スリープの状態から勝手に起動して、自動でスクリプトが走って、またスリープに戻るところまでは確認しました。あとは毎日同じ動きを繰り返すだけなので問題ないと思います。
ただ…僕のMacがMountain LionなのでMavericksでは動作確認していません。動くと思いますけど動かなかったらすいません…
まとめ
というわけで流れをまとめます。
1 feedlyの購読者を数えるスクリプトを書く
2 Automatorを使ってスクリプトを起動させる処理を作る
3 作ったAutomatorの処理を自動で実行するようにカレンダーに設定する
4 実行する時間にMacがスリープだったら困るのでスリープから自動で起きる様にする
大体の流れはこんな感じです。
散々書いてきたけどそんな事しなくて良い。そう!WordPressユーザーならね!
ずらずら書いてきた訳ですが、WordPressユーザーのそこのあなたは、こんなめんどくさい事しなくていいのです。
なぜならそういうプラグインがリリースされたから!
Feedly Insight 、稚拙ながら WordPress プラグインをリリースしました。 | ホホ冢次男
またよしれい氏があのスクリプトを公開したその日にこんなプラグインがリリースされるなんて!引きの強さがヤバイですね。さすがです。
という訳で僕が長々と書いてきたこの方法は、MacユーザーかつWordPressじゃない人がお使いください。
もしくは、気になるあの子のfeedly購読者を毎日数えたい方には使えそうですね。もしくは、WordPressユーザーでも、負けたくないあいつの購読者を毎日チェックして自分を奮い立たせるのに使えそうですね。
関連記事
【Mac】Finderから直接写真の回転もできるんだぜ!そうAutomatorならね!