トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

BugTrack-plugin/325

ページの作成や編集にはユーザ登録が必要です。

RSS関連(RSS1.0、RSS2.0、Atom0.3)プラグイン

  • 投稿者: A_M
  • カテゴリ: 新規
  • 優先度: 普通
  • 状態: 提案
  • 日時: 2006年11月22日 00時41分10秒

 内容

標準で実装されるRSS機能以外の新しいバージョンに対応するためのプラグインです。

実装機能

  1. RSSフィードの出力(RSS1.0、RSS2.0、Atom0.3)
  2. RSSフィードの取り込み(RSS1.0、RSS2.0、Atom0.3)

未実装機能

フィードバージョンの選択機能

  • Wikiメニューに表示するバージョンを選ぶには、Install.pmを直接編集する必要があります。

 パッケージ

rss2_20061224.zip(859)

  1. プラグイン
    • plugin/rss2/Install.pm
    • plugin/rss2/Feed.pm
    • plugin/rss2/Aggregater.pm
    • plugin/rss2/AdminFeedChche.pm
  1. Perlモジュール
    • lib/XML/TreePP
      • XML::TreePP (CPANからダウンロードしてください)
    • lib/XML/FeedPP
      • XML::FeedPP (CPANからダウンロードしてください)

 影響プラグイン

rss (標準)

  • 排他利用となり、以下の点で影響があります。
    1. Wiki記法で rss プラグインの記法が変更されます。
    2. 管理画面でのrssバージョン指定が無効になります。

 インストール

  1. 添付ファイルを解凍し、plugin以下にファイルを展開してください。
  2. CPANで提供されるモジュールをlib以下に展開してください。
    • 必要ファイルは上記(パッケージ情報)の通り、2つです。
  1. 管理画面の「プラグイン設定画面」で rss2にチェックを入れると導入完了です。

 使用法

  1. RSS Feed(配信)
    • 標準のRSS同様にWikiメニューに表示されます。
    • feed という記法が拡張されます(pluginhelp - feed を参照)
  1. RSS Reed(受信・取り込み)
    • 標準のrssプラグインとは排他利用となります。
    • rss という記法が変更されます(pluginhelp - rss を参照)
  1. 管理機能
    • RSSはキャッシュファイルに保持しますが、管理画面にて削除するためのメニューを用意しました。

 ライセンス

GPLでお願いします。

 更新履歴

2006-11-21 ― rss2_20061121.zip
初版公開
2006-12-24 ― rss2_20061224.zip(859)
第2版公開 XMLの pubDate に埋め込む日付をAPI get_last_modified2を活用し、ソートの矛盾を修正(ご指摘くださいました ぐうます氏 にお礼申し上げます)

 その他

  • 拙作プラグイン_ex_wikianchorを併用すると、別名指定されたページタイトルをフィードのTITLEに埋め込みます。
    • FSWikiのページにも属性を持たせたいとの話題が過去にありましたので、試験的にTitle属性を実装しています。この、Title等のページ属性の保持については、他の効率の良い方法があるかも知れません。

 コメント

  • これ、非常に便利なんですが、rssの出力で属性を選べるとうれしいです。やりたいことはtitleのみを表示したいんですが。。 - kiyoji (2007年01月17日 13時14分03秒)
  • そうですね。リーダによっては、「添付画像」を表示できたら…等の要望もあるようですので、出力の内容を変更出来るバリエーションも考えてみます。 - A_M (2007年01月24日 08時08分50秒)
  • 最近使いはじめたんですが、groupに2とかbとか英数字はオッケーなのですが、記号の場合に思った通りに動作しません。具体的には「#」で始まるページをグループ化しようとすると、無指定(group= )と同じ表示が返ります。#は文字実体参照にもありませんし、どうしようかと配布ソースを眺めて考えています。 - ZON (2008年05月12日 22時10分34秒)
  • あ、追加です。group=#を指定すると、キャッシュはfeed_RSS20_3600.rssが作られ、手動で ?action=RSS20&group=3600 を指定すると期待したように表示されました。何かでエスケープすると良いのでしょうかね?もう少し自分でもやってみます。 - ZON (2008年05月12日 22時29分24秒)
  • ざっと見直しました。グループ化で前方一致の条件取得に正規表現 /\Q$group\E/ の箇所があるのですが、ココが怪しいです。メタ文字を打ち消しちゃってる為。ただ、#記号はURLに表れる時、ページ内リンクに関わる別の意味にもなるので扱いが難しいですね。 - A_M (2008年08月25日 08時09分52秒)
  • Feed.pm の45行(inline関数内)で my $file = &_get_cachefile_name($wiki,$feedtype,$update); としているところが ゴミファイル生成の原因でした。 my $file = &_get_cachefile_name($wiki,$feedtype,$group); と修正してみてください。 - A_M (2008年08月26日 07時57分29秒)
  • お疲れさまです。group=#を指定しても3600は作られなくなりました。最近始めた別の子Wikiでは「(」で始めるページを作っていますが、こちらは意図したように動作しています。リンクで「#はページ内リンクに関わる別の意味になる」って事を考えずに#で始まるページを大量に作ってしまったので、現状ではどうしようもないですね。というわけで、これは仕様と諦めて、grep とか perl を駆使して全角#に変更する事ができないか、挑戦してみます。ありがとうございました。 - ZON (2008年08月26日 22時15分53秒)
  • rssプラグインの「与えるRSSフィードのURIが長すぎるとエラーになる」と「フィードのアイテム数が1つしかないとエラーになる」という不具合を修正しました。くわしくはこちら。 - 名無しさん (2009年03月01日 12時24分47秒)
