=head スクリプト名 rss_ff.cgi - Firefox用RSSフィードリストアップスクリプト =head 概要 Firefox のRSS項目ブックマークを検索して、URL とタイトルを取得し、タイトルに RSSリーダー rss2html.cgi をリンクさせたリストを得る。 =cut require 'cgi-lib.pl'; use Unicode::Japanese; $s = Unicode::Japanese->new(); # bookmarks.htmlのパスの設定(ユーザー設定が必要と思われる) $bookmarks = $ENV{'USERDIR'}."\\Application Data\\Phoenix\\Profiles\\default\\5nepgtwg.slt\\bookmarks.html";# bookmarks.htmlのパスの設定 &ReadParse(*in); if($in{'pattern'}){ $pattern = $in{'pattern'}; $title = "RSS Feeds検索パターン: $pattern"; }else{ $pattern = ".";# ブックマークの「RSS」すべてを検索する $title = "RSS Feedsリスト"; } # 環境変数の取得 $cgidir = $ENV{'CGIDIR'}; print < RSS Feeds
$title

HEADER open(IN, "<$bookmarks"); while(){ $_ = $s->set($_,'utf8')->sjis; if(/^\s+
.+RSS<\/H3>$/){ $insw = 1; }elsif(/^\s+<\/DL>/i){ $insw = 0; } if($insw == 1 && $_ =~ /^\s+
(.*?)<\/A>$/i){ $url = $1; $favorite = $2; if($favorite =~ /$pattern/o){ $url_encoding = &juri_encode($url); $favorite_encoding = &juri_encode($favorite); print "
\n"; } } } close(IN); print "
$favorite$urlメモ作成

\n"; sub juri_encode{ local($str) = @_; $str =~ s/([^a-z0-9\-_.!*'\(\)~ ])/length($1) == 2 ? sprintf "%%%1s%1s%%%1s%1s", split("",unpack("H4", $1)) : sprintf "%%%02X", ord($1)/egi; $str =~ tr/ /+/; return $str; }