BBS to Web

軟體相關需求 (requirement)

作業系統all
程式語言perl 5.8.1 or higher

緣起

基於資訊共享的大義,我常把自己一些摸索的心得寫在 無名小站的個人版(p_fcamel)。 用BBS記事是很方便,聊天也很方便,但要整埋文件就很彆手了, 再加上用網路搜尋引擎不容易找到BBS的文章,這使資訊共享有很大的限制。

bbs2web誕生了

其實只是用Perl寫個轉換程式,保留BBS的格式和顏色,轉換成HTML, 這樣看起來比較順眼。再配合自己的需求,加些處理功能,畢竟是在Web上, 處理起來比較順手。

bbs2web的功能

根據寄信來源決定是否要處理
根據收件者決定不同的處理方式
...

總之,尚在開發中,目前的功能算是夠用吧

使用說明

bbs2web從stdin讀入,預設從stdout輸出,可以加上參數使它有發揮一些附加功能。 bbs2web的輸入檔案是一封"BBS的轉信",比方從無名小站按F轉寄版上一篇文章回來, 當作bbs2web的輸入,它會略掉不必要的資訊,輸出轉換後的html。

-i:把輸出結果到資料庫裡,而不是stdout
-p:必須是合法的寄件者,才會處理,否則忽略輸入的資料(配合-i使用)
-h:輸出簡要的說明

你可以用procmail這類的後端mail程式,自動把轉錄自BBS版上的文章交由bbs2web處理, 這是我的procmailrc設定(關於procmail進一步說明,google procmail)。

:0:
* ^From.*fcamel\.bbs@wretch.*
| ~/bbs2web/bbs2web.pl -p -i
	

關於bbs2web的資料庫

基於KISS(Keep It Simple and Stupid)原則,我只有使用單純的文字格式做建檔管理, 這樣做最大的好處在於,你不用安裝和設定MySQL之類的database (往往在做A時需要B,處理B時又要先完成C,這實在很討人厭)。

bbs2web會把所有東西放在@PREFIX[]下,path必須是絕對路徑, 每篇文章標題"[]"裡的字表示分類(若沒有[],分類為etc),若該分類不存在, 會先建立目錄,並在目錄底下產生兩個檔案,.db和.sn。

.db:諸存檔案列表和其它資訊
.sn:諸存檔案序號,你不需要更動這個檔案

設定說明

使用-i時需要的設定,設定寫在source code的最上面,設定值以空白字元分隔, 例如:

my @sender = qw(
		fcamel@fc.mjwu.net
		fcamel.bbs@wretch.twbbs.org
	);
my @receiver = qw(
		someone@somewhere.org 
		chlo@csie.nctu.edu.tw
	);
# absolute path
my @prefix = qw(
		/home/fcamel/public_html/tmp
		/home/fcamel/public_html/web/docs/doc/data
	);
	
sender:充許的寄件者,使用-p參數時使用
receiver:和剩下的設定對應,根據收件者分類
prefix:存放資料的根目錄

someone@somewhere.org的prefix使用/home/fcamel/public_html/tmp, 而chlo@csie.nctu.edu.tw使用/home/fcamel/public_html/web/docs/doc/data。

Source Code (written with Perl)

bbs2web

B2W Controller(shell script + Perl)

b2w_ctrl

用來管理database的tool,執行此命令時,需要在doc root path, 以上例來說,就是/home/fcamel/public_html/tmp或/home/fcamel/public_html/web/docs/doc/data。 目前支援更換位置和刪除檔案。

Back