RSSI++ 0.9β
リクエストがありましたので RSSI++ v0.9β を公開します
jsRSS++ v2.0b をベースに JavaScript でなく SSI で RSS を Include します
主な仕様等は jsRSS++ v2.0b と全く同じです
まだ、β版ですので不具合等あると思いますのでコメントにて御報告お願い致します
●RSSI++とわ?
ページ埋め込み型 RSS リーダです
blog サイトを始めとする RSS を配信しているサイトが増えていますが
jsRSS++ では配信されている RSS を読み込み SSI を使って
自分のサイトの好きな所に貼り込む事が出来ます
リスト表示/ポップアップ表示を含めた各種設定は
CGI 呼び出しの際の引数を変えるだけで変更する事ができます
RSS と書いていますが atom も読み込む事が出来ます
blog サイトを始めとする RSS を配信しているサイトが増えていますが
jsRSS++ では配信されている RSS を読み込み SSI を使って
自分のサイトの好きな所に貼り込む事が出来ます
リスト表示/ポップアップ表示を含めた各種設定は
CGI 呼び出しの際の引数を変えるだけで変更する事ができます
RSS と書いていますが atom も読み込む事が出来ます
●サンプル
●ダウンロード
●スクリプトの修正
以下の箇所を各自の環境に合わせて修正して下さい
use Jcode;
Jcode.pm の呼び出し:サーバに Jcode.pm がインストールされていればこのままにしてください
インストールでなく FTP 等で追加アップロードした場合は
require './パス/Jcode.pm';
のようにして呼び出してください
my $dir = 'feed';
RSS 保存ディレクトリ:任意に変更して下さい
mmy $check = 60;
更新間隔(分):任意に変更して下さい
読み込む RSS の最終更新時間が設定時間以内ならば
サーバローカルに保存してあるデータを読み込みます
my $acchk = '1';
外部サーバからのアクセス:許可する場合は空欄にしてください
ホスティングサービスに拠っては CGI の貸し出しになるような使い方を禁止していますので
特に必要がなければこのままにしておいてください
mmy $time_format = "[ y/m/d H:M:S ]";
日時の表示形式:y年m月d日H時M分S秒 となりますので任意に変更して下さい
全てを記載しなくても大丈夫です( m.d H.M 等)
my $class_site = 'RSSsite';
リスト表示時のサイト名のclass
my $class_line = 'RSSline';
リスト表示時の1エントリーのブロックのclass (div)
my $class_title = 'RSStitle';
リスト表示時のエントリー名のclass (span)
my $class_dsc = 'RSSdescript';
リスト表示時の概要のclass (span)
my $class_time = 'RSStime';
リスト表示時の日時のclass (span)
my $class_select = 'RSSselect';
ポップアップ表示時のclass (select)
my $class_option = 'RSSoption';
ポップアップ表示時のclass (option)
各要素の CSS 内で設定するクラス名:任意に変更して下さい
以下、2.0βでの追加設定項目
my $new_entry = 12;
新規エントリーマーク表示期間の設定(n時間)
my $new_mark = 'new!';
新規エントリーマーク
my $CR = 'no';
下部のスクリプト名(+リンク)の表示('no'以外だと表示されます)
use Jcode;
Jcode.pm の呼び出し:サーバに Jcode.pm がインストールされていればこのままにしてください
インストールでなく FTP 等で追加アップロードした場合は
require './パス/Jcode.pm';
のようにして呼び出してください
my $dir = 'feed';
RSS 保存ディレクトリ:任意に変更して下さい
mmy $check = 60;
更新間隔(分):任意に変更して下さい
読み込む RSS の最終更新時間が設定時間以内ならば
サーバローカルに保存してあるデータを読み込みます
my $acchk = '1';
外部サーバからのアクセス:許可する場合は空欄にしてください
ホスティングサービスに拠っては CGI の貸し出しになるような使い方を禁止していますので
特に必要がなければこのままにしておいてください
mmy $time_format = "[ y/m/d H:M:S ]";
日時の表示形式:y年m月d日H時M分S秒 となりますので任意に変更して下さい
全てを記載しなくても大丈夫です( m.d H.M 等)
my $class_site = 'RSSsite';
リスト表示時のサイト名のclass
my $class_line = 'RSSline';
リスト表示時の1エントリーのブロックのclass (div)
my $class_title = 'RSStitle';
リスト表示時のエントリー名のclass (span)
my $class_dsc = 'RSSdescript';
リスト表示時の概要のclass (span)
my $class_time = 'RSStime';
リスト表示時の日時のclass (span)
my $class_select = 'RSSselect';
ポップアップ表示時のclass (select)
my $class_option = 'RSSoption';
ポップアップ表示時のclass (option)
各要素の CSS 内で設定するクラス名:任意に変更して下さい
以下、2.0βでの追加設定項目
my $new_entry = 12;
新規エントリーマーク表示期間の設定(n時間)
my $new_mark = 'new!';
新規エントリーマーク
my $CR = 'no';
下部のスクリプト名(+リンク)の表示('no'以外だと表示されます)
●設置&実行
CGIが実行可能な任意のディレクトリにアップロードして下さい
任意のディレクトリ ---- RSSI.cgi(755)
+ feed(777)
()内はパーミッション ※御利用のサーバに因って変わる場合があります
表示させるページの任意の場所に
<!--#exec cmd="./RSSI.cgi url=http://bbws.main.jp/index.rdf::line=10::dsc=on" -->
のように記載して呼び出します
引数との連結は '?' でなく ' '(半角スペース)になります
※exec による CGI の実行が可能なページでの仕様が前提となります
オプションとして指定出来るのが下の5つです
mode=list 表示形式(list or popup)
line=5 表示件数
enc=euc 文字コード(jis or sjis or euc or utf8)
dsc=on 概要の表示(リスト表示時のみ)
dt=f 日時の表示位置(f or b)
※日時表示は 'f' がエントリータイトルの前、 'b' が後ろに表示されます
※概要、日時以外は上の設定がデフォルトになっていますので
デフォルトのままでよければオプションの指定を省略できます
これらのオプションを :: で繋ぎます
通常、引数の連結は & ですが RSS を動的に生成するサイトで
RSS への URL に & が含まれる場合があるので :: としました
※サーバに拠っては SSI で引数を渡せないコトがあるようです(ココもダメでした)
その場合は 51〜59行をコメントアウト、もしくは削除し
次のブロックのデフォルト設定をしている部分に
$url = 'http://bbws.main.jp/index.rdf';
$mode = 'list';
$line = 5;
$enc = 'euc';
$dsc = 'on';
$dt = 'f';
のように設定値を記載してください
この場合は1つのスクリプトで1つの RSS しか取得できません
ポップアップで表示させる場合は以下のソースも一緒に書き込んで下さい
読み込み用のソースより前ならば大丈夫なハズです
ポップアップをいくつ設置しても1ヶ所に書けば大丈夫です
<script language="JavaScript">
<!--
//
function popup(f)
{
var num = f.selectedIndex;
var url = f.options[num].value;
if(num != 0) { w = open(url); }
}
//
-->
</script> を記載してください
任意のディレクトリ ---- RSSI.cgi(755)
+ feed(777)
()内はパーミッション ※御利用のサーバに因って変わる場合があります
表示させるページの任意の場所に
<!--#exec cmd="./RSSI.cgi url=http://bbws.main.jp/index.rdf::line=10::dsc=on" -->
のように記載して呼び出します
引数との連結は '?' でなく ' '(半角スペース)になります
※exec による CGI の実行が可能なページでの仕様が前提となります
オプションとして指定出来るのが下の5つです
mode=list 表示形式(list or popup)
line=5 表示件数
enc=euc 文字コード(jis or sjis or euc or utf8)
dsc=on 概要の表示(リスト表示時のみ)
dt=f 日時の表示位置(f or b)
※日時表示は 'f' がエントリータイトルの前、 'b' が後ろに表示されます
※概要、日時以外は上の設定がデフォルトになっていますので
デフォルトのままでよければオプションの指定を省略できます
これらのオプションを :: で繋ぎます
通常、引数の連結は & ですが RSS を動的に生成するサイトで
RSS への URL に & が含まれる場合があるので :: としました
※サーバに拠っては SSI で引数を渡せないコトがあるようです(ココもダメでした)
その場合は 51〜59行をコメントアウト、もしくは削除し
次のブロックのデフォルト設定をしている部分に
$url = 'http://bbws.main.jp/index.rdf';
$mode = 'list';
$line = 5;
$enc = 'euc';
$dsc = 'on';
$dt = 'f';
のように設定値を記載してください
この場合は1つのスクリプトで1つの RSS しか取得できません
ポップアップで表示させる場合は以下のソースも一緒に書き込んで下さい
読み込み用のソースより前ならば大丈夫なハズです
ポップアップをいくつ設置しても1ヶ所に書けば大丈夫です
<script language="JavaScript">
<!--
//
function popup(f)
{
var num = f.selectedIndex;
var url = f.options[num].value;
if(num != 0) { w = open(url); }
}
//
-->
</script> を記載してください
トラックバック(2)
このブログ記事を参照しているブログ一覧: RSSI++ 0.9β
このブログ記事に対するトラックバックURL: http://www.daikoku-ya.org/mt/mt-tb.cgi/12


