rss で通知するページを限定する / rss10.inc.pl

2006-2-26[日]

mixi の外部日記の設定で

http://hogehoge/?cmd=rss10

なんてすると、サイト全体の変更が通知されてしまいちと慌ててしまったのでした。 で、(v0.1.6rc?での) rss10.inc.pl をみると、

if(&is_readable($title) && $title!~/$::non_list/) {

という見せないページをはじく処理があるから、

if($title =~ /\d\d\d\d-\d\d-\d\d/ && &is_readable($title) && 略

のように、とりあえずページ名に日付 ????-??-?? がついている場合だけ okということにして対処。 条件直埋せずにiniあたりで設定できるように変数でやったほうが、と か、思うもとりあえず己だけなら、で。 もちろん、rss10.inc.plを直で書換えたわけで なくrss10hoge.inc.pl とかにコピーして別プラグインとして用意。
(できれば、ファイルの日付でなく、ページ名の日付でソートして出力 したい気はするけれど...)

※ じつは rss10page プラグインなんてのが最近増えていた模様... ちょっと用途が違うぽいけれど..

あ、と。
Rssリーダーを自分の環境に入れてみたり。
自サイト情報やよそ様をみたり...で、やっぱりMenuBar等はいらないよ なあ、で、上記 if条件の /$::non_list/をいじることで...
さすがに一覧にもページが出なくなると面倒なのでnon_listとは 別に $::rss_non_list のような変数を用意して置き換え、 pyukiwiki.ini.cgi に $rss_non_list=条件 を ($non_listのコメントを参考に) 追加して。 ちょっと記述が長い... 許可ページ条件も併用したほうがよいのかも。

それと、頭でわかっていたつもりでも いざ専用ツールで情報表示すると、更新時間が一覧表示されると やっぱり気になるなあ、で、ためしに、先のファイル中の

my $date = $1 . "T" . $2 . sprintf("%+02d:00", $gmt);

my $date = $1 . "T" . '00:00:00' . sprintf("%+02d:00", $gmt);

にしてみました。 こんなことするくらいなら rss10.cgi.pl を削除すりゃ ええやん、て気もしてくるけど、 はてなの日記とか他をみると、全記事 09:00 だったりで 世の中そんなものなのかもな、で、よしとしとこー。
(ま、その気で調べりゃすぐわかるとしても)


2006-3-19[日]

v0.1.6 になったことだしで、とりあえず、己が改造した版を 晒しておきます。

file [ダウンロード]

info/setup.ini.cgi か pyukiwiki.ini.cgi に

$rss10::non_list = qq((^\:|$::MenuBar\$|$::SideBar\$|InterWikiName|^$::RecentChanges\$));
$rss10::clear_time=1;
# $rss10::match_title='\d\d\d\d-\d\d-\d\d';

のような感じで、必要な設定をしてやってください。

  • $rss10::non_list は$::non_listの代わり、
  • $rss10::clear_timeは0なら普通、1なら時間を00:00:00にする
  • $rss10::match_titleはnon_listの逆で一致条件を指定する場合に設定

です。

日記専用版が必要ならば、rss10.inc.plをrss10diary.inc.plにでもコピーし、 その中のrss10をすべて rss10diary に置換、でもって、

$rss10diary::match_title='日記/\d\d\d\d-\d\d-\d\d';

を設定して使う、って具合です。