使用开源软件Lilina构建RSS聚合器

来源:百度文库 编辑:神马文学网 时间:2024/03/29 16:21:01
随着Blog和Wiki在互联网上的蓬勃发展,RSS作为使用XML描述和同步网站内容的格式,正在逐渐的被人们所熟知。国内外的一些著名媒体网站如BBC、百度、新浪等也都推出了基于RSS技术的新闻聚合服务,网友们可以根据自己的需要选择自己喜欢的新闻资讯频道,使用RSS聚合器(Aggregator)进行阅读获取最新的文章消息。一般来说,RSS聚合器分为3种:第一种是桌面型的RSS聚合器,如国外的FreeDemon和国内的看天下阅读器和周博通阅读器等;第二种是网上运营商所提供的RSS新闻聚合页面服务,比较著名的有del.icio.us和天天网摘等;最后一种就是用户自己管理的在线RSS聚合器,这种聚合器也是基于Web方式管理和使用的,但要求使用的用户拥有Web服务器并安装PHP及MySQL等,下面我们要介绍的就是基于PHP建立的一个新闻聚合程序Lilina。
介绍
Lilina是采用PHP语言编写的开放源码的RSS新闻聚合器,虽然简单,但是功能还是比较强大,使用起来也比较上手。它无需使用MySQL等数据库的支持,而是基于文本方式进行存储,所有得到的信息均存储到cache目录下进行解析使用web页面进行显示。RSS的解析采用非常优秀的MagpieRSS库进行处理,而且Lilina本身内部就包含了MagpieRSS库,无须另外安装。它具有自动发现(Auto-Discovery)的特性,使用接口比较简单。
安装
Linina的官方主页是:http://lilina.sourceforget.net ,当前的最新版本是0.7。从网站上下载到源程序包lilina-0.7.tar.gz后,在本地解压,并提交到web服务器的文件夹下,这里我们假设所使用的web服务器的地址为:http://www.myweb.com ,提交的文件夹名为lilina。这里需要注意的是,一定要保证lilina目录下的.myfeeds.data和cache目录是具有可写属性的。
配置
提交完lilina目录后,我们需要对lilina进行配置,配置文件为lilina目录下的conf.php,其内容一般如下,我们一般只需要修改最上面的几行即可:
<?
$BASEURL = ’http://www.myweb.com/lilina’ ; // lilina目录的web地址
$USERNAME = ’user’ ; // 管理员名
$PASSWORD = ’pass’ ; // 管理员密码
$SITETITLE = "My lilina news aggregator" ; // lilina页面标题
$OWNERNAME = "user" ; //用户名
$OWNEREMAIL = "admin@myweb.com" ; //管理邮件
$DATAFILE = ’./.myfeeds.data’ ; //数据文件
$TIMEFILE = ’./.time.data’ ; //时间文件
$GOOGLE_KEY = ’’ ; // 使用google API关键字. 详细信息可以访问 http://www.google.com/apis/
/*
这里是对del.icio.us进行的操作,一般最好无须配置,作者给出了原因如下:
IMPORTANT NOTE! Setting ENABLE_DELICIOUS to 1 will make lilina poll del.icio.us for tags.
THIS MAY RESULT TO DEL.ICIO.US BANNING YOUR IP!!!
Until del.icio.us officially allows such use, it is better to leave this to 0.
*/
$ENABLE_DELICIOUS = 0 ;
/*
缓存失效时间,默认为1个小时,可以根据需要进行修改,单位为秒。
可以通过强制调用 index.php?force_update=1 的办法进行强制失效处理
*/
define(’MAGPIE_CACHE_AGE’,60 * 60*1);

使用
经过以上的配置,就可以开始使用Lilina来做RSS新闻聚合了,首先我们打开http://www.myweb.com/lilina/edit.php ,这时我们可以看到如下的页面图1:

图1
填写好配置文件中设置的用户名和密码之后,进入到管理页面,就可以任意添加自己喜欢的RSS源了,如图2所示。第一行文本框用来添加RSS源的地址,第二行文本框可以用来导入OPML文件(格式化的XML文件,用来记录RSS源的一个XML集合文件),已经添加的RSS地址在页面上都会在添加后显示出来。

图2
经过添加操作之后,我们就可以打开Lilina的主页面来欣赏我们自己定制的新闻频道了,如图3所示。

图3
最上面一行的链接,24h、48h、week和all分别可以代表选择不同时间段的新闻内容,expand表示同时显示标题和新闻简介,collapse表示收起所有的新闻简介,只显示标题。图3的页面上显示了2005年6月24日笔者的新闻聚合内容,红色字体显示的是标题,灰色字体表示新闻的来源,页面的右边为RSS源的总体介绍和图标。点击页面上的红色字体可以打开新闻简介,如图4所示。如果你对这条新闻感兴趣,只要点击红色字体后面紧跟着的灰色新闻来源,即可链接到这条新闻的真正页面上,详细了解新闻信息。

图4
当然,也许你认为这样的页面不是很好看,如果你了解CSS样式表的话,你也可以参考lilina里的style.css的模版编辑自己的样式表,并修改lilina目录下的index.php文件中的如下行所示:
<title><?=$SITETITLE?></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
/* 修改href后的内容为自己定义的样式表格式 */
<link rel="stylesheet" type="text/css" href="style.css"media="screen"/>
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
这里可以展示Lilina提供的另外一个页面样式,如图5所示:

图5
结束语
通过以上的介绍,一个基于Lilina的个人新闻聚合页面就建立起来了,我们完全可以对它进行扩充,把它作为个人主页的一个部分展示出来。目前网络上已经有使用Lilina构建的个人新闻聚合主页存在了,比较著名的如国内车东先生的主页:http://www.chedong.com 。相信随着Lilina程序的不断完善,一定会给大家带来更加完善和满意的聚合功能。_xyz