ブログ更新情報をホームページに表示するcgi

任意のブログの更新情報を任意のホームページに表示できる cgi (下記の謝辞参照)を自分用に改造してみました。(例1例2

原作者の方に再配布許可を頂いたので私が改造した cgi を公開します。
興味のある方は利用してみてください。
MovableType を動かせる環境と知識が有ればそれほど難しくないと思います。

cgi のダウンロード

cgi の使い方

(1)先頭行を各々のシステムに合わせる
  #!/usr/bin/perl
   or
  #!/usr/local/bin/perl
(2)rss.cgi の設定項目を記入
 CGI を呼び出すページや新着と見なす時間などを設定する。
(3)rss.cgi と getHTTP.cgi をサーバーに転送する
(4)各ファイルのアクセス権を"755"にする (サーバーによっては "705" など真中が"0"になる場合もあります)
*本cgi は socket を使用しています。socketを許可していないプロバイダ(infoseek等)もありますので、その場合は使用できません。
*本cgi は encode を使用しています。よって、perl のバージョンが 5.8 以上でないと使えません。


ブログの更新情報を表示するための HTML 記入例
(1)設置する HTML 内に以下のような JavaScript を書く
例:<SCRIPT language="JavaScript" src="http://honge.ne.jp/cgi-bin/rss/rss.cgi?url=http://honge.ne.jp/weblog/index.rdf"></SCRIPT>

意味:src= に設置した rss.cgi を使って、url= の index.rdf を解読する。

つまり、src=以下に rss.cgi の設置場所を、url= 以下に解析対象のatomやRSSの場所を記述します。以降のオプションは下記参照して適宜設定してください。

(2)オプションの設定
 1 オプションとオプションの間は & でつなぐ
 2 表示する記事数の指定は num=10 などのようにします。
 3 atom.xml などの atom から更新情報を得る場合は、type=atom とします。RSS なら設定不要。
 4 表示順序の設定
    今日の出来事 [2005/10/05]New
    New [2005/10/05]今日の出来事
   などのように、タイトル、日時、新着マークの順番を指定できます。
    order=TitleDateNew  タイトル、日時、新着マーク
    order=NewDateTitle  新着マーク、日時、タイトル
    order=NewTitleDate  新着マーク、タイトル、日時
    order=DateTitleNew  日時、タイトル、新着マーク
    order=Title      タイトのみ表示
 5 日時の表示形式
   例えば2006年3月4日午前5時9分7秒の場合
    dateform=mmdd     03/04
    dateform=yymmdd    06/03/04
    dateform=yyyymmdd   2006/03/04
    dateform=mmddhhmmss  03/04 05:09:07
    dateform=mmddhhmm   03/04 05:09
 6 タイトルの長さ制限の設定
   ある一定以上の長さのタイトルは途中で省略することができます。
    半角で32文字目から省略したければ、long=32 とします。
     *なるべく偶数を指定してください。
     *半角文字が奇数含まれる場合は指定数より1文字短くなります。
 7 新着マークに画像を使う場合、画像ファイルの場所を指定
    new=http://honge.ne.jp/new.gif
    new=./new.gif (JavaScriptを記載するHTMLから見た相対アドレス)
 8 文字コードの異なるブログフィードから情報を取る場合
    CodeInOut=Utf8ToSjis 自分が shift-jis で相手が utf-8(ユニコード)の時
    CodeInOut=SjisToUtf8 自分がutf-8で相手がshift-jisの時
     *自分と相手の文字コードが同じなら指定する必要はありません。
 9 日時のタグ
   RSS1.0の場合、dc:date から、atom の場合 published から
   日時情報を取るなら指定する必要なし。
   atomの場合でi ssued から取得する場合のみ 
    PubTimeTag=issued 
   と指定する。
     *解析可能な日時形式は 2005-10-05T13:41:48Z
     *解析不能な日時形式の例:Wed, 05 Oct 2005 22:41:48

オプションを設定した例:
<SCRIPT language="JavaScript" src="http://honge.ne.jp/cgi-bin/rss/rss.cgi?url=http://honge.ne.jp/weblog/atom.xml&num=10&
type=atom&order=TitleDateNew&dateform=mmdd&long=32&
new=./new.gif"></SCRIPT>


謝辞
本スクリプトを知るきっかけを与えてくださいましたCedar's StorehouseのCedarさんに感謝します。
改造前のスクリプトははやしのブログからダウンロードいたしました。はやしさんに感謝します。
rss.cgiのオリジナルを作製されたHiroさんに感謝します。
getHTTP.cgiを作製されたKasaiさんに感謝します。

その他
このスクリプト開発中にMovableType3.2 別サイトに記事一覧を表示という記事を発見して大ショックを受けました。実際にやってみると確かに簡単で、こんなことが出来ました。(下の方までスクロールしてください。)
しかし、フィードを公開している任意のブログから更新情報を HTML に表示できるのがこの cgi の強みであると思います。

コメント

>文字コードの異なるブログフィードから情報を取る場合

取得元のフィードがEUCで記述されている場合、このスクリプトは使えないのでしょうか?
ダメ元でやってみましたが、やはり文字化けしてしまいました。

Good site. Thank you!!!

Nice site. Thank you.

Nice site. Thank you!

Cool site. Thank you:-)

Nice site. Thanks!!!

Good site. Thank you.

Good site. Thanks:-)

Good site. Thanks!

Cool site. Thanks.

Cool site. Thank you.

Good site. Thanks!!!

Nice site. Thank you!

Very good site. Thanks!

Nice site. Thanks!

Nice site. Thanks.

Nice site. Thank you:-)

Good site. Thanks.

Very good site. Thanks:-)

Nice site. Thanks.

Cool site. Thanks.

Nice site. Thank you.

Very good site. Thank you!

Very good site. Thank you!

Nice site. Thanks.

Very good site. Thanks!

Very good site. Thank you!!!

Good site. Thank you:-)

Very good site. Thanks.

Good site. Thanks:-)

Nice site. Thanks!!!

Nice site. Thank you:-)

Nice site. Thank you.

Nice site. Thanks:-)

Nice site. Thanks:-)

Good site. Thank you:-)

Good site. Thank you:-)

Nice site. Thanks!

Cool site. Thanks!!!

Nice site. Thank you!!!

Very good site. Thanks!!!

Very good site. Thanks!!!

Very good site. Thanks!!!

Cool site. Thank you:-)

Good site. Thank you.

Good site. Thank you.

Good site. Thank you!!!

Good site. Thank you!!!

Good site. Thank you!!!

Very good site. Thanks.

Very good site. Thanks.

Nice site. Thank you.

Very good site. Thank you!!!

Very good site. Thank you:-)

Very good site. Thanks.

Nice site. Thank you!

Very good site. Thanks:-)

Very good site. Thanks:-)

Very good site. Thank you:-)

Very good site. Thanks!

Nice site. Thanks!

Nice site. Thanks!

Nice site. Thanks!!!

Very good site. Thanks.

Cool site. Thanks:-)

Good site. Thank you!!!

Cool site. Thank you!!!

Nice site. Thanks!!!

Very good site. Thanks.

Very good site. Thanks!

Very good site. Thanks!


コメントを投稿