はてなBookmarkに登録

[Plagger] Planetのフィードをblogに自動投稿

先日の[Plagger] Planetを作って遊んでみましたで幾つかPlanetを作ってみましたが、折角情報を集めても何日かすると消えてしまうことや、「何月何日の新着」みたいな形で残せないかなぁと思い、Planetのフィードをblogに投稿してみることにしました。

まず試したのが、PlaggerのPublish::MTを使ってteete totterに投稿です。teeter totterもXML-RPCをサポートしていますので、もしかしたら行けるかも…、と思って試したのですが、結果はダメでした。タイトルまでは入るのですが、本文が入ってくれません。rsd.xmlも作ってみたのですが。
ダメもとで試したので、これ以上は深追いしないことにしますが…、ちょっと残念。

次に、素直にPublish::MTを使ってMovableTypeに投稿してみると…、今度は上手くいきました。config.yamlはこんな感じです。
plugins:
- module: Subscription::Config
config:
feed:
- http://www.simazaki.com/~izumi/mmk/rss.xml

- module: Publish::MT
config:
rsd: http://www.simazaki.com/ishinomori/rsd.xml
username: MT_username
password: MT_XMLRPC_password
blog_id: 2
title: "New Entry"
titleを日本語にすると、文字化け化けになってしまうのですが、対処方法がわからず英語のままになっています。

ただ、コレだと毎回全てのフィードをblogに投稿してしまうので、データが重複しまくってしまいます。
ということで重複しないように、今日(あるいは昨日)の分だけを抜き出すようにしてみます。(緑色の部分が追加です)
  - module: Subscription::Config
config:
feed:
- http://www.simazaki.com/~izumi/mmk/rss.xml

- module: Filter::Rule
rule:
# expression: $args->{entry}->date->ymd eq Plagger::Date->now(timezone=>'Asia/Tokyo')->ymd ←今日の分だけを抜き出す場合
expression: $args->{entry}->date->ymd eq Plagger::Date->now(timezone=>'Asia/Tokyo')->subtract(days=>1)->ymd ←昨日の分だけを抜き出す場合

- module: Publish::MT
config:
これで今日(あるいは昨日)1日分だけを抜き出すことができますが、昨日の分の場合はともかく、今日の分を抜き出す場合だと、検索エンジン側の更新状況やタイミングによっては、取りこぼしが発生する可能性があります…。

ということで、一旦livedoor ReaderでPlanetのフィードを受け、そしてPlaggerのSubscription::LivedoorReaderを使って取り込むようにしてみました。
plugins:
- module: Subscription::LivedoorReader
config:
username: LDR_username
password: LDR_password
mark_read: 1

- module: Publish::MT
config:
mark_read:1 にしておくと、Plagger一度取り込んだ記事はlivedoor Reader側で既読扱いとなり、次回以降は取り込まれないため、重複対策になります。

で、試してみると、なぜか"You have xxxx unread item(s) on livedoor Reader."と表示された後、MTに投稿されずに終了してしまいます。ググってみると…、パッチがリリースされているんですね。簡単な修正なのでエディタで手動修正し、再度試してみると、今度は上手く動いてくれました。

ということで出来上がったのが、こちらになります。MovableTypeを使い慣れていないので、ちょっとショボいですが…。

ちなみに、Plaggerに関連するところでハマったのは、上記のSubscription::LivedoorReaderのパッチに気付かず「動かねぇ〜」になった所だけで、それ以外はサクサクいきました。

逆に苦労したのはMovableTypeの設定ですねぇ。今まで使っておらず慣れていないこともありますが、こんな所にハマりました。

カレンダーを追加しようとしてWidget Managerを使おうとしたら起動しない
widget-manager.cgiのパーミッションを変えたら、今度は何故か
(2)No such file or directory: exec of '/var/www/cgi-bin/mt/plugins/WidgetManager/widget-manager.cgi'
が出る始末。結局、良く分からないまま動くようになってしまったので、まぁ良いか…。

MovableTypeのXML-RPC用パスワードは、ログイン用とは別
コレに気付くまで「なんで"ログインできません"エラーになるんだよう」と、かなり悩みました。

投稿者 Izumi : 23:06 | PC / Net

トラックバック

このエントリーのトラックバックURL:
http://www.simazaki.com/~izumi/cgi-bin/tt-cgi/tt_tb.cgi/481

はてなハイクのログをPlaggerでMovableTypeへ - polesta...

polestar's blog : 2008年8月19日 03:52

コメント

コメントしてください




保存しますか? はいいいえ


 
< 2007年6月 >
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
サイト内検索
Recent Comments
Recent Trackback
リンクリスト