- Plagger
- 注意
- 解説
- 主な特徴
- FreeBSDへのインストール
- Mac OS Xへのインストール
- Windowsへのインストール
- Plaggerを使う
- FAQ
- Can't locate なんとか.pm in @INC というエラーが出る
- gmail_notify.ttが見つからないというエラーが出る
- YAML_PARSE_ERR_INCONSISTENT_INDENTATIONエラーが出る
- YAML_PARSE_ERR_NO_FINAL_NEWLINEエラーが出る
- Plagger::Plugin::Publish::Gmail [error] Error while sending emails: Undefined subroutine &MIME::Lite::extract_addrs called at /...(snip).../Plagger/Plugin/Publish/Gmail.pm line 217. のエラーが出る
- Link
Plagger
注意
このページは単なるインストール手順のメモです。Plaggerは開発が活発なので、ここの情報は古くなっていることが多いです。
Plaggerについての正確な説明は
などを参照してください。
概要を知りたい場合は公式サイトのPresentationsにある「YAPC::Asia 2006 Tokyo」「Plagger Conference 1 Keynote」のスライドを参照するとよいでしょう。代表的なデモとしてElementary, ... Googleで「はらへった」と検索するとピザが届くようにするまでがあります。
解説
Plaggerは、mixiやBloglinesやWebサイトなど様々なところからデータを取って来て、いろいろなフィルターで処理をして、GmailやPSPやソーシャルブックマークやPDFなどに出力するPerlスクリプトです。http://blog.bulknews.net/mt/archives/001893.html 参照。
主な特徴
Plagger search.cpan.orgでプラグインに付属しているドキュメントがブラウザで読めます。
- SmartFeed
- RSSから任意のジャンルだけ取り出しだして出力することが簡単にできます
- TruePermaLinkプラグイン
- リダイレクタや余分なクエリーの付いたURLをすっきりしたURLに修正する
- EntryFullTextプラグイン
- Webページからコンテンツをダウンロードする。全文の無いRSSや、RSSの無いニュースサイトなどを巡回する
- enclosureサポート
- Webページに張られている.mp3や動画ファイルなどをPodCast形式のRSSにしたり、自動ダウンロードしてiPodやPSP向けに変換したりできます
入力できるもの
- アマゾンアソシエイトレポート (AmazonAssociateReportJP)
- Bloglines言及リンク(BloglinesCitations)
- Flickr検索 (FlickrSearch)
- マイミクシィ新着日記 (Mixi)
- Livedoorフレンドパーク最新日記 (Frepa)
- Googleニュース(GoogleNews)
- メーリングリスト (Mailman)
- Yahoo360 (Yahoo360JP)
- メール (POP3)
- iTunesで再生した曲情報 (iTunesRecentPlay)
全文ダウンロード系
- 2ch
- akibablog
- ameblo_jp
- asahi_com
- atmarkit
- bbc
- blog_tech.rikunabi_next
- chugoku-np
- chuspo_dragons
- cnet_japan
- cnn
- daily_sports
- debian_administration_org
- distrowatch
- drecom
- eweek
- extremetech
- forbes
- gyao_content
- hatena_diary
- indiesmusic_com
- itmedia
- itpro_nikkeibp
- japan_linux_com
- japan_zdnet_com
- kyoko_shimbun_news
- linuxjournal
- livedoorblog
- netkeiba
- news_com
- newsforge
- nikkansports
- nytimes
- osaka_nikkansports
- pcweb_mycom
- physorg
- plaza_rakuten
- qwik
- reuters
- sanspo
- sciam
- sixapart
- slashdot_jp
- sponichi
- sportsnavi
- tencount
- theinquirer
- theregister
- usatoday
- wired_com
- www_nikkeibp
- yomiuri
- zakzak
- zzz_google_adsense
購読系
- BloglinesのMyフィード (Bloglines)
- 設定ファイルで指定したRSSフィード (Config)
- はてなグループ (HatenaGroup)
- はてなRSS (HatenaRSS)
- 指定したURLに有るOPMLファイル (OPML)
- Odeo (Odeo)
フィルターにより出力結果をいじれます
- 【タグ】2chのニュース速報形式でタイトルにtagを入れます【タイトル】(2chNewsokuTitle)
- BlogPetの投稿した記事を除去(BlogPet)
- フィードをエントリごとに分割(BreakEntriesToFeeds)
- bulkfeeds.netのAPIを使って自動的にタグをつける(BulkfeedsTerms)
- ソーシャルブックマークdel.icio.usでそのURLに付いたタグとブックマーク数を表示できます(Delicious)
- del.icio.us RSSのタグを処理する(DeliciousFeedTags)
- Text::Emoticonを使用して顔文字を変換(Emoticon)
- HTMLページからコンテンツをダウンロードする(EntryFullText)
- FeedBurnerのリダイレクタを除去する(FeedBurnerPermalink)
- FeedBurnerのFeedFlareを除去する(FeedFlareStripper)
- (FloatingDateTime)
- はてなブックマークに付いたタグを表示できます(HatenaBookmarkTag)
- はてなブックマークのブックマーク数を表示できます(HatenaBookmarkUsersCount)
- はてなキーワードへのリンクを付ける(HatenaDiaryKeywordLink)
- はてなキーワードへのリンクを除去する(HatenaDiaryKeywordUnlink)
- はてな記法を処理する(HatenaFormat)
- (ImageInfo)
- 任意のコマンドに渡す(Pipe)
- (Profanity)
- RSS 2.0の日付を修正する(RSSLiberalDateTime)
- RSS 2.0のタイムゾーンを修正する(RSSTimeZoneString)
- 任意の正規表現で置き換えする(Regexp)
- 相対パスを絶対パスに変換する(ResolveRelativeLink)
- Kakasiで日本語をローマ字に変換する(Romanize)
- (Rule)
- スパムを除去する(SpamAssassin)
- RSS広告を除去する (StripRSSAd)
- ttpと書かれたURLをhttpに変換する(TTP)
- img.simpleapi.netのWebページサムネールのリンクを追加(Thumbnail)
- URLからリダイレクタ等を除去する(TruePermalink)
- URLブラックリストを使ってspam blogを除去する(URLBL)
- tDiaryのRSSに含まれる「ツッコミ」を除去する(tDiaryComment)
(その他いろいろ)
除去できる広告の例
- FeedBurner
- Google Adsense
- pheedo
- PLAZA楽天
- RSSAd.jp
- Seesaa
- ValueClick
除去できるリダイレクタの例
- 2chRSS
- namaan
- ?ref=rssや?from=atomなど
- TECH総研
- Yahoo Blog Search
出力できるもの
Publish 系
- 携帯用の軽いWebページに (CHTML)
- カンマ区切りファイル (CSV)
- del.icio.usブックマークとして登録 (Delicious)
- RSSフィードのファイルに (Feed)
- GMailに送信 (Gmail)
- はてなブックマーク登録 (HatenaBookmark)
- (Webページに貼付けられる)JavaScriptを生成 (JavaScript)
- MovableTypeへ投稿(MT)
- MovableTypeのサイドバーに表示 (MTWidget)
- OPMLファイル (OPML)
- PDFファイルを生成 (PDF)
- PSPのWebブラウザーで読む形式に (PSP)
- 任意のコマンドへ (Pipe)
- Planet形式のblogに (Planet)
- playlog.jpに登録 (Playlog)
- 音声読み上げ (Speech)
- Mac OS XのSpotlight検索データベースに (Spotlight)
(その他いろいろ)
Search(検索向け)系
- Namazuの検索データベースに追加 (Namazu)
- Rastの検索データベースに追加 (Rast)
Notify(通知)系
- CDトレイをイジェクトします (Eject)
- Mac OS XのGrowlで通知します (Growl)
- 指定したIRCチャンネルにNoticeで投稿します (IRC)
- MSエージェントで通知します (MSAgent)
- デスクトップマスコット (SSTP)
FreeBSDへのインストール
Perl5.8をportsからインストールします
cd /usr/ports/lang/perl5.8 make install rehash use.perl port
(更新)textproc/p5-Plaggerをportsからインストールすれば、一発で入ります
cd /usr/ports/textproc/p5-Plagger make install
portsから以下のモジュールをportinstallやmake installでインストール
devel/p5-Module-Install devel/p5-Cache devel/p5-Cache-Cache devel/p5-Class-Accessor devel/p5-File-Find-Rule devel/p5-UNIVERSAL-require devel/p5-DateTime-Format-Mail devel/p5-DateTime-Format-W3CDTF devel/p5-DateTime-Format-Strptime mail/p5-MIME-Lite math/p5-Number-Compare textproc/p5-Text-Diff textproc/p5-Text-Glob textproc/p5-YAML textproc/p5-XML-OPML textproc/p5-XML-Feed textproc/p5-XML-RSS-LibXML textproc/p5-URI-Find www/p5-Template-Toolkit www/p5-WWW-Mechanize www/p5-WebService-Bloglines security/p5-Digest-MD5 security/p5-Digest-HMAC
- CustomFeed::Mixi
www/p5-WWW-Mixi
- Publish::Delicious
net/p5-Net-Delicious
- Publish::IRC
devel/p5-POE-Component-IKC
- Filter::URLBL
dns/p5-Net-DNS
- Subscription::Config
www/p5-URI-Fetch textproc/p5-XML-Feed
- SmartFeed::All
devel/p5-File-Copy-Recursive textproc/p5-HTML-Tidy www/p5-HTML-Scrubber
- Publish::JavaScript
cpan -i Template::Plugin::JavaScript
- Filter::HatenaBookmarkUsersCount
cpan -i XMLRPC::Lite
- Filter::ResolveRelativeLink
cpan -i HTML::ResolveLink
CPANから以下のモジュールをインストール
cpan -i Net::SMTP::TLS cpan -i Template::Provider::Encoding cpan -i Text::Tags cpan -i Mail::Address
開発版を追いかける為にSubversionをインストール
cd /usr/ports/devel/subversion make -DWITH_PERL install
チェックアウトしてビルド
svn co http://svn.bulknews.net/repos/plagger/trunk/plagger cd plagger perl Makefile.PL make
Mac OS Xへのインストール
(更新)tarアーカイブを使う
8-p.info - Plaggerで公開されているtarを使えば一発でインストールできます
terminalからCPANを使って依存ライブラリをインストールする
sudo cpan cpan> test Plagger
もしくは
sudo -H cpan -i Module::Install ...(中略)... sudo -H cpan -i WebService::Bloglines
※CPANのミラー選択はthe status of CPAN mirrorsを参考に。オススメは ftp.kddilabs.jp と ftp.cpan.jp と ftp.nara.wide.ad.jp 。
Subversionクライアントをバイナリーパッケージでインストールする
Metissian - Projects - Mac OS X Packages - Subversion
Terminalからチェックアウトしてビルド
svn co http://svn.bulknews.net/repos/plagger/trunk/plagger cd plagger perl Makefile.PL sudo make
Windowsへのインストール
しげふみメモ Windowsで簡単にPlaggerをインストールする方法と情報は量 が参考になります。
(この項目は検証していません)
ActivePerlをインストールする
PPMを使って依存ライブラリをインストールする
C:\> perl ppm install XML::RSS::LibXML
CPANを使って依存ライブラリをインストールする
C:\> perl -MCPAN -e shell cpan> install Plagger
pl2batで.batファイルを作る
WalrusVisitを参考に。
Visual C++を使用する場合
Plaggerを使う
config.yamlで使いたい機能を指定する
examples/bloglines2gmail.yamlや http://d.hatena.ne.jp/tokuhirom/20060226/1140967554 やレシピを参考に。
実行する
./plagger
を実行する。実際には
- CustomFeed::MixiとPublish::Gmailを設定したconfig-sns.yaml
- bloglinesとPublish::Gmailを設定したconfig-bloglines.yaml
の二つに分離してconfigを書いて、crontab -eで
*/30 * * * * cd /home/YOUR_NAME/plagger ; /usr/bin/perl plagger -c config-bloglines.yaml > /dev/null 5 * * * * cd /home/YOUR_NAME/plagger ; /usr/bin/perl plagger -c config-sns.yaml > /dev/null
のように細かく指定している。
FAQ
Can't locate なんとか.pm in @INC というエラーが出る
「なんとか」の部分に表示されているCPANモジュールがインストールされていないか、PERL5LIBなどのライブラリパス設定が出来ていないのが原因です。モジュールをインストールしましょう。(もしくはPerlのライブラリパス設定を見直す)
gmail_notify.ttが見つからないというエラーが出る
Plagger::Plugin [fatal] file error - gmail_notify.tt: not found at line 144
いわゆる「assetsの罠」です。assetsをコピーして、global:でassetsのパスを設定します。FreeBSDのportsであれば/usr/local/share/plagger/assetsにコピーされています。assetsデータはCPANでビルドしたときは~/.cpan/build/Plagger*/assetsにあります。plagger.orgのsvnレポジトリからダウンロードする手段も有ります。
YAML_PARSE_ERR_INCONSISTENT_INDENTATIONエラーが出る
config.yamlのインデントの空白文字数が変だというエラーです。YAMLはインデントの空白で階層を表現するため、厳密に空白文字数をそろえる必要が有ります。
YAML_PARSE_ERR_NO_FINAL_NEWLINEエラーが出る
YAMLは最終行の最後に改行が入っている必要が有ります
Plagger::Plugin::Publish::Gmail [error] Error while sending emails: Undefined subroutine &MIME::Lite::extract_addrs called at /...(snip).../Plagger/Plugin/Publish/Gmail.pm line 217. のエラーが出る
MIME::Liteがバージョンアップしたことによりメソッド名が変更されたのが原因です。Plugin/Publish/Gmail.pmを http://plagger.org/trac/browser/trunk/plagger/lib/Plagger/Plugin/Publish/Gmail.pm と差し替えると動作するようになります。
最終更新時間:2008年07月15日 10時33分30秒