Data2RSS++

Data2RSS++とわ?
各種データファイルを読み込み、RSS1.0、RSS2.0、Atomに変換します
対応しているデータは
・行内のデータ項目が一意の文字列(',','<>'、タブ等)で区切られている
・各行は改行文字で区切られている
・キャプション、その他のデータ以外の項目はデータ行より前にあり
 データ行には混在していない
の条件を満たすデータならほぼ変換できます(たぶん)
サンプル
Data2RSS++ v0.1b
ExcelのCSVデータを変換
 CSVからRSS1.0へ(EUC-JP)
KENT WEBさんのYYBBSによる掲示板のログを変換
 掲示板ログからRSS2.0へ(Shift_JIS)
2apes.comさんのapeboardによる掲示板のログを変換
 掲示板ログからAtomへ(UTF-8)

KENT WEBさん、2apes.comさんはサンプル用に掲示板スクリプトをお借りしただけで Data2RSS++ には一切関わりありません
※変換サンプルをブラウザで表示させる為、テストモードで表示しています
ダウンロード
以下のファイルをダウンロードして下さい

data2rss0_1b.zip(3.1KB)

スクリプトの修正
以下の箇所を各自の環境に合わせて修正して下さい
#!/usr/bin/perl
perlのパス:サーバ環境にあわせて書き換えて下さい
use Jcode;
Jcode.pm の呼び出し:サーバに Jcode.pm がインストールされていればこのままにしてください
インストールでなく FTP 等で追加アップロードした場合は
require './パス/Jcode.pm';
のようにして呼び出してください
※ Jcode に関してはコチラをご参考にしてください


# データ元の掲示板やサイトに関する設定
my %bbs = (
'url' => 'http://www.daikoku-ya.org/',
サイト、掲示板のURLを指定してください
'title' => 'CSVをRSS',
サイト、掲示板のタイトルを指定してください
'description' => 'ExcelのCSVデータ元にRSS',
サイト、掲示板の概要を指定してください
'admin' => '大黒屋',
サイト、掲示板の管理人を指定してください
);

# データファイルに関する設定
my %data = (
'file' => './excel.csv',
データファイルのパスを指定してください
パスは相対パスかフルパスになります
'skip' => 1,
データ行の前にある概要、コメント等の行数を指定してください
1行目からデータ行が始まっている場合は 0
'separater' => ",",
行内の各データの区切り文字を指定してください
タブ区切りは "\\t" となります(環境によって t の前は バックスラッシ or 半角の¥ になります)
'date' => 'yyyy.mm.dd HH:MM:SS',
日付データの形式を指定してください
 年 => y
 月 => m
 日 => d
 時 => H
 分 => M
 秒 => S
で桁数分を埋めてください ('2006/03/04' なら 'yyyy/mm/dd')
※曜日その他で上の6つの文字が使用されている場合は
 その部分を x などで文字数分埋めてください('2006/03/04 (Sat)' なら 'yyyy/mm/dd (xat)' 等)
※例外として、エポック秒('1141474898'等の10桁の数字)
 で日時が保存されている場合は 'EPOC' と指定して下さい
);

# ファイル内の各行のデータに関する設定
my %field = (
'date' => 1,
日付項目の行内での順番を指定してください
'title' => 2,
タイトル項目の行内での順番を指定してください
'category' => 3,
カテゴリー項目の行内での順番を指定してください
'description' => 4,
概要項目の行内での順番を指定してください
'name' => 5,
名前項目の行内での順番を指定してください
'content' => 6,
本文項目の行内での順番を指定してください
'link' => 7,
リンクURL項目の行内での順番を指定してください
※各順番は1からになります(0始まりでなくてOK)
);

# 出力するRSS(Atom)に関する設定
my %rss = (
'version' => '1.0',
出力RSSのバージョンのデフォルトを指定してください ('1.0','2.0','atom')
'encode' => 'euc',
出力RSSの文字コードのデフォルトを指定してください ('utf8','euc','jis','sjis')
'lines' => 15,
出力RSSの件数のデフォルトを指定してください
'length' => 80,
出力RSSの各件の概要の最大文字数を指定してください
);
設置&実行
CGIが実行可能な任意のディレクトリにアップロードして下さい

 任意のディレクトリ ---- data2rss.cgi(755など)

※()内はパーミッション
※御利用のサーバに因って変わる場合があります

呼び出す際は
http://www.daikoku-ya.org/perl/data2rss/data2rss.cgi
となります

RSSの出力に関してはデフォルト以外に呼び出し時にも指定できます
 e=utf8 (文字コード指定)
 v=atom (バージョン指定)
 l=10 (件数指定)
これらをスクリプトに '?' を付けた後に '&' で挟んで続けます

例)Shift_JIS、RSS2.0、20行の場合
http://www.daikoku-ya.org/perl/data2rss/data2rss.cgi?e=sjis&v=2.0&l=20

また、動作確認用に 'm=test' を付けるとブラウザ上にプレーンテキストで表示出来ます
備考
用途が限定されている割りには指定する項目が多いかも知れません
一応、汎用性を持たせる為です・・・
特に日付フォーマットの指定が面倒かも知れません
全部データ内はEPOCにしてくれればいいのに・・・

使用頻度の高そうな掲示板として YYBBS と apeboard をサンプルにしました
他の掲示板等ではちょっと試していないので
いろいろ試して頂けると嬉しいです

ちなみに、データに関する設定は

YYBBS
my %data = (
'file' => './yybbs/yylog.cgi',
'skip' => 1,
'separater' => "<>",
'date' => 'yyyy/mm/dd(xxx) HH:MM',
);

my %field = (
'date' => 3,
'title' => 6,
'category' => ,
'description' => ,
'name' => 4,
'content' => 7,
'link' => ,
);

apeboard
my %data = (
'file' => './apbd/apeboard.dat',
'skip' => 1,
'separater' => ",",
'date' => 'yyyy/mm/dd(xxx) HH:MM',
);

my %field = (
'date' => 5,
'title' => 7,
'category' => ,
'description' => ,
'name' => 2,
'content' => 8,
'link' => ,
);
となっています
※パスは適宜変えてください
更新履歴
v0.1b 2006.03.04 公開
OpenID対応しています OpenIDについて
Creative Commons License
このブログはクリエイティブ・コモンズでライセンスされています。

社交的情報網



助力

大黑屋本舗