2010年3月19日星期五

饭否存档动态化脚本(测试版)

最近用Ruby和PHP做了一个很乱的脚本,可以把饭否存档转换成动态的网站,支持分页。

饭否存档的制作实在是有点粗糙,每一页有1000条消息,加载一次实在是恐怖,所以如果你也像我一样,把饭否存档放到网上的,你肯定希望饭否存档能和当初的饭否一样能够快速打开,并且每一页不至于太长。这个脚本就是帮你做这件事情的。

目前这个存档有一个问题,就是数据库使用SQLite3,但是很多合租主机都不支持SQLite 3,因此只能在本地跑着玩儿。我是像做MySQL的版本,不过可能会比较烦,因为Ruby的MySQL支持依赖问题很严重,所以很难保证在所有人的机器上都能不出问题,而且MySQL需要导出到远程服务器上,不能实现自动化。所以,MySQL支持的问题慢慢说吧。。。

下面是这个脚本里自带的README:

饭否存档动态化工具(v0.2)

这个脚本是用来将饭否存档转化为动态网站的。

使用方法:

先看下面的系统要求

unzip -q ff2db.zip
cd ff2db
ruby ./convert.rb path/to/fanfou/archive[.zip] safe|all [-z]

然后把fanfou目录放到你的网站目录下,如:httpdocs,然后访问:http://xxx.xxx.xxx/fanfou/即可。
不过你得确信你的网站支持SQLite3。不过我很遗憾的告诉你,大部分合租主机都不支持SQlite3。
不过你可以在本机的测试环境中运行。


说明:

如果使用了all,那么私信也会被保存到数据库。如果你不想把私信公开,请使用safe选项。
如果你不幸拼错了safe,那么,程序会以all选项执行。
也就是说,除了使用safe,其他选项都是执行的all。

如果你指定的路径是饭否存档的压缩文件,请在最后加上-z选项。
如果你用的是Windows平台,你可能需要手工解压饭否存档到某个路径下,除非你确信你能在命令行执行unzip命令。

注意,如果你的饭否消息有很多,那么转换的过程可能需要很久。我自己的测试机器是:

- Intel Core 2 Duo 2.26GHzCPU,4G DDR3 1066内存
- 饭否消息总计约20000条,私信,收藏各接近1000,照片90。

花掉的总时间约3分钟。所以请耐心。如果你的消息仅有几百条,那么这个过程会很快完成。

系统要求:
- Ruby 1.8.7和Rubygems 1.3.x
- Sqlite 3.x
- 有以下gem包:
- ActiveRecord
- sqlite3-ruby
- hpricot

Todo:
1. 使用MySQL替代SQlite 3;


下载地址

最后,如果你的存档不是很大,而且信得过我的话,你可以把存档Email给我,我帮你转了之后回传给你。当然,这是下下策。。。

请留言汇报Bug。

没有评论:

发表评论