jsRSS++ v3.13
jsRSS++ v3.13 を公開しました
3.12からの変更点
・Yahoo!ブログの日付フォーマットに対応
微修正です
上記以外の変更点はありません
●jsRSS++とわ?
ページ埋め込み型 RSS リーダです
blog サイトを始めとする RSS を配信しているサイトが増えていますが
jsRSS++ では配信されている RSS を読み込み JavaScript を使って
自分のサイトの好きな所に貼り込む事が出来ます
リスト表示/ポップアップ表示を含めた各種設定は
CGI 呼び出しの際の引数を変えるだけで変更する事ができます
RSS と書いていますが atom も読み込む事が出来ます
blog サイトを始めとする RSS を配信しているサイトが増えていますが
jsRSS++ では配信されている RSS を読み込み JavaScript を使って
自分のサイトの好きな所に貼り込む事が出来ます
リスト表示/ポップアップ表示を含めた各種設定は
CGI 呼び出しの際の引数を変えるだけで変更する事ができます
RSS と書いていますが atom も読み込む事が出来ます
●サンプル
●ダウンロード
●スクリプトの修正
以下の箇所を各自の環境に合わせて修正して下さい
#!/usr/bin/perl
perlのパス:サーバ環境にあわせて書き換えて下さい
#use lib './lib';
use Jcode;
Jcode.pm の呼び出し:サーバに Jcode がインストールされていればこのままにしてください
インストールでなく FTP 等で追加アップロードした場合は
use lib './lib';
のようにして書き換えてください
例えば、MovableTypeをインストールしている場合は /任意のディレクトリ/mt/extlib 内に Jcode.pm があるので
use lib './任意のディレクトリ/mt/extlib' となります
※ Jcode に関してはコチラをご参考にしてください
my $dir = 'feed';
RSS 保存ディレクトリ:任意に変更して下さい
mmy $check = 60;
更新間隔(分):任意に変更して下さい
読み込む RSS の最終更新時間が設定時間以内ならば
サーバローカルに保存してあるデータを読み込みます
my $TimeZone = +9;
設置するサーバのタイムゾーンです
GMTに対しての数字なので、日本にあるサーバなら +9のままで大丈夫です
my $acchk = '1';
外部サーバからのアクセス:許可する場合は空欄にしてください
ホスティングサービスに拠っては CGI の貸し出しになるような使い方を禁止していますので
特に必要がなければこのままにしておいてください
my $dir_temp = 'temp';
テンプレート設置ディレクトリ:任意に変更して下さい
my $def_temp = 'RSS1.0.tmp';
デフォルトテンプレート名:テンプレートを指定しなかった際に使用するテンプレートを指定します
my $CR = 'no';
下部のスクリプト名(+リンク)の表示('no'以外だと表示されます)
#!/usr/bin/perl
perlのパス:サーバ環境にあわせて書き換えて下さい
#use lib './lib';
use Jcode;
Jcode.pm の呼び出し:サーバに Jcode がインストールされていればこのままにしてください
インストールでなく FTP 等で追加アップロードした場合は
use lib './lib';
のようにして書き換えてください
例えば、MovableTypeをインストールしている場合は /任意のディレクトリ/mt/extlib 内に Jcode.pm があるので
use lib './任意のディレクトリ/mt/extlib' となります
※ Jcode に関してはコチラをご参考にしてください
my $dir = 'feed';
RSS 保存ディレクトリ:任意に変更して下さい
mmy $check = 60;
更新間隔(分):任意に変更して下さい
読み込む RSS の最終更新時間が設定時間以内ならば
サーバローカルに保存してあるデータを読み込みます
my $TimeZone = +9;
設置するサーバのタイムゾーンです
GMTに対しての数字なので、日本にあるサーバなら +9のままで大丈夫です
my $acchk = '1';
外部サーバからのアクセス:許可する場合は空欄にしてください
ホスティングサービスに拠っては CGI の貸し出しになるような使い方を禁止していますので
特に必要がなければこのままにしておいてください
my $dir_temp = 'temp';
テンプレート設置ディレクトリ:任意に変更して下さい
my $def_temp = 'RSS1.0.tmp';
デフォルトテンプレート名:テンプレートを指定しなかった際に使用するテンプレートを指定します
my $CR = 'no';
下部のスクリプト名(+リンク)の表示('no'以外だと表示されます)
●設置&実行
CGIが実行可能な任意のディレクトリにアップロードして下さい
任意のディレクトリ ---- jsRSS.cgi(755)
+ feed(777など)
+ temp(555など)
()内はパーミッション ※御利用のサーバに因って変わる場合があります
表示させるページの任意の場所に
<script language="JavaScript" src="./jsRSS.cgi?url=http://www.daikoku-ya.org/atom.xml::line=10::enc=euc::temp=RSS1.0.tmp"></script>
のように記載して呼び出します
オプションとして指定出来るのが下の4つです
line=5 表示件数
enc=euc 文字コード(jis or sjis or euc or utf8)
temp=RSS1.0.tmp 表示用テンプレート名
len=20 概要の表示文字数(仮実装)
※表示形式、日時表示、概要はテンプレートで設定するようになりました
デフォルト(上記の設定)のままでよければオプションの指定を省略できます
len は指定しなければ向こうです
これらのオプションを :: で繋ぎます
通常、引数の連結は & ですが RSS を動的に生成するサイトで
RSS への URL に & が含まれる場合があるので :: としました
任意のディレクトリ ---- jsRSS.cgi(755)
+ feed(777など)
+ temp(555など)
()内はパーミッション ※御利用のサーバに因って変わる場合があります
表示させるページの任意の場所に
<script language="JavaScript" src="./jsRSS.cgi?url=http://www.daikoku-ya.org/atom.xml::line=10::enc=euc::temp=RSS1.0.tmp"></script>
のように記載して呼び出します
オプションとして指定出来るのが下の4つです
line=5 表示件数
enc=euc 文字コード(jis or sjis or euc or utf8)
temp=RSS1.0.tmp 表示用テンプレート名
len=20 概要の表示文字数(仮実装)
※表示形式、日時表示、概要はテンプレートで設定するようになりました
デフォルト(上記の設定)のままでよければオプションの指定を省略できます
len は指定しなければ向こうです
これらのオプションを :: で繋ぎます
通常、引数の連結は & ですが RSS を動的に生成するサイトで
RSS への URL に & が含まれる場合があるので :: としました
●テンプレートファイルの作り方
同梱の temp フォルダ内の「About Template」を参考にして下さい
トラックバック(7)
このブログ記事を参照しているブログ一覧: jsRSS++ v3.13
このブログ記事に対するトラックバックURL: http://www.daikoku-ya.org/mt/mt-tb.cgi/33
» jsRSS Yahoo!ブログの日付フォーマットに対応(Akkie'sBlog ...na konogoro)~のトラックバック
大黒屋本舗様ありがとうございます!大黒屋本舗 :: jsRSS v3.133... 続きを読む
» サイトにRSSを埋め込んで表示させる方法(nJOY BLOG)~のトラックバック
「nJOY」のトップページにこのブログの最新記事を埋め込みたいなぁと思い、色々とネットを検索して使えそうなものを何個か見つけました。 まず一番最初に試した... 続きを読む
» サイトにRSSを埋め込んで表示させる方法(nJOY BLOG)~のトラックバック
「nJOY」のトップページにこのブログの最新記事を埋め込みたいなぁと思い、色々とネットを検索して使えそうなものを何個か見つけました。 まず一番最初に試した... 続きを読む
» jsRSS Yahoo!ブログの日付フォーマットに対応(Akkie'sBlog ...na konogoro)~のトラックバック
大黒屋本舗様ありがとうございます!大黒屋本舗 :: jsRSS v3.133... 続きを読む
» カテゴリー別RSS作成→HTMLに埋め込み(スズ風呂)~のトラックバック
今別サイトを作成していて、そこにこのブログのエントリーを反映させたいなと思って... 続きを読む


大黒屋様。
ここで質問させてもらっても良いのでしょうか?
探していた機能はこれだ!と早速ダウンロードさせていただきました。
無事に設置できてWinはIEでもFireFOXでもOKだったのですが、Macで確認したところ、FireFOXでは大丈夫でしたが、IE5.2では「Bad Call!!」と出てしまいました。
原因は何が考えられるでしょうか?
はじめまして。
jsRSS++ とても気に入って使わせ頂いてます。
質問よろしいでしょうか?Description部分にURLが入ると改行されずにデザインが崩れてしまいます。何か良い解決方法はありますでしょうか。CSSのword-break: break-all;を使うと出来ますが、IEのみ有効のようで・・・
次にここを見ながら、Description部分の全角英数字を半角英数字に変換出来ればと思ったのですが、知識不足うまくいきませんでした。。よろしければ、解決方法お願いします。
参照したURLが消えてました。http://www.din.or.jp/~ohzaki/perl.htm#JP_Z2Hです。
間違ってトラックバックを2つ送ってしまいました。お手数ですが、重複した分を削除していただけますでしょうか?
削除後はこのコメントも消してくださってかまいません。本当にどうもすいませんでした。
大変遅くなりました _o/|_
やっと手が空きました・・・
>もんさん
どうやらMacIE5.2はリファラをまともに返さないようです
40行目
my $REFF = $ENV{HTTP_REFERER};
を
my $REFF = 'www.daikoku-ya.org';
のようにして 「www.daikoku-ya.org」の部分は
御自分の設置するサーバ名に書き換えてみてください
>ゆうさん
連続した半角文字が改行されないのはブラウザの仕様なので
なかなか難しいですねぇ・・・
スラッシュの後ろに<wbr>を付けるとか
全ての改行位置を文字数で決めてしまうか・・・
どちらにしても改造になりますが
全角数字を半角数字に置き換えるのは
214行目の
&Jcode::convert(\$RSS,$enc) if($enc ne 'euc');
の前の行に
Jcode -> new(\$RSS) -> tr('0-9A-Za-z', '0-9A-Za-z');
を追加して下さい
# Jcodeの使い方がバラバラなのは・・・ 仕様です<^^;>
結局を使うことにしました。文字の置き換えも無事成功しました。ご回答ありがとうございます。
はじめまして。
jsRSS3.13を使用させていただいております。
rdfのitemのみ表示させたいのですが、どの様にしたらよいでしょうか。
ご多忙中恐れ入りますが、ご教授の程お願いします。
はじめまして
jsRSS3.13を使用させていただいてます。RYOといいます。
ブログの検索エンジンを運営しているのですが、このCGI1つを数百ものブログで使うのは、無理がありますか?
現在100サイト分くらいを表示させています。
若干重たいですが。
CGIの数を増やせば数はクリアできますが、1つのCGIでいくつぐらいを目安に使えばいいでしょうか?100は多すぎですか?
それとfeedに保存されるキャッシュは、各ブログのトップページのエントリーをすべて保存していますが、これを最新のエントリーのみを保存するように出来ますか?ブログによってはかなりファイルの容量を食ってしまうので、ちょっと悩んでます。
相変わらずレスポンスが悪くて申し訳ありません _o/|_
>ゆうさん
何を使ったのか抜けててアレですが解決されたようで何よりです
>sovaさん
rdf の item との事ですが、RSSのどのバージョンでも
item は各エントリー内の要素を1つにまとめる為に使われています
RSS1.0(MTの場合)では <item rdf:about='〜' として
<link>の内容が記載されていますがコレのコトでしょうか?
>RYOさん
たとえば20のCGIに分散させたとしても
同じサーバにあって呼び出される頻度が同じであれば
それほど変らない気がします
サーバスペック次第ではないかと・・・
スクリプトを分割して更新チェック、パース、出力等に分け
さらに .js形式でファイルとして更新時間内だったらそれを読み込む
と言った感じにすればだいぶ軽減されるとは思いますが
改造の範疇を越えてしまいますので・・・
最新のみにすると更新が無かったトキに中身が空になってしまうかと思いますので
最新n件という感じではいかがでしょう?
334行目
my @data = @{$_[0]};
の次の行に
splice(@data,n);
を入れれば最新のn-1件だけがキャッシュされます
(nは保存件数+1に置き換えます:5件保存ならnは6)
レスありがとうございます。
nを数字に変えればいいんですね。
ありがとうございます。早速試しています。
RSSの情報を読み込む時間(WEB表示時にかかる時間)を指定する事はできますか?
指定のサイト自体(使用サーバー)が重たいと
こちらのサイトにも影響がでますよね。
相手の情報取得にかかる、時間を1秒、2秒と指定することはできますか?
2秒以内にRSSの情報取得に時間がかかる場合は表示しないようにすることは可能ですか?
何度もすいません。
>スクリプトを分割して更新チェック、パース、>出力等に分け
>さらに .js形式でファイルとして更新時間内>だったらそれを読み込む
>と言った感じにすればだいぶ軽減されると>は思いますが
>改造の範疇を越えてしまいますので・・・
とは、どうすれば良いのでしょうか?
作成いただくことは出来ますか?
多忙の所申し訳ございません。お時間のあるときにご返事ください。
通常のタイムアウトの場合の処理は次のアップデートで追加するつもりですが
時間制限を入れる予定はありません
双方のサーバの状態&ネットワークの状況に因ると思われますので
その辺りを時間で切ってしまうのは現実的では無いと思われますので
「スクリプトを分割〜」云々に関しましては現状のモノの改造でなく
殆ど1から新しく作る事になりますので
フリーのスクリプトとしての制作予定はありません
レスありがとうございます。
次回のアップデートをお待ちしています。
ありがとうございました。
レスありがとうございます。
説明が不十分ですみません。
デフォルトのjsRSS3.13の仕様ですとchannelのtitle(link)も表示されますが、これを表示せず、itemのtitle(link)のみ表示させたい場合、どの様に変更したらよろしいでしょうか。
新着情報などの各記事タイトルをトップページに表示させたいと思い、奮闘しております。
よろしくお願いいたします。
はじめまして!
jsRSSを愛用させていただいているものです。
ちょっとこのソフトの使用意図とは異なってしまうと思いますが、
単純に、UTF-8のRSSをSJISにエンコードするだけの機能を使うことは可能でしょうか。
jsRSSの機能にはエンコード機能は含まれていますので、
その他の機能(テンプレートで表示をしたり、javascriptのコードを表示する機能)をOFFにしたいということです。
もし、これを簡単に行えるのであれば、ご教授いただけるとうれしいです!
宜しくお願いします。
この休みを利用して、jsRSSでnucleusとサイトを連動させようと頑張っています。
現状では、nucleusの吐き出すRSSと相性が悪いらしく、タイトルとデスクリプションが表示されないようです。
(タイム表示は正常にでます)
nucleusのRSSでは[CDATA]なるタグが、それらの前に入っているんですが、それがあると、どうやら表示されないようなのです。
もし、お手すきでしたら対応していただけますか?
こういう時、自分でもプログラムができたらなあって思いますね。
はじめまして
tDiaryで利用しようとしているのですが上手く
行きません
一応プログラムが走るところまで行ったのですが
一応同じサーバー内で走らせてるのですが
フルパスではURLすら見つけられず
サイト内からパスをたどるとURLは見つけられるのですがタイトルしか吐き出しません
RSSを吐き出すプラグインは入れてるのですがtDiaryではjsRSS動かないのですか?動くとしたら動かない理由どのような理由が考えられますか?
ぶしつけな質問でもうしわけないです もう半日以上悩んでます(´Д`;
記事概要の文字数はlen=で設定できるようですが、記事タイトルの文字数は設定不可能でしょうか。やたら長いタイトルの記事サイトとかあるので、表示されるタイトル文字数を10文字とかに設定したいのですが。
相変わらず停滞前線状態で申し訳ありません _o/|_
> sovaさん
サイト情報なしでエントリーのみというコトでしょうか?
でしたら、使用されているテンプレートの
$RSS{header} 部分の不必要な部分を削除して頂ければ大丈夫だと思います
その際、$RSS{footer} に</div>が有りますので
必要無ければこれも削除して下さい
> koujiさん
jsRSS++では読み込んだRSSをパースしてデータとして保存しますので
コンバータとして使用するには向きません
が、別件で個人的に使ってたモノをβ版として公開しました
RSSconv0.1b
試しに御利用頂けたらと思います
> こっこめさん
<![CDATA[ ]]>タグは以前は削除していたように思うのですが
なんらかの理由で削除しない仕様にしたように思います(あいまい)
3.14で on/off 設定出来るようにしましたので御利用ください
> Ambiv@lenzさん
tDiaryでというよりtDiaryのRSSをトップに表示させる
というコトでよろしいんですよね?
3.14で tDiary の content:encoded も拾うようにしました
また、<![CDATA[ ]]>タグは off に設定して下さい
# content:encoded って初めて見ました・・・
> nobuさん
3.14にてタイトルの文字数も指定できるようにしました
が、descriptionを同様に仮実装です
というか、仕様が固まって無いだけですが・・・
date2rssからjsRSSを使っています。
とても便利です。ありがとうございます。
ひとつ質問があるのですが、
jsRSSの日付を昇順にすることは簡単にできるのでしょうか?
ちょっと暫定的なのですが・・・
3.15 の場合
174行目に for(1..$line) があるのですが
この行の前に
shift @data;
splice(@data,$line + 1);
@data = reverse @data;
と入れてみてください
# 2行目と3行目を一緒にしようとしたら reverse が優先されてしまった・・・
できました!!
無料なのに、サポートまでしていただいてありがとうとざいます。
助かりました。