jsRSS4++

jsRSS++とわ?

ページ埋め込み型 RSS リーダです
blog サイトを始めとする RSS を配信しているサイトが増えていますが
jsRSS++ では配信されている RSS を読み込み JavaScript を使って
自分のサイトの好きな所に貼り込む事が出来ます

リスト表示/ポップアップ表示を含めた各種設定は
CGI 呼び出しの際の引数を変えるだけで変更する事ができます

RSS と書いていますが atom も読み込む事が出来ます

サンプル

ダウンロード

以下のファイルをダウンロードして下さい

jsRSS4_0.zip(53.3KB)

ファイル内容

ダウンロードしたZIPファイルには以下のファイルが含まれています

 jsRSS.cgi    スクリプト本体
 jsRSS_conf.cgi 設定ファイル
 lib/      ライブラリフォルダ
 cache/     キャッシュファイル用フォルダ(空)

libフォルダ内にはPerlモジュールであるXML::TreePP、XML::FeedPP
および両モジュールに関連したファイルが含まれています

XML::TreePP、XML::FeedPPはKawa.netの川崎有亮氏
が作成したPerlモジュールです
両モジュールの著作権は川崎有亮氏が有します

CPAN >> XML::TreePP
    XML::FeedPP

このような便利なモジュールを作成された川崎有亮氏に感謝致します

スクリプトの修正

以下の箇所を各自の環境に合わせて修正して下さい

jsRSS.cgi

#!/usr/bin/perl
perlのパス:サーバ環境にあわせて書き換えて下さい
my $def_conf = 'jsRSS_conf';
デフォルトの設定ファイル名を変更した場合は書き換えて下さい
my $cache_dir = 'cache';
feedデータ保存ディレクトリ:任意に変更して下さい
my @callfrom = (
'http://www.daikoku-ya.org/',
'http://127.0.0.1/',
);
jsRSS++ スクリプトの呼び出しを許可するサーバを列挙します
列挙したサーバ以外から呼び出しは出来ません
use lib './lib';
同梱の 'lib' フォルダに XML::TreePP、XML::FeedPP が入っています
この追加モジュールの設置場所を変更する場合は書き換えてください
解らない場合は jsRSS.cgi を lib フォルダを同じ階層に置き
この設定は書き換えないでおいて下さい

jsRSS.cgi内での設定は以上になります

その他の各設定は設定ファイル内で指定します

jsRSS_conf.cgi

