- 2004-06-03 (木) 14:32
自分の友達やご近所のblogへのリンクと更新日時・タイトル等をサイドバーに表示しようと思っていて、MyBlogListやBlogPeopleを試していたのですが記事更新通知型となるのでblogクリエータが登録していないとあまり意味のないものになってしまうと感じていました。また mt-rssfeed も試しましたが自分が思っているところとは違かったので。。
そこで、’RNA‘ というRSSベースのアンテナを利用してリンク先の RSS を取得して自サーバで表示することにしました。幸いにも yujilog のサーバには cron を実行できる環境がありますのでこれで自動更新を行います。
‘rna - RSSベースのアンテナ「RNA」‘
RNA は、Webサーバ上で動作する、RSSアグリゲータの一種です。 Perl/CGI で実装されています。 Web上のいろいろなサイトの更新情報を収集するアンテナとしての機能が主ですが、FOAF技術を用いた、コミュニティ(もしくは知人)ベースの連携機能も有しています。
<!--more-->
rnaのインストール
‘RNA説明書1.9 - RNA1.9のインストール・設定・カスタマイズにしたがってインストール・設定を行っていきます。‘
まずダウンロードします。ダウンロードした ‘rna1.x.x.tgz‘(x にはバージョンが入ります) を適切な場所(WWWで見れる場所、MovableTypeのLocal Site Pathがおすすめ)に展開します。
tar xzf rna1.x.x.tgz
rna1.x.x というディレクトリ以下に展開されるはずです。このディレクトリ名を rna に変更します。
mv rna1.x.x rna
次に ‘rna/config.pl‘ の変更。変更箇所は二箇所です。ご自分の環境に合わせて設定していきます。
my $antenna_owner = ''yu-ji''; # ← あなたのお名前 my $base_uri = ''http://factage.com/yu-ji/rna/''; # ← RNAを設置するディレクトリのURI
ディレクトリ・ファイルのパーミッション設定を行います。ローカルで展開してFTPなどでアップロードしていない場合は一部のディレクトリ・ファイルはすでに適切なパーミッション設定になっているかもしれません。
$ chmod -R 777 rss/ cache/ $ chmod 755 *.cgi $ chmod 666 *.html *.rdf *.xml $ chmod 666 .rna* $ chmod 666 rss/clip.*
初期化プログラム(’rna-load.cgi‘)をブラウザかもしくはコマンドライン上で実行します。
http://factage.com/yu-ji/rna/rna-load.cgi
このような流れでインストールは完了です。あとはWebからの設定
ユーザの追加と削除
ユーザIDとパスワードを変更する必要があるかと思います。まずユーザID ‘anonymous‘ でログインします。パスワードは’無し‘です。
http://factage.com/yu-ji/rna/rna-auth.cgi?transfer=rna%2dconf%2ecgi%3f

ログインすると ‘RNA::Site Config‘ の画面になります。画面下部の ‘Authentication‘ で任意のユーザ名の新しいユーザを追加します。User Name と Password を入力したら ‘Add‘ ボタンを押下します。

anonymous ユーザを残しておくと誰でもログインができてしまいますので、削除します。

