24
Nov

このエントリーで解説している方法では正しく動作しなくなってしまいました(2009年3月25日現在)。
修正対応方法については「バージョンアップ:PRaggerでmixiのマイミク新着日記全文とコメントを取得しRSS化 @ DreamHost」をご覧ください。

  • 「mixiをついつい放置してしまうが、マイミクの日記は読んでおきたい」
  • 「とはいえログインするのもめんどくさいし、RSS Readerで読めないもんかね」
  • 「Yahoo!Pipesのように、GUIでmixiからの情報もRSS化できるサービス(ex. MyRemix)もあるみたいだけど、さすがに見ず知らずのサービスにユーザ情報入力する気にはなれない」

そんなニーズに非常に参考となるエントリーがありました。

mixiの新着日記取得プラグイン(全文・コメント含む) - u-ichiのにっき

というわけで上記を大いに参考にしつつ、私が利用しているサーバ環境(DreamHost)なりの設定を踏まえて作業メモ。

おおまかな流れ

  • PRaggerをインストール
  • RSSパーサ最新版をインストール
  • 設定ファイルとpluginの作成
  • cronに登録

設定後の構成

DremHost環境ではmechanize(0.8.5)がインストール済みでしたが、無い場合には別途インストールしておく必要があります。

CODE:
  1. ~/
  2.    local/
  3.       lib/
  4.          ruby/
  5.             1.8/
  6.    scripts/
  7.       pragger/
  8.          config/
  9.          plugin/
  10.          setup/
  11.          pragger.rb

local/ はDreamHostのユーザ環境にライブラリなど置くためのディレクトリ、scripts/ は雑多なプログラムを突っ込んでおくため適当に作ったディレクトリなので、適宜読み替えてください。

メモ

  • mixi APIの仕様上、残念ながら最新5件しか取得できません
  • 出力されたRSSファイルは、RSS Readerで読むためなどWebアクセス可能な場所にを置く場合、少なくともBasic認証をかけるなり管理には注意が必要です


作業手順

PRaggerをインストール

CODE:
  1. $ cd
  2. $ mkdir scripts
  3. $ cd scripts
  4. $ svn co http://pragger.ikejisoft.com/svn/pragger/trunk/ pragger

RSSパーサ最新版をインストール

現時点でDreamHostにインストール済バージョン(0.1.6)では対応できないそうなので、最新版のRSSパーサをインストールします。

  1. ダウンロード
    CODE:
    1. $ cd ~/TEMP
    2. $ wget http://www.cozmixng.org/~kou/download/rss-0.2.4.tar.gz

  2. 設置
    CODE:
    1. $ tar zxvf rss-0.2.4.tar.gz
    2. $ mkdir -p ~/local/lib/ruby/1.8/
    3. $ cp -R rss-0.2.4/lib/* ~/local/lib/ruby/1.8/

  3. 環境変数の追加
    CODE:
    1. $ echo 'export RUBYLIB="$HOME/local/lib/ruby/1.8"'>> ~/.bash_profile
    2. $ source .bash_profile

設定ファイルとpluginの作成

  1. 設定ファイルを作成
    参考サイトの通り、config以下に2つのファイルを作成し設定します。
    CODE:
    1. config/
    2.    mixi_auth.yaml
    3.    mixi_get_new_diary_list.yaml

  2. plugin本体を設置
    同じく参考サイトの通り、plugin/Feed以下にplugin本体ファイルを設置しますが、そのままではどうやら以下のケースでエラーが発生してしまうようです。
    • マイミクが外部ブログを使っている
    • 最近マイミクの日記にコメントをしていない

    というわけで無理矢理ですが例外処理を加えた mixi_get_new_friend_diary.rb を設置します。

    CODE:
    1. plugin/
    2.    Feed/
    3.       mixi_get_new_friend_diary.rb

実行

ここまでで基本的な設定は完了。以下のコマンドで実行できます。

CODE:
  1. $ cd scripts/pragger/
  2. $ ruby pragger.rb -c config/mixi_get_new_diary_list.yaml

config/mixi_get_new_diary_list.yaml にて設定した通りの場所に、無事にRSSファイルが出力されました。

cronに登録

次に自動で定期実行するためcronに登録します。

ただしcronに上述の実行コマンドを登録しても、環境変数やPRagger内のパス関係を知らないため正しく実行できないので、以下のshスクリプトを作成しておきます。

CODE:
  1. #!/bin/sh
  2. export GEM_HOME="$HOME/.gems"
  3. export GEM_PATH="$GEM_HOME:/usr/lib/ruby/gems/1.8"
  4. export PATH="$HOME/.gems/bin:/usr/lib/ruby/gems/1.8/bin:$PATH"
  5. export RUBYLIB="$HOME/local/lib/ruby/1.8"
  6. cd ~/scripts/pragger
  7. ruby pragger.rb -c config/mixi_get_new_diary_list.yaml

DreamHost環境ではコントロールパネルから、もしくはcrontabコマンドを使って登録することで、めでたく定期的にRSSファイルが出力されるようになりました。

One Response to “PRaggerでmixiのマイミク新着日記全文とコメントを取得しRSS化 @ DreamHost”

[...] 以前書いた「PRaggerでmixiのマイミク新着日記全文とコメントを取得しRSS化 @ DreamHost」の通り、mixiでのマイミク新着日記をRSSリーダで読めるよう設定していたのですが、実はあるときから正しく出力できなくなっていました(2008年12月1日ごろ)。 [...]