トップ 新規 編集 差分 一覧 ソース 検索 ヘルプ RSS ログイン

plagger

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向けに変換したりできます

入力できるもの

CustomFeed

  • アマゾンアソシエイトレポート (AmazonAssociateReportJP)
  • Bloglines言及リンク(BloglinesCitations)
  • Flickr検索 (FlickrSearch)
  • マイミクシィ新着日記 (Mixi)
  • Livedoorフレンドパーク最新日記 (Frepa)
  • Googleニュース(GoogleNews)
  • メーリングリスト (Mailman)
  • Yahoo360 (Yahoo360JP)
  • メール (POP3)
  • iTunesで再生した曲情報 (iTunesRecentPlay)

全文ダウンロード系

Filter-EntryFullText

  • 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

購読系

Subscription

  • BloglinesのMyフィード (Bloglines)
  • 設定ファイルで指定したRSSフィード (Config)
  • はてなグループ (HatenaGroup)
  • はてなRSS (HatenaRSS)
  • 指定したURLに有るOPMLファイル (OPML)
  • Odeo (Odeo)

フィルターにより出力結果をいじれます

Filter

  • 【タグ】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)

(その他いろいろ)

除去できる広告の例

Filter-StripRSSAd

  • FeedBurner
  • Google Adsense
  • pheedo
  • PLAZA楽天
  • RSSAd.jp
  • Seesaa
  • ValueClick

除去できるリダイレクタの例

Filter-TruePermalink

  • 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をインストールする

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 と差し替えると動作するようになります。

 Link

最終更新時間:2008年07月15日 10時33分30秒