Movable Type 備忘録

 Movable Type で RSS リーダー作ってみる

こんばんわ^^

わたしまた失敗しちゃった (; ̄- ̄)

先日シュレッダーを注文したのですがその後何にも音沙汰ないので、おっかしいなぁとは思いつつも「まっいっかぁ (●´∀`●) そのうちくるだろ」という、いつもの悪い癖がでてしまい放っておいたら( 忘れてた )、今日になって『入金がされてません』なんて連絡がきて、「何言っちゃってんの!? この人!! カードで支払ったでしょ!!」と強気なわたしでしたが、どうやら銀行振込にしてたみたい (>∀< ) あちゃ

てか、何で今さらなの!!って思いません!?
わたしすっごく楽しみにしてたんですよ( ウソウソ。本気で忘れてたくせに )

ちょとショックを隠せない bzbell です (; ̄∇ ̄A

さて、今回は Movable Type のデフォルト機能を使って、RSS リーダを作ってみましたのでご紹介っ (●>∀<●)/

まずはサンプルですね。
時間なくってざっくりと作っただけなのでまだ充実してませんが、わたしが Movable Type に関して参考にしてるサイトさんのフィードを読み込んでみました。

作り方

作り方はカンタンです。
過去にご紹介したカスタマイズの応用をやっただけですの

具体的には以下のようなコードになります。

フィード読込み

  1. <mt:SetVar name="feed[0]" value="http://feeds.feedburner.com/ogawa">
  2. <mt:SetVar name="feed[1]" value="http://feeds.feedburner.jp/koikikukan">
  3. <mt:SetVar name="feed[2]" value="http://www.h-fj.com/blog/atom.php">
  4. <mt:SetVar name="feed[3]" value="http://feeds.feedburner.jp/oraora">
  5. <mt:SetVar name="feed[4]" value="http://www.dakiny.com/index.xml">
  6. <mt:SetVar name="feed[5]" value="http://blog.aklaswad.com/atom.xml">
  7. <mt:SetVarBlock name="cnt"><mt:GetVar name="feed" function="count" value="1" op="-"></mt:SetVarBlock>
  8.  
  9. <mt:For var="i" from="0" to="$cnt">
  10.     <mt:SetVarBlock name="uri"><mt:GetVar name="feed[$i]"></mt:SetVarBlock>
  11.  
  12.     <dl class="mt_reader">
  13.     <MTFeed uri="$uri">
  14.         <dt><a href="<$MTFeedLink$>"><$MTFeedTitle$></a></dt>
  15.         <dd>
  16.             <ul>
  17.             <MTFeedEntries lastn="3">
  18.             <li><a href="<$MTFeedEntryLink$>"><$MTFeedEntryTitle$></a></li>
  19.             </MTFeedEntries>
  20.             </ul>
  21.         </dd>
  22.     </MTFeed>
  23.     </dl>
  24. </mt:For>

青字の部分はフィードを読込みたいサイトの配列になります。
赤字の部分が各サイトのフィード URL です。
そして、そのフィードの配列を MTFor ブロックタグでループさせることでフィードを読込んでます。

上記コードを、新規ウェブページ、または新規インデックステンプレートに貼り付けて再構築します。その際、公開の種類を「ダイナミック・パブリッシング」にしてから再構築してください。

これにより、ページにアクセスされた時に各サイトの最新フィードが読込まれるはずです。

疑問点( 課題 )

  1. Movable Type の MTFeed はタイトルや URL を取得することはできますが、投稿日時を取得することができません。
    投稿日時が取得できれば、NEW マークを付けたりなどが可能になるのですが・・・。
    さて、どうしたものか(; ̄- ̄)今考え中です。 [2008.08.21] 考えるまでもないかな。MTFeedEntries ブロックタグを拡張するしかないね。でも、XML の構文を解析する必要あり!? 要勉強(´o`ヽ)

  2. 先ほど説明したように、ページにアクセスされた時点でフィード読込み( 再構築 )されます。
    たくさんのフィードを記述した場合にどのくらいの負荷( 表示時間 )がかかるか・・・。[追記] ちょとこの遅さは許しがたいものがあります。わたしのサイトだから!? それとも時間帯による!? てか、そもそもダイナミック・パブリッシングってのが無理あり過ぎ!? いずれにしても改善の余地ありですの。最悪企画倒れぇ~ (つω-`。)

  3. フィードを読込みたいサイトさんがサーバがダウンしてるとか、既にサイトを閉じられてた場合の対処法。てか、その場合どういう動きするんだろ (; ̄- ̄) [2008.08.21]

てなかんじでしょうか。
まぁ、カンタンに作ってみただけなので、今後じっくり検討してみますの (●´∀`●)

[2008.08.21] The blog of H.Fujimoto さんとこで、リアルタイム再構築プラグインを使って同じことやってましたのでご参考までに。

 Trackback Pings(1)

from Tetsuyan's Blog

いつもお世話になっている「Movable Type 備忘録」のbzbellが個人...

 Comments(8)

#1: Posted by Author Profile Page aiko_m @ August 21, 2008 [REPLY]
user-pic

