BuzzurlのブクマをPlaggerでMTに投稿(後編)

もう新年とか考えずに、突っ走ろうと思いますw

前回で、一応MTに投稿する所までは出来たと思います。今回は予告どおり、下記の三つのカスタマイズをしてみたいと思います。

  • ブクマ人数の表示
  • ブクマアイコンを表示
  • コメントがついてたら表示、ついてなかったら表示しない。

1.ブクマ人数、ブクマアイコンの表示

これを実現するためには、現状の「mt.tt」では駄目なので、別のテンプレート作成しそれを使うようにしましょう。

とりあえずは、mt.ttをコピペして、下記内容で/usr/bin/assets/common/以下に配置してください。

内容はこんな感じ

<ul class="entry-tags-list">
[% FOREACH entry = feed.entries -%]
<li class="entry-tag">
<a target="_blank" href="[% entry.link %]">[% entry.title %]</a>
<a target="_blank" href="http://buzzurl.jp/entry/[% entry.link %]">
<img src="http://cdn.buzzurl.jp/static/image/api/icon/add_icon_mini_10.gif" style="padding:0; margin:0; border:0"
<img src="http://api.buzzurl.jp/api/counter/[% entry.link %]" style="padding:0; margin:0; border:0">
</a>
</ul>
</div>

ブクマ人数用の画像だったり、ブクマアイコンは既にBuzzurl側が用意してくれているのでこれを利用しましょう。

ただ、「[% entry.link %]」は、RSS上で「http://buzzurl.jp/entry/」が先頭に着いた状態で吐き出されているので、上のようにすると、「http://buzzurl.jp/entry/」が2回繰り返す事になるので、正しくブクマ人数とかが表示されないし、ブクマアイコンでブクマしようとした時に、Buzzurlのページをブクマしてしまうので、Aggregator::Simpleの134行目付近を下記のように修正しますた。

/usr/share/cpan/Plagger/Plugin/Aggregator/Simple.pm

+         my $elink = $e->link;
+         $elink =~ s/^http\:\/\/buzzurl.jp\/entry\///g;
-         $entry->link($e->link);
+         $entry->link($elink);

上の正規表現はみたまんまですが、「http://buzzurl.jp/entry/」が着いてたら除去して元URLをentry.linkとして保存してあげます。

これで意図した動きなると思うので、新しく作ったテンプレを、設定ファイル(mt.yml)に設定して、MTに投稿する際には、新しいテンプレを使うようにします。

  - module: Publish::MT
    config:
     rsd: http://hogehoge.net/rsd.xml 
     username: username 
     password: password 
     blog_id: 1 
     title: "Todays Bookmarks" 
     template: custom.tt #ここに新しく保存したテンプレート名を指定する。

2. ブクマコメントを表示する。

新しいテンプレではブクマコメントを表示する事が考慮されていなかったのでさらにテンプレに下記のように加筆を加えます。

<div class="entry-tags">
<h4 class="entry-tags-header">Todays BookMarks</h4>
<ul class="entry-tags-list">
[% FOREACH entry = feed.entries -%]
<li class="entry-tag">
<a target="_blank" href="[% entry.link %]">[% entry.title %]</a>
<a target="_blank" href="http://buzzurl.jp/entry/[% entry.link %]">
<img src="http://cdn.buzzurl.jp/static/image/api/icon/add_icon_mini_10.gif" style="padding:0; margin:0; border:0">
<img src="http://api.buzzurl.jp/api/counter/[% entry.link %]" style="padding:0; margin:0; border:0">
</a>
<!-- ここを追加 -->
[% IF entry.summary != ' tell-kさん「」 ' %]
<br />[% entry.summary %]
[% END %]
</li>
[% END %]
<!-- /ここを追加 -->
</ul>
</div>

どうやら、コメント情報は、entry.summaryの中に入ってるようなので、これを表示してあげれば良いようですが、なにもコメントしなくても”tell-kさん「」”という文字列がentry.summaryに入ってるらしいので、この場合はコメントを表示させないようにしました。

実行するとこんな感じです。

改めてPlaggerの便利さを認識しますた。

■参考URL
http://onexone.sakura.ne.jp/archives/2006/04/04_232146.php
http://polestar.sub.jp/blog/2008/08/plaggermovabletype-1.html