2010年3月24日星期三

饭否存档动态化脚本(附Linux下安装和使用方法)

你可能在之前看到过我发布的饭否存档动态化脚本的测试版。这次我用PDO改写了程序,终于完成了可用的最终版,也不需要劳烦MySQL的大驾了。

下面附上Linux下的安装方法:

sudo apt-get install build-essential automake libsqlite3-dev sqlite3 libsqlite3-0 ruby
wget http://rubyforge.org/frs/download.php/69365/rubygems-1.3.6.tgz
tar xf rubygems-1.3.6.tgz
cd rubygems-1.3.6/
sudo ruby setup.rb
sudo gem install activerecord sqlite3-ruby hpricot
#(如果这一步出现编译错误,请安装对应的开发包。然后重新运行这个命令。)
下载ff2db(Skydrive下载),把饭否存档放到某个路径下,比如,家目录中:

unzip -q ff2db.zip
cd ff2db
ruby convert.rb ~/fanfou_????.zip all[或safe] -z
#其中,????指的是官方存档的文件名中的一串唯一的ID,all选项将包括私信,而safe选项则不会包含私信。
等待片刻(可能是几分钟,取决于你的饭否消息数量)。程序执行完毕后,将ff2db目录下的fanfou目录上传到服务器即可。我不敢保证所有的服务器都支持PDO扩展和SQLite3,因此,你自行选择吧。

虽然你也可以先解压缩存档,但是我不推荐你这么做。更多信息,参考ff2db(Skydrive下载)中的README。其实里面也没写多少内容。

最后提示一点,提取之后的消息数显示可能和存档显示的消息数不一样(貌似原版的消息数没有计算收藏,有时减去收藏也凑不满原版的消息数)。如果你想更加“原汁原味”的消息数,你可以打开生成的fanfou目录中的config.inc.pho,取消注释类似下面的这行:

define("STATUSES", "????") // If you want the original count, uncomment this line.
动态化后的饭否演示如下:ven.ven(有私信),  venj(无私信)


update:
因为blog被迫搬家,所以,暂时没有动态演示。抱歉。

update2:
加上了一个演示地址。因为没有空间放,只能丢Godaddy的免费空间,所以有广告条。

1 条评论:

  1. [...] This post was mentioned on Twitter by 兽兽, 大菜 and Venj, topsy_top20k. topsy_top20k said: 饭否存档动态化脚本(附Linux下安装和使用方法) http://163.fm/39eIpn 动态化后的网站演示:http://labs.venj.me/fanfou/venj/ [...]

    回复删除