mixi読み逃げ
http://d.hatena.ne.jp/Paul3/20070321/p1
PlaggerでPlanetサイトを作る
いろいろとみていたらRSSを集約したポータルサイト?っぽいのを「Planetほにゃらら」というらしく、それをPlaggerで簡単に作ることができるよ、ってのを知った。そもそもPlanetサイトなんて呼び方は知らなかったんですが、たとえばApacheに関する話題を扱ってるサイト・BlogのRSS/Atomをアグリゲートして表示するサイトのことを「Planetほにゃらら」というらしいです。
http://opentechpress.jp/developer/article.pl?sid=06/09/19/0257203
Planet PlanetというOSSがあるらしいですが、これはPythonで書かれてるらしい。でもこれって、Plaggerの方が簡単じゃん?ってことで、Bundle::Planetというモジュールが入ってるそうです。
早速、
http://blog.livedoor.jp/hakin/archives/50718352.html
あたりを参考に試してみることにしました。
そういえば、まだApacheをインストールしていなかったので、Apacheをインストールしておくことに。Plaggerの出力結果がhtmlなら、ブラウザで見たいじゃないですか。いつもならソースからmakeするところですが、後々の管理も楽にするために、ここはyumでインストールすることに。
#yum -y install httpd
=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
httpd i386 2.0.52-28.ent.centos4 base 888 k
Installing for dependencies:
apr i386 0.9.4-24.5.c4.2 base 88 k
apr-util i386 0.9.4-21 base 51 k
httpd-suexec i386 2.0.52-28.ent.centos4 base 28 k
Apacheの起動
#/etc/rc.d/init.d/httpd start
httpd.confは
/etc/httpd/conf/httpd.conf
global:
assets_path: /root/plagger/assets
timezone: Asia/Tokyo
plugins:
- 適当なFeedを取得してくるプラグインを書く・・・
- module: Bundle::Planet
config:
duration: 14 days
title: Planet Test
description: Planet Test
dir: /var/www/html/planet/
url: http://192.168.1.14/planet-wiki/
theme: sixapart-std
stylesheet: http://example.com/planet-wiki/css/styles.css
しゃかしゃかと実行したあと、
Plagger::Template [debug] Assets path: /root/plagger/assets/plugins/Publish-Planet:/root/plagger/assets/common
Plagger::Plugin::Publish::Planet [info] Save Planet HTML to /var/www/html/planet/index.html
Plagger::Plugin::Publish::Planet [debug] Assets Directory: /root/plagger/assets/plugins/Publish-Planet
Plagger::Plugin::Publish::Feed [info] save feed for http://192.168.1.14/planet-wiki/ to /var/www/html/planet/atom.xml
Plagger::Plugin::Publish::Feed [info] save feed for http://192.168.1.14/planet-wiki/ to /var/www/html/planet/rss.xml
Plagger::Template [debug] Assets path: /root/plagger/assets/plugins/Publish-OPML:/root/plagger/assets/common
Plagger::Plugin::Publish::OPML [info] Writing OPML to /var/www/html/planet/subscriptions.opml
Plagger::Template [debug] Assets path: /root/plagger/assets/plugins/Publish-FOAFRoll:/root/plagger/assets/common
Plagger::Plugin::Publish::FOAFRoll [info] Writing FOAFRoll to /var/www/html/planet/foafroll.xml
って感じでPlanetサイト用のファイルが作成されてるのがわかる。ブラウザでアクセスしてみたら、うまいことそれっぽいのが作成されてたよ。スタイルシートは適当にいじってあげる必要がありそうです。
これで定期的にPlagger実行→Planetサイト更新ってのができそうです。社内でたててみようかな。Feedの登録をできれば外からできるようなインターフェイスがほしいのと、Plaggerで実行→Planetサイト更新を(S)FTPか何かでできると便利ですね。あ、これはPlaでなくてもbashで書けばいいか。
Plaggerが動いた
いろいろ調べてみると、みんなPlaggerのインストールで苦労してるみたいですね。こりゃあ俺も先が思いやられるかな・・・と思いつつ、先日インストールしたPlaggerを実行してみることに。
まずは定番、ってことでmixiのマイミクさんの日記をGmailに送信する。
こんなconfigを書いてみる。
global:
assets_path: /root/plagger/assets
timezone: Asia/Tokyo
plugins:
- module: CustomFeed::Mixi
config:
email: *********
password: *********
fetch_body: 1
show_icon: 1
- module: Publish::Gmail
config:
mailto: *********
mailfrom: plagger@localhost
mailroute:
via: smtp_tls
host: smtp.gmail.com:587
username: *********
password: *********
*********の部分は自分の環境に合わせて書き換える。早速実行してみたけど、エラーが出てうまく動かない模様。
YAML Error: Invalid element in map
Code: YAML_LOAD_ERR_BAD_MAP_ELEMENT
Line: 6
Document: 1
at /usr/lib/perl5/site_perl/5.8.5/YAML.pm line 33
config.yaml中のインデントは正確に記述しないと駄目っぽい。私はconfig.yamlはWindows上のテキストエディタで編集して、Puttyでコピペして編集してる。ネットで調べながらいろいろいじってみる。はまったところは以下のところ。
○インデントは半角スペースで。TABはだめ。
○インデントの数をきちんとそろえる。半角スペース2個で。
○「- module」のところ、「-」と「module」の間にはスペース1個。
これで実行してみる。
[root@localhost ~]# plagger -c config.yaml
Plagger [info] plugin Plagger::Plugin::CustomFeed::Mixi loaded.
Plagger [info] plugin Plagger::Plugin::Publish::Gmail loaded.
Plagger [info] Rewrote 2 password(s) and saved to config.yaml
Plagger [info] plugin Plagger::Plugin::Bundle::Defaults loaded.
Plagger [info] plugin Plagger::Plugin::Aggregator::Simple loaded.
Plagger [info] plugin Plagger::Plugin::Summary::Auto loaded.
Plagger [info] plugin Plagger::Plugin::Summary::Simple loaded.
Plagger [info] plugin Plagger::Plugin::Namespace::HatenaFotolife loaded.
Plagger [info] plugin Plagger::Plugin::Namespace::MediaRSS loaded.
Plagger [info] plugin Plagger::Plugin::Namespace::ApplePhotocast loaded.
Plagger::Plugin::CustomFeed::Mixi [debug] Cookie not found. Logging in
Plagger::Plugin::CustomFeed::Mixi [info] fetch 23 entries
なんか上手くいったっぽい。Gmailで確認してみると、おおっ、メールが届いてる!でも中身が空っぽです。
そうか、テンプレートの類はPlaggerインストールしてもコピーはされないので、assetsパスにコピーしてあげる必要があるとのこと。
cp -pr /root/.cpan/build/Plagger-0.7.17/assets/plugins/ plagger/assets/
これで上手くいった。それにしてもPlagger関係のまとまったテキストってのが無い。公式サイトが英語だから?Perl使いを対象にしてるから初心者向けの説明は不要だから?
![]() | Web API マッシュアップブック 関 正秀、加藤 貴之 他 (2006/11) 毎日コミュニケーションズ この商品の詳細を見る |
Plaggerインストール(その1)
○環境:WinXP上でVMwareWorkStationを動作させ、CentOS4をインストール。yumでパッケージを最新にして直後。Plaggerが動くようになるまでのメモ。
Perlのバージョン:
[root@localhost ~]# perl -v
This is perl, v5.8.5 built for i386-linux-thread-multi
1)CPANをセットアップ
#cpan
2)Bundle::CPANをインストール
cpan>install Bundle::CPAN
3)とりあえず様子をみてみる
cpan>test Plagger
[Core Features]
- YAML ...loaded. (0.62)
- YAML::Loader ...loaded. (0)
- Test::More ...loaded. (0.65 >= 0.42)
- Test::Base ...loaded. (0.52 >= 0.52)
- Class::Accessor::Fast ...missing.
- File::Find::Rule ...missing.
- UNIVERSAL::require ...missing. (would need 0.1)
- Template ...missing. (would need 2.13)
- Template::Provider::Encoding ...missing. (would need 0.04)
- YAML ...loaded. (0.62 >= 0.39)
- Text::Tags ...missing.
- DateTime ...missing. (would need 0.35)
- DateTime::TimeZone ...missing. (would need 0.56)
- DateTime::Locale ...missing. (would need 0.32)
- DateTime::Format::Mail ...missing.
- DateTime::Format::W3CDTF ...missing.
- DateTime::Format::Strptime ...missing.
- Digest::MD5 ...loaded. (2.33)
- LWP ...loaded. (5.79)
- HTML::Parser ...missing. (would need 3.51)
- URI::Fetch ...missing. (would need 0.071)
- Cache::Cache ...missing. (would need 1.04)
- Module::Pluggable::Fast ...missing.
- HTML::ResolveLink ...missing.
- Date::Parse ...missing.
- MIME::Types ...missing. (would need 1.16)
- Net::DNS ...missing.
- XML::Feed ...missing. (would need 0.12)
- XML::LibXML ...loaded. (1.58)
- XML::Atom ...missing. (would need 0.23)
- XML::RSS::LibXML ...missing. (would need 0.23)
- Encode ...missing. (would need 2.1)
- Term::Encoding ...missing.
- File::HomeDir ...loaded. (0.64)
==> Auto-install the 25 mandatory module(s) from CPAN? [y]
Yesで自動インストールを2回くらい実行してみたが、どこかでエラーになっているようで再度test Plaggerしてみても、状況が変わらない。とりあえずの策として、上記で「missing」となっているモジュールを個別にインストールしてみた。
install Class::Accessor::Fast
・・・(以下略)
いくつかエラーで失敗しているのもあるが、とりあえず最後までインストールしてみる。再度test Plaggerしてみると・・・
*** Checking for Perl dependencies...
[Core Features]
- YAML ...loaded. (0.62)
- YAML::Loader ...loaded. (0)
- Test::More ...loaded. (0.65 >= 0.42)
- Test::Base ...loaded. (0.52 >= 0.52)
- Class::Accessor::Fast ...loaded. (0.30)
- File::Find::Rule ...loaded. (0.30)
- UNIVERSAL::require ...loaded. (0.11 >= 0.1)
- Template ...loaded. (2.18 >= 2.13)
- Template::Provider::Encoding ...loaded. (0.07 >= 0.04)
- YAML ...loaded. (0.62 >= 0.39)
- Text::Tags ...loaded. (0.04)
- DateTime ...loaded. (0.36 >= 0.35)
- DateTime::TimeZone ...loaded. (0.63 >= 0.56)
- DateTime::Locale ...loaded. (0.34 >= 0.32)
- DateTime::Format::Mail ...loaded. (0.30)
- DateTime::Format::W3CDTF ...loaded. (0.04)
- DateTime::Format::Strptime ...loaded. (1.0700)
- Digest::MD5 ...loaded. (2.33)
- LWP ...loaded. (5.79)
- HTML::Parser ...loaded. (3.56 >= 3.51)
- URI::Fetch ...loaded. (0.08 >= 0.071)
- Cache::Cache ...loaded. (1.05 >= 1.04)
- Module::Pluggable::Fast ...loaded. (0.18)
- HTML::ResolveLink ...loaded. (0.05)
- Date::Parse ...loaded. (2.27)
- MIME::Types ...loaded. (1.18 >= 1.16)
- Net::DNS ...loaded. (0.59)
- XML::Feed ...loaded. (0.12 >= 0.12)
- XML::LibXML ...loaded. (1.62)
- XML::Atom ...loaded. (0.25 >= 0.23)
- XML::RSS::LibXML ...loaded. (0.23 >= 0.23)
- Encode ...loaded. (2.18 >= 2.1)
- Term::Encoding ...loaded. (0.02)
- File::HomeDir ...loaded. (0.64)
[Better Encoding detection]
- Encode::Detect ...missing. (would need 1)
==> Auto-install the 1 optional module(s) from CPAN? [n]
PlaggerのCore FeaturesはOKっぽいので、cpanからインストールしてみる。
オプションモジュールについては、デフォルト設定のままでインストールしてみた。
cpan> install Plagger
・・・
Installing /usr/bin/plagger
Installing /usr/bin/plagger-ircbot
Writing /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/auto/Plagger/.packlist
Appending installation info to /usr/lib/perl5/5.8.5/i386-linux-thread-multi/perllocal.pod
/usr/bin/make install -- OK
Failed during this command:
AVIF/Time-Duration-1.04.tar.gz : make_test NO
・・・うまくいったのか?
[root@localhost ~]# plagger -v
Plagger version 0.7.17
とりあえず今日はここまで。次回はインストールが正常にできてるかどうか、簡単なサンプルを動かしてためしてみるつもり。