※設定ファイルは今までと書式が変わり
jsRSS.cgiスクリプト本体のように $ で始まりません
また、行末に , がありますので消さないよう注意して下さい
feed => 'http://www.daikoku-ya.org/atom.xml',
読み込むサイトのFeed(RSS,Atom等):任意に変更して下さい
feedline => 5,
表示させる記事の数:任意に変更して下さい
ただし、最大でもFeedに含まれる記事数しか表示されません
encode => 'utf8',
表示させるページの文字コード
( [ utf8 | euc-jp | jis | sjis ] )から選択して下さい
title_length => 20,
タイトル文字の表示数 (0 で制限無し):任意に変更して下さい
記事のタイトルの表示文字数を指定します
指定した文字数以降を省略し、'...'を付けます
description_length => 40,
要約文の文字の表示数 (0 で制限無し):任意に変更して下さい
記事の要約文の表示文字数を指定します
指定した文字数以降を省略し、'...'を付けます
check_interval => 240,
更新間隔(分):任意に変更して下さい
読み込む RSS の最終更新時間が設定時間以内ならば
サーバローカルに保存してあるデータを読み込みます
HTMLTAG => 'cut',
html のタグを削除する場合は 'cut'、無効化は 'off'
add_block => 'yes',
広告記事を表示させない場合は 'yes'
add_prefix => [
'PR: ',
'AD: ',
],
広告記事の先頭の文字を指定
上記の場合、'PR'だけにしてしまうと
'PRESENT' 等でタイトルが始まる記事も非表示になるので
明らかに広告の先頭文字である事が解る部分まで指定してください
new_entry => 48,
新規エントリー表示期間(時間):任意に変更して下さい
new_mark => '★',
新規エントリーマーク:任意に変更して下さい
上記で指定した期間内であれば表示される文字です
whatsnew_front => '<span class="new">',
新規エントリーの前に置くテキスト:任意に変更して下さい
機能的には上のマークと同じですが
前後に挟み込むように置けるのでタグ等を書きやすくなります
whatsnew_back => '</span>',
新規エントリーの後に置くテキスト:任意に変更して下さい
同上
time_format => "y/m/d",
日時の表示形式:任意に変更して下さい
各アルファベットが対応する数字に置き変わります
(y = 年,m = 月,d = 日,H = 時,M = 分,S = 秒)
[ y年m月d日H時M分S秒 ] など自由に設定できますが
置き換えに使われるアルファベットは使えません
header => ('
<div id="jsRSS">
<div id="site">
<div id="title">
<a href="#SiteLink#" target="_blank">#SiteTitle#</a>
</div>
<div id="description">
#SiteDescription#
</div>
</div>
'),
表示ヘッダ部分の設定
repeat => ('
<div class="feedline">
<div class="feedtime">
#WhatsNewFront##WhatsNew##WhatsNewBack##TimeStamp#
</div>
<div class="feedtitle">
<a href="#Link#" target="_blank">#Title#</a>
</div>
<div class="feeddescript">
#Description#
</div>
<div class="feedmeta">
#Category# / #Creator#
</div>
</div>
'),
繰り返しブロックの設定
footer => ('
#Signature#
</div>
'),
表示フッタ部分の設定

繰り返しブロックの設定が記事の表示設定回数繰り返され
その前後にヘッダ、フッタが付きます
タグのネストに気をつけて記載してください

また、HTMLソース内のCSSの id,class名等の設定は自由です
サイト内の他の id,class名とかぶらないように設定してください

データ置き換え文字列

ヘッダ、フッタ用

 #SiteTitle#     サイトのタイトル
 #SiteLink#     サイトのURL
 #SiteDescription#  サイトの概要
 #SiteCreator#    サイトの管理者
 #SiteDate#     サイト(RSS)の更新日

 #Signature#     大黒屋本舗へのリンク ※これ大事!(笑

各エントリー記事用

 #TimeStamp#     エントリーの投稿日時
 #WhatsNew#     新着マーク
 #WhatsNewFront#   新着の前に置くテキスト
 #WhatsNewBack#   新着の後に置くテキスト
 #Title#       エントリーのタイトル
 #Link#       エントリーのURL
 #Subject#      エントリーのカテゴリーなど
 #Creator#      エントリーの投稿者
 #Description#    エントリーの概要

各サイト、出力されるRSSに拠って変わる要素があるので
確認しながら調整してみてください

設置&実行

CGIが実行可能な任意のディレクトリにアップロードして下さい


 任意のディレクトリ ---- jsRSS.cgi   (755など)
           ---- jsRSS_conf.cgi (644など)
            + lib      (777など)
            + cache     (755など)

()内はパーミッション

※御利用のサーバに因って変わる場合があります

基本は表示させるページの任意の場所に

<script type="text/javascript" src="./jsRSS.cgi"></script>

のように記載して呼び出します

オプションを何も指定しなかった場合は
設定ファイル => jsRSS.cgi で指定したデフォルト設定ファイル
読み込むFeed => デフォルト設定ファイルで指定したURL

呼び出し時のオプションは1つだけになりました

<script type="text/javascript" src="./jsRSS.cgi?http://www.daikoku-ya.org/atom.xml"></script>
の様にFeedのURLを指定すると、1つの設定ファイルで複数のFeedを表示出来ます

サンプル

<script type="text/javascript" src="./jsRSS.cgi?template01"></script>
の設定ファイルを指定すると呼び出すごとに設定を変える事が出来ます

サンプル
?template/01 の様にディレクトリ内に入れる事も出来ます
(.cgi は付けても付けなくても構いません)

更新履歴
v4.0 2012.05.12 公開
  • スクリプトの文字コードをUTF-8に変更
  • Jcodeの使用をやめてEncodeを使用
  • Feedの取得をSocketからLWPに変更
  • XMLパーサーとしてXML::TreePP、XML::FeedPPを使用
  • 各設定をテンプレートファイルで指定する様に変更
  • <![CDATA[ ]]>に関する設定を無くしデフォルトで表示に変更
  • 広告記事の非表示機能を追加 サンプル
  • 内部コードを修正
OpenID対応しています OpenIDについて
Creative Commons License
このブログはクリエイティブ・コモンズでライセンスされています。

社交的情報網



助力

大黑屋本舗