--- Aggregater.pm.org	2006-10-16 13:22:00.000000000 +0900
+++ Aggregater.pm	2009-03-01 10:03:20.799000000 +0900
@@ -50,7 +50,8 @@
 		return &Util::paragraph_error("RSSのURLが指定されていません。");
 	}
 	my $filename = $url;
-	my $cache = $wiki->config('log_dir')."/".&Util::url_encode($filename).".rss";
+	my $cache = &Util::url_encode($filename);
+	$cache = $wiki->config('log_dir')."/".&Util::md5($cache).".rss";
 
 	my $readflag = 0;
 	if(-e $cache){
@@ -95,6 +96,7 @@
 EOM
 
 	my $tpp = XML::TreePP->new();
+	$tpp->set(force_array => [ "item","entry" ]);
 	my $tree = $tpp->parse( $content );
 
 	my $ver = "RSS1.0";
  • 早速上記 ↑ 修正を使わせていただいています。それでコピー&ペーストしたファイルだとうまくpatchコマンドが働かなかった(おそらく半角空白やEOM文字のせいでしょう)ので、patch ファイルを作りました……のはいいんですが、うっかりミスったファイルを2つもアップロードしてしまいました。(紛らわしい名前をつけた自分が悪いんですが、本当にすみません) ……アップロードしたかったのは ルートディレクトリから patch -P0 < Aggregater_p0_LF.patch で使えるようにと作った Aggregater_p0_LF.patch(427) です。後の2つはミスですので無視してください。(そして削除をお願いします) ※この patch ファイルは linux環境で作りましたので文字コード euc-jp で 改行は LF です。プラグインの改行コードが FTP 転送前の CRLF だったりすると patch が警告を出して失敗しますので改行コードをどちらかに揃えてご利用下さい。 - ZON (2009年03月01日 19時50分11秒)
  • お手数をおかけし申し訳ありません。最初からpatchを添付すべきでした。diffを見ると大仰ですが、実質2、3行しか修正してないので、まあいいか、と思ってしまいました。 - 名無しさん (2009年03月02日 14時13分11秒)
  • FSWikiのバージョン3.6.3で本プラグインがインストールできません。Softwear Errorがおきます。エラー内容は「Can't call method "hook" on an undefined value at lib/Wiki.pm line 377. 」とでます。何か解決策はありますでしょうか? - LOY (2009年05月05日 12時08分29秒)
  • XML::TreePP と XML::FeedPP のインストールを済ませた状態でエラーが出るのですよね? - 菜梨 (2009年05月09日 16時09分48秒)
  • 菜梨様、ご回答有り難うございます。回答を受けて、もう一度インストールを確認したところ、インストール先のディレクトリを間違えておりました(lib/XML/TreePPorFeedPPにインストールすべき所lib以下に展開しておりました)。きちんとXML以下に入れたところ動作しました。有り難うございました。 - LOY (2009年05月11日 15時54分48秒)
  • XML::FeedPPのバージョンがあがったのか、いつの間にか、guidがいつでもisPermaLink="true"になってませんか。いっそ、guidはlinkと同じにしちゃえばいいのではないでしょうか。 - 名無しさん (2009年08月23日 08時41分29秒)
  • 文字数0バイト指定の場合、ul/liでタイトルのみリスト表示するバージョンを作ってみました。2009/03/01のpatchもあててあります。 http://github.com/freedomcat/fswiki-plugin-rss2 - shino (2009年09月23日 00時46分27秒)
  • FSWiki3.6.3.1の状態で管理画面からrssを有効にした場合と、rss2を有効にした場合それぞれで、{{rss http://.../rss.xml}}のように記述して保存してみたのですが、No such file or directoryとエラーになります。サーバーにXML::TreePP と XML::FeedPPは入っているのを確認しています。どなた様かご教授ねがえませんでしょうか - 通りすがり (2010年03月17日 19時07分58秒)
  • 検索してこちらのページを見つけましたが、いかがでしょうか。 - 名無しさん (2010年03月17日 19時23分48秒)
  • あ、ありがとうございます。症状は同じなのですが、プロクシを指さない方向性設定を行いたいのですが、UTF8にカスタマイズ修正して設置しているのが原因なのかもと思い、Aggregater.pm内のeucとutf8の変換がされているような箇所をコメントアウトしてUPしてみたりしたのですが、特にエラーが表示される訳でもないようです。log/以下には相変わらずhttpから始まる目的のファイルは作成されていないようです。んーーどうしたもんでしょう・・ - 通りすがり (2010年03月17日 23時00分24秒)
  • 「rss の URL が長くてファイルが作れない」という現象である可能性があります。サーバ OS が Windows だとその場合に「No such file or directory」が出ることが別件(BugTrack-wiki/337)から知られています。もしこれが原因なら、上記 2009年03月01日 12時24分47秒のコメントのパッチで解決するのではないでしょうか(shino さんの http://github.com/freedomcat/fswiki-plugin-rss2 はそのパッチの機能を含んでいるので、これをダウンロードして差し替えるのが手っ取り早いでしょう)。 - 菜梨 (2010年03月17日 23時33分09秒)
  • 「No such file or directory」と出る件についての情報ありがとうございます。当方サーバーはLinuxなのですが拝見し、shinoさんのものと差し替えて試してみたのですが、エラーを吐くわけでもなく、サーバーlogを見ても何も表示されない状態で、3.6.2のeuc版でも試してみたのですが、同じ状況な為、この辺りで一旦諦めモードに入ろうと思います。また折りを見てチャレンジしてみたいと思います。 - 通りすがり (2010年03月18日 10時41分56秒)
お名前: コメント:
Aggregater.patch Aggregater_p0.patch Aggregater_p0_LF.patch rss2_20061121.zip rss2_20061224.zip

最終更新時間:2010年03月18日 10時41分56秒