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++ には一切関わりありません
※変換サンプルをブラウザで表示させる為、テストモードで表示しています
・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++ には一切関わりありません
※変換サンプルをブラウザで表示させる為、テストモードで表示しています
ダウンロード
スクリプトの修正
以下の箇所を各自の環境に合わせて修正して下さい
インストールでなく FTP 等で追加アップロードした場合は
※ Jcode に関してはコチラをご参考にしてください
# データ元の掲示板やサイトに関する設定
my %bbs = (
);
# データファイルに関する設定
my %data = (
パスは相対パスかフルパスになります
1行目からデータ行が始まっている場合は 0
タブ区切りは "\\t" となります(環境によって t の前は バックスラッシ or 半角の¥ になります)
年 => 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 = (
※各順番は1からになります(0始まりでなくてOK)
);
# 出力するRSS(Atom)に関する設定
my %rss = (
);
#!/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など)
※()内はパーミッション
※御利用のサーバに因って変わる場合があります
呼び出す際は
RSSの出力に関してはデフォルト以外に呼び出し時にも指定できます
e=utf8 (文字コード指定)
v=atom (バージョン指定)
l=10 (件数指定)
これらをスクリプトに '?' を付けた後に '&' で挟んで続けます
例)Shift_JIS、RSS2.0、20行の場合
また、動作確認用に 'm=test' を付けるとブラウザ上にプレーンテキストで表示出来ます
任意のディレクトリ ---- 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
apeboard
※パスは適宜変えてください
一応、汎用性を持たせる為です・・・
特に日付フォーマットの指定が面倒かも知れません
全部データ内は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' => ,
);
'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' => ,
);
となっています'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 公開
0 乃関連付
関連付頁所在: https://www.daikoku-ya.org/mt7/mt-tb.cgi/13
御意見頂戴