对于某些自己喜欢的却没有RSS订阅功能的网站,可以通过Feed43定制抓取规则来获取所需信息。但由于其服务器在国外,抓取时常失败,且免费账户抓取频率太低,遂仿造他自行实现了一个并挂到服务器上,然后通过鲜果网来阅读。不过很可惜,鲜果是通过RSS被订阅数来调整更新间隔的。对于我这种自己做自己看的地址,基本3天以上才更新一次,且可定制性太低(把字体调大的功能是我通过Scriptish外挂脚本实现的),逼的我决定自行挂载一个开源Rss阅读器来解决上述所有问题。
Sismics Reader,CommaFeed是两款类Google Reader的阅读器,需要自行下载Maven进行编译。在编译过程中还会自行下载各种包与程序,最终生成一个Zip文件,包括了所有需要使用的文件。我试用了CommaFeed,发现当某频道内容超过30条时多余信息无法显示的问题。
Tiny RSS最开始是某国外友人为自己开发的软件,从05年就开始开发了,后来进行了开源。下载后直接拷贝到XAMPP平台便可使用,非常方便,功能也很不错,也比较漂亮。
最终,我选择了Ting RSS。下面简要记录一下其布署过程。
一. 从官网下载源码包。可以看到其官网使用的是另一个开源项目管理软件Redmine。解压后放置Htdocs目录。注意官网上提示了所需各组件的最小版本号,不过最近一年的XAMPP平台都是可以直接使用的。
二. 使用各种工具在MySql里建一个库。按照作者的说法,TingRss可以与别的软件共用数据库,并不需要专门建库。但我作为一个程序员,还是专业一点吧。
三. 进入其Install页面进行安装。注意,页面上的数据库密码框是必填项。但如果数据库密码实际为空,则页面无法提交,这时需要修改其界面代码了。打开其Install/Index.php页面,将266行的
<input required name="DB_PASS" size="20" type="password" value="<?php echo $DB_PASS ?>"/>
改为
<input name="DB_PASS" size="20" type="password" value="<?php echo $DB_PASS ?>"/>
四. 安装完成后会在根目录生成一个Config.PHP文件,打开它,在第52行,将PHP_EXECUTABLE变量值修改为实际路径。比如我的就修改为下
define('PHP_EXECUTABLE', '"../../php/php"');
五. 这时便可使用管理员登录系统并作各种设置了。
注意,由于本软件一开始是给个人使用的,所以其并没有注册新用户之说。所有的用户都由管理员添加。
如果觉得字体太小,可以通过自定义CSS的功能来进行调整,比如我的就调整如下
.hl div.hlTitle a { font-size: 32px; } div.postContent p { font-size: 32px; line-height: 1.8em; max-width: 100%; } a.hlFeed { font-size: 24px; } div.cdmHeader a.title { font-size: 32px; } div.cdmHeader span.author { font-size: 24px; } div.cdmHeader div.hlFeed a { font-size: 24px; } div.cdmHeader span.updated { font-size: 24px; } div.cdmHeader span.collapseBtn img { width: 128px; height: 32px; } div.cdmContentInner p { font-size: 32px; line-height: 1.8em; max-width: 100%; }
软件还带有OPML功能,可以很方便的从别处批量导入订阅源。
六. 阅读器对订阅源的访问是通过另一个PHP命令行程序实现的。比如在我电脑上,打开命令行,然后输入
G:xamppphpphp "G:xampphtdocs t-rssupdate.php" --daemon
这时就会看到程序尝试从各个地址获取最新信息。获取完成后休眠2分钟后再获取,不断循环。
这个命令窗口是不能被关闭的。如果觉得碍眼,可以通过Vbe脚本的方式让它在后台执行。首先建立一个批处理文件,输入上面的代码,然后建立一个Vbe文件,输入下面的代码:
set ws=wscript.createobject("wscript.shell") ws.run "tt-rss-update.bat /start",0
将两者放在同级目录,双击Vbe即可。
还可以为Vbe文件建立一个快捷方式并加入到开始菜单的启动项中,这样就实现了开机自动运行。
七. 在使用过程中,在登陆时可能会遇到如下错误
Session failed to validate (incorrect IP)
这是因为软件中默认开启了一项安全设置,当本次登陆与上次登陆IP不一致时就会报此错误.关闭他也很简单,只需在config.php关闭设置即可.
define('SESSION_CHECK_ADDRESS', 0);
参考地址
Howto Mongoose PHP PostgreSQL TT-RSS on Windows