すみません、ダウンロードファイルのリンク切れてました・・・
何も反応が無かったってコトは誰も落そうとしてなかったってコトですね<^^;>
先週このスクリプトを発見した際、リンクが切れてたのでファイル名を推測してダウンロードした者です(笑)。でも今の所設置がうまく行ってません。もうしばらく頑張ってみます。
そうでしたか、お手数おかけしました _o/|_
どんな感じのエラーなんでしょおうか?
SSI だとエラーが確認しにくいかと思いますが・・・
ちゃんとリンク切れ報告するべきでした(反省)。
スクリプトの設置は、そのままだと特にエラー等は出なかったのですが動作せず、結局「引数を渡せない場合」の対処法に則リ、jcode.pmの指定間違いを直したら無事動作しました(複数設置も大丈夫でした)。今使ってるlolipop!サーバは引数を渡せない仕様なのか、己のミスの所為なのかは今の所不明です。
前記の訂正:「jcode.pmのパス記入間違い」は引数関連と別件で、私の単純なCGI編集ミスです(恥)。
当サイトも lolipop なのですが、やはり引数を渡せず
サンプルは別々のスクリプトにて表示しております
OS X のローカルサーバでは問題無かったのですが・・・
また何か有りましたらご報告お願い致します
SSI使ってできました〜。
原因は、RSSI.cgiをフォルダの中の中に入れていたことが原因でした。
「141行目(open(OUT,">$file") or 〜〜)で指定したファイル(ディレクトリ)ないよ」って文句言われ、$file設定しているところ($file = "$dir/$file" . '.dat';)を、修正したら、SSIで読み込めるようになりました。
ふぅ・・・・ありがとうございました。
ありゃ?
SSIだと呼び出し元のファイルからのパスを指定するんでしたっけ?
最近SSI使って無いからちょい怪しいです<^^;>
正式版ではその辺を明確にします
って、正式版でるのか、β版ばっか作ってて・・・
RSSI++ 0.9βをダウンロードしてページに埋め込んでみたのですが、何も変化が出ませんでした。
/RSSI.cgiに直でアクセスすると500エラーが出てしまいます。
乗せたページを見るとソースにも何も表示されなくて、なかったことになってしまいます。
サーバなどの問題でしょうか?
Jcode.pmはMTのを指定していますサーバはlolipopです。
お願いいたします。
>>hattiさん
表示後のソ−スには の部分はありますでしょうか?
これがあるならば SSI が実行されていないということになりますので・・・
直接呼び出しも Content-Type を吐き出していませんのでエラ−になります
元にしている jsRSS もバ−ジョンアップしていますので
それに合わせて修正、および独自のエラ−表示などさせたいと思います
現在jsrssを利用させてもらってます。
お世話になっています。
ただ、学校の環境がMac IE でJavascriptが正常に動作できる環境でなく読み込みが不可能です。
それでSSIを使おうと思うのですが、現在うちで使っているサーバーがexec cmdを禁止しています。で、exec cgi は許可されているのですが、このcgiはexec cgi でインクルードしても動作しますか?
ご利用ありがとうございます
基本的には exec cgi でも動作するのですが
81行目:print $RSS;
の前の行に
print "Content-Type:yexy/plain\n\n";
の一行を追加してください
これでおそらく大丈夫だと思います
ありがとうございます。
ただ、いろいろ試してみているのですが、CGIとして表示はできたんですが、RSSが読み込めてないのかうまく表示できません↓
(オプションもCGI内で設定していますが・・・。)
$RSS_TITLE
[ ".$D/AE/I" ] ".$logdata[1]."
".$logdata[2]."
てな、具合に表示されます。
http://dream-drive.net/in.shtml
試験用URL
もうちょっといろいろ試してみます
RSSのパースがうまくいってないようですね
読み込む対象のRSSを教えて頂ければzちょっとテストしてみます
(メールでも結構です)
遅くなってすみません。
RSSIで質問したHMです。
nickyという日記CGIのRSSを読み込もうとして失敗しています。
読み込みもとのRSSのURLはこちらです。
http://dream-drive.net/day/rssnicky.cgi
お手数をおかけして申し訳ありません。
コメント移動しました
nicky のRSSですがjsRSS3.15だと表示されました
おそらく RSSI0.9b のベースが jsRSS2.0βであるのが原因かと思われます
RSSI v1.0 を公開しましたのでコチラをご利用下さい
チェックしてみたところ、nicky のRSSも表示出来ました