はてなブログで購読してるブログをReederで読む方法

はてなブログで購読しておくと、毎朝更新内容をメールしてくれるけど、メールじゃなくてReederで読めるようにしたかったので、そのための仕組みを作ってみた。

 

 

処理の流れは以下のとおり。

 

  1. はてなブログで購読中のブログ一覧を取得する
  2. ブログのフィードをFeedlyに登録する

 

ReederはFeedlyに対応してるので、Feedlyにブログのフィードを登録しておくと、Reederで読めるようになる。crontabでFeedlyへの登録処理を回してやって、新しく購読したブログのフィードが自動的にFeedlyに登録されるようにすることで、購読したものがReederで読めるようになる。

 

はてなブログで購読中のブログ一覧を取得する

はてなブログは購読中のブログを取得するようなAPIを公開してないみたいなので、CasperJSを使ってスクレイピングした。CasperJSは綺麗に書けて良いと思う。

 

はてなブログで購読中のrssを取得する

 

ブログのフィードをFeedlyに登録する

FeedlyのPOST APIをサポートしてるライブラリがなかったのでライブラリを作った。

 

https://github.com/kmdsbng/feedly

 

まだ実装してないAPIがいっぱいあるけど、とりあえず認証してフィードを登録することはできる。

FeedlyAPIを使うには、FeedlyのAccess Tokenを入手しないといけない。

Access Tokenを入手するための認証プログラムをサンプルに含めた。

https://github.com/kmdsbng/feedly/blob/master/sample/get_token.rb

実行して指示に従うと、Access Tokenを入手できる。以下の様なかんじ。

 

% ruby get_token.rb
1. Access this url. Then redirect https://cloud.feedly.com/feedly.html?code=???&status= .
https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=5348905598... # このURLにアクセスすると、googleのログインページに飛んで、最後にcloud.feedly.comに飛ばされる。そのクエリパラメータにcodeがセットされてる
2. Please input code
> AQAAO7N7InAiOjE... # 1. で入手したcodeを入力する
OK. success to get tokens
access_token: AQAAUkN7I...  # Access Tokenが表示される

 

 Feedlyにフィードを登録するスクリプトはこんな感じ。

 

gist8158609

 

crontabから、これらをパイプでつないだ 処理を実行する。

 

0 * * * * cd $HOME/work/register_feedly; casperjs get_hatena_blog_subscribe_list.coffee | ruby register_to_feedly.rb

 

 これで、はてなブログで購読したら自動でFeedlyに登録されるようになります。

f:id:kmdsbng:20131228210707p:plain

 

 登録されてますね。

 

最高に簡単にwebサーバが書けるRubyのライブラリ作った

最高に簡単にwebサーバが書けるRubyのライブラリを作った。

 

webio

https://github.com/kmdsbng/webio

 

コンソールでデータを受け取って回すのと同じ労力でWebアプリ作るみたいなことがしたかった。

 

例えばこういうコードが動く。

 

getting started webio sample

 

これを走らせておいて、ブラウザで http://localhost:9999/World にアクセスできる。

結構面白いんじゃないかと思う。

 

今は実装スカスカなので、IOの要件満たすくらいに実装進めたい。

 

tmuxinatorが便利

tmuxinatorは、tmuxを起動したときの動作を設定できるアプリケーション。

ウインドウ0はエディタを起動して、ウインドウ1はmysqlクライアントを起動して、みたいな設定ができる。

tmuxinatorを使えば開発環境用に各ウインドウに役割分担させた状態で起動する、というようなことが実現できる。

 

 

tmuxinatorで一瞬で開発環境を起動する

http://qiita.com/naoty_k/items/869b00fdde27c2225989

 

インストール方法、設定方法はこの記事が詳しい。

ただ、Cent OS6だと、sudo yum install tmux すると tmux 1.6がインストールされてしまうが、tmuxinator の最新バージョン 0.6.6 は、tmux 1.8以降でないと使えない。

 

ソースからtmuxの最新版をインストールする方法はこの記事が詳しい。

http://d.hatena.ne.jp/naokton/20130811/1376232103

 

以前からやりたかった、自動化が簡単に実現してしまった。ありがたいです!

 

tmuxinator

https://github.com/aziz/tmuxinator