RSSリーダーは以前CGIでも試しましたが、やっぱり速度的に許容範囲でないので諦めました(^^ゞ。
問題点として、フィードを出力されている相手側のサーバーがダウンされている時に、どう対処するか?。
もありますよね。このヘンのタイムリミットを設定するコトって可能なのでしょうか?。

あ…でもRSSリーダーのページ拝見しましたがしましたが、とっても表示が速くてCGIを起動するより
良いかもですね~。ちなみに meta の description の部分が表示されちゃうのですが、ウチだけでしょうか?。

#2: Posted by Author Profile Page bzbellからaiko_mへの返信 @ August 21, 2008 [REPLY]
user-pic

>>1 aiko_m さん

おはよございます^^

> RSSリーダーは以前CGIでも試しましたが、やっぱり速度的に許容範囲でないので諦めました(^^ゞ。

そうなんですよねぇ。
わたしのサイトでは自給自足が主旨なので、できそうなことはすべて自分とこでやりたいんですよね。

> フィードを出力されている相手側のサーバーがダウンされている時に、どう対処するか?。
あぁ~なるほど。そういうケースもあり得ますね。追記させてもらっちゃいますサングラス

> あ…でもRSSリーダーのページ拝見しましたがしましたが、とっても表示が速くてCGIを起動するより
うん。わたしもさっき見たらぜんぜん許容範囲だったよ。やっぱり時間帯によるのかなぁガーン

> 良いかもですね~。ちなみに meta の description の部分が表示されちゃうのですが、ウチだけでしょうか?。
あちゃキャハハ ありがとございます。テンプレート直します。

#3: Posted by Author Profile Page 哲やん @ September 5, 2008 [REPLY]
user-pic

いつもお世話になってます。RSSリーダー、最高ですね。
これがあるとrssを吐き出す掲示板cgiの更新状況にも使えて便利です。
もう、最高ですっ!

#4: Posted by Author Profile Page bzbellから哲やんへの返信 @ September 5, 2008 [REPLY]
user-pic

>>3 哲やん さん

こんばんわ^^

でもね、一つ難点がありまして、通常の RSS リーダーなら更新された日付が表示されると思うんです。
でも、MTFeed タグでは日付を取得することができないないので、NEW マークなどを付けることができないんです。
一応取得できるとこまでは確認してるのですが、まだ ATOM だけは取得できてないですあせあせ
MTFeed タグってのは有償版ってのもあってそちらでは日付、記事概要も表示できるようなんですよね。
なので、日付や記事概要表示可能なプラグイン( 無償 )を公開してしまってもよいものかどうかイヤイヤ

#5: Posted by Author Profile Page 哲やんからbzbellへの返信 @ September 6, 2008 [REPLY]
user-pic

>>4 bzbell さん
確かに更新日時が出ないのは少々つらいところではありますが、「ticker」だと思えばいいのかも。
CGIで作られたものには確か「更新日時、NEWマーク」などが付くものがありますが、MovableTypeへの導入は諦めました(笑)

有償板が存在したとしても、無償版のプラグインを公開することに問題はないんではないかと・・・
法律的にはよくわからないのですが、似たようなプラグインで「無償版、有償板」が存在しているものもあるので何とも言い難いですね。

#6: Posted by Author Profile Page bzbellから哲やんへの返信 @ September 6, 2008 [REPLY]
user-pic

>>5 哲やん さん

> ・・・有償板が存在したとしても、無償版のプラグインを公開することに問題はないんではないかと・・・
えっ!? ホントうるうる!?
実は MTFeedEx というプラグインを作ってまして、そのプラグインでは MTFeed と同等+αの機能を追加してるんです。
まだβテスト中ですけどあせあせ

#7: Posted by Author Profile Page 哲やんからbzbellへの返信 @ September 6, 2008 [REPLY]
user-pic

>>6 bzbell さん
ちょっと違うかもしれませんが、オープンソースとして公開されている物を有償板として販売されているケースはあるんです。
その逆に有償板が存在している物を、似たものを作成し、無償提供することに法的な問題が発生するかは、有識者に聞かないとわかりません。

上記の例えでは、有償板としてエムロジック株式会社の「TinyMCE4MT」や、有限会社ITプロフェッショナルの「TinyMCE for Movable Type」があり、その元のオープンソース版はmoxiecode(http://tinymce.moxiecode.com/index.php)の「TinyMCE」ですからねぇ。

「どっちが先か」と言う状態とか、片方がオープンソースで公開している物をカスタマイズして「有償」と言う場合でしょうから、詳しいことはよくわかりません。

ついでと言ってはなんですが、WYSIWYGエディタは他にもいくつかあるんですが・・・

FCKeditor
http://www.fckeditor.net/
HTMLArea
http://blog.movalog.com/a/htmlarea/
EnhancedEntryEditing
http://plugins.movalog.com/enhancedentryediting/


#8: Posted by Author Profile Page bzbellから哲やんへの返信 @ September 6, 2008 [REPLY]
user-pic

>>7 哲やん さん

こんにちわ^^
MTFeed を使わず、プラグインを別途作成しましたので良かったら試してみてくださいテレテレ
http://bizcaz.com/archives/2008/09/06-103153.php

 Post a Comment

 

コメント用フィード