以上で初期設定は完了。あとはさきほど追加したユーザでログインしてサイトをどんどん追加してください。
MovableType向けのテンプレートの編集
MovableTypeでサイドバーに表示する RNA のテンプレートを変更します。標準で用意されているテンプレート(js_default_template)を編集しても良いですが、ここでは新たにテンプレートを作成します。RNA を展開したディレクトリの下に ‘template‘ というディレクトリがありますので、この下に任意の名前のテンプレートファイルを作成します。ここでは ‘movabletype_template‘ とします。
ファイル名の例 ..../yu-ji/rna/template/movabletype_template
今回はMovableTypeのサイドバーに表示するリンクとするのでシンプルな表示を想定します。
// 表示例 ------------------ リンク ------------------ 06/02 friend1 06/01 friend2 ------------------
// movabletype_templateの内容
<rnaitems lastn="5">
< $RNAItemDate format="%m/%d"$>
<a href="http://<$RNAItemLink$>"
title="< $RNAItemTitle$>\\n(更新日時:< $RNAItemDate format="%Y/%m/%d %H:%M"$>)">
< $RNAItemCreator$></a><br />
</rnaitems>
<br />
<b>Powered by <a href="http://www.semblog.org">Semblog/RNA</a> <a href="http:///yu-ji/rna">@</a></b>
MovableTypeのサイドバーに表示を行うために、MovableTypeのテンプレートの編集を行います。rna.cgi の ‘encoding‘ はご自分の環境に合わせて設定してください。また、’template‘ の指定を上記で設定したテンプレートファイルの名前にあわせます。ここでは ‘movabletype_template‘ とします。
<div class="sidetitle">
リンク
</div>
<div class="side">
<script type="text/javascript"
src="http://factage.com/yu-ji/rna/rna.cgi/javascript
?encoding=EUC-JP
&target=RecentSiteList
&template=http://factage.com/yu-ji/rna/template/movabletype_template"></script>
<br /><br />
</div>
以上でMovableTypeのサイドバーに表示されるはずです。
アンテナの自動更新
ここまででサイドバーには表示はできますが、自動では更新は行われません。リンクへ登録したblogクリエータが RNA へ更新通知を行うことで更新はされます。ここでは自力で自動更新を行うための設定を行います。
自動更新を行う方法は2つあるかと思います。
- cronによる自動更新
- PHPによる更新(!)
- (ブラウザからの要求をうけると毎回 RNA のアンテナ情報XMLの日付をチェックしてある一定の時間が経過していたらバックグラウンドで更新させるというもの)
1,cronによる自動更新
とりあえず cron による自動更新を行いましょう。うちのサーバは全部Webから設定できてしまうので、cron を使用するためのファイルやコマンドは割愛します。というか忘れてしまいました。。
まず、RNA の rna.cgi を実行するためのシェルスクリプトを準備します。わりに適当です。ここでは ‘rna-reload.sh‘ というファイルにします。パーミッションは ‘755‘ とします。
#!/bin/sh cd ..../yu-ji/rna ./rna.cgi
つぎに cron に上記シェルスクリプトを実行するように設定します。
0 */6 * * * ..../rna-reload.sh > /dev/null
基本的には RNA を展開したディレクトリの下の ‘rna.cgi‘ を実行するだけで自動更新は行われます。ここでは’6時間毎に‘実行するよう設定しています。随時書き換えてください。
2,PHPによる自動更新
PHPによる更新は実際設定は行っていませんが、論理的には可能だと思います。前提はPHPが使えるサーバであることと、MovableTypeの各ページの拡張子を php として出力していることです。
スクリプトは以下のようになると思います。実行していないので自身はないです。。。
< ?
$nowtime = time();
$recenttime = filemtime("..../yu-ji/rna/rss/recent_site.rdf");
$expire = 60 * 60 * 6; // 6時間に期限を設定
// 期限が切れているかチェック
if($nowtime - $recenttime > $expire){
// http呼び出しを行う。
file("http://factage.com/yu-ji/rna/rna.cgi");
}
?>
上記のスクリプトをサイドバーのPHP等に埋め込むことにより自動更新が行われるかと思います。更新自体はたぶんバックグラウンドで行われるのでサイトを見て回る待ち時間は発生しないかと思います。
とりあえずメモ程度に書きました。かなり適当な事書いてますので問題があればコメントください。お待ちしてます。
- Newer: CPEntriesプラグイン
Comments:0
Trackbacks:1
- Trackback URL for this entry
- http://factage.com/yu-ji/2004/06/03/rna-for-sidebar/trackback/
- Listed below are links to weblogs that reference
- サイドバーのリンク表示。 from yujilog
