Gregarius+Resco Neeews打造Palm上的RSS阅读解决方案

PHP, Palm, 技术心得 Add comments

  想从Palm上看瘾科技?想用手机关注三表和菜头?Palm上的RSS阅读软件不多,中文阅读更是困难无比。中国人用Palm上阅读中文RSS FEED,最主要的难题在于:

  1、Palm内核不支持UTF-8,无法读取UTF-8编码的RSS。
  2、国内手机上网慢、贵、限流量,如果下载所有的图片,简直就是自虐和烧钱行为(特别是看瘾科技的时候)。
  3、Palm上的Java支持很差,很多现在流行的方式,例如维信(我没用过,挺感兴趣),以及各种大众化的Java软件均不适用于Palm,即使有Palm版本的(如掌讯通)也只有极少的功能。

  在Palm上阅读RSS,常用的方法不外乎:

  方案一:Blazer+Google Reader
  Blazer就是Palm上官方自带的Web浏览器,它与鲜果不兼容,而且考虑到技术水平和翻墙的用途,Google Reader无疑是最好的选择。

  优点:
  1、阅读进度与PC同步,在手机上看过的PC上就不会再提示你没看过
  2、可以标记某些Item为Starred,这样就加强了与PC的同步(DlzM提供的方法,例如你看到一篇文章,想看其中的图片,可以加星然后到电脑上看)
  3、对RSS Feed的兼容性最强

  缺点:
  1、虽然可以控制某副图片是否下载,但如果该图片带链接,点击后就直接访问了该链接,无法控制该图片的下载
  2、加星看图片的方式毕竟不方便
  3、毕竟是浏览器阅读,Google Reader并非是为移动设备设计的,版面不好看,且操纵不方便,最关键的是不能管理来源,即不能修改也不能添加RSS Feed

  方案二:QuickNews
  QuickNews是Palm上的老牌RSS阅读软件,特性包括图片的单独下载、Podcast支持(在中国用手机下载Podcast简直就是给移动注资)、代理支持(也就是说支持CMWAP)以及对不同Feed较好的兼容性。
  缺点非常明显,由于绝对不支持UTF-8,除非在源上作处理,否则根本无法阅读绝大部分中文RSS。

  方案三:Gregarius+Resco Neeews
  这才是我们要说的重头戏,既然QuickNews什么都好,就是不能读UTF-8的中文页面,那我们就需要找一个能解决这一问题、还能拥有它其他功能的方案来。
  Gregarius是著名的基于php的RSS聚合器,功能就是将你所设定的来源聚合在一起,以HTM或者XML方式输出,对于普通用户来说,其实作用和Google Reader差不多,但是Google Reader不提供XML输出。
  Resco Neeews是Palm 上RSS阅读软件的后起之秀,我是从它最初的测试版一直跟进到现在的,直到前段时间它的最新版本支持了图片的单独下载(点击图片可以选择),我才决定构建这一套解决方案。他最大的特点,是可以读取经过某种处理的UTF-8的RSS,具体是什么原理,我也没有明白,不排除是我所说的“某种处理”会根据 HTTP Request中的编码请求决定发出的编码吧。这种“处理”就是第三方的Feed托管,例如FeedBurner,但是它被盾了;FeedSky我没试过,不清楚是否有效。求人不如求己,我决定自己搭建一个Feed托管,最方便的办法就是用Gregarius了。我们来看看步骤

Gregarius部分:
  1、你需要一个php空间,最好有Cron Job的功能(Linux下的定时执行)。我用了英国的STRATO空间,因为便宜啊(一英镑一年……),而且在国外的好处还在于,我们的聚合器可以随意读取任何Feed(例如FeedBurner的)而不受大墙的限制,这也是新式的翻墙方式吧……
  2、下载最新版本的Gregarius,并且上传到服务器,不用修改任何配置文件,安装程序会帮你做一切,它会询问你数据库用户名和密码,管理员用户名和密码等等。
  3、假设你上传到的地址是http://example.com/Gregarius,则访问http://example.com/Gregarius/install.php进行安装。
  4、如果出现500错误,说明你的空间可能跟我一样没有打开mod_rewrite,请你删除服务器上Gregarius目录下的.htaccess 文件,并且访问http://example.com/gregarius/admin/index.php?domain=config,把 rss.output.usemodrewrite关掉。
  5、访问Gregarius,修改配置(可以用中文),加入Feed(可以导入OPML),然后你就获得了一个运作正常的RSS聚合器,一个你自己的Blog门户(你可以用它来代替Google Reader等阅读器,平时在PC上也可以阅读)。
  6、打开RSS输出。Gregarius默认不提供RSS输出,请到Gregarius的插件中打开RSS View插件,这样在页面的底部就会出现RSS和ATOM链接,整个聚合器、每个分类和每个源都分别有一个RSS输出。
  7、你需要有一个自动更新的方式。Gregarius默认的更新方式是,每当浏览器打开它的页面长达一定时间的时候,就开始更新。这个值可以在设置中通过rss.config.refreshafter来修改。但由于我们要用手机阅读,这显然不是一个好的办法。最笨的办法莫过于用手机访问Gregarius的首页,然后点一下更新,不过如果你没有Cron Job(或者其他任何可以定时访问某个地址的服务器),可能也只能这样了。
  利用Cron Job自动更新的方法:设置一个Cron命令为

wget -O - -q http://example.com/gregarius/update.php

  其中wget是一个简易http/ftp Client,-O表示输出到特定文件,-表示输出到的这个文件不存在(即不输出),-q表示安静模式(不在shell下返回结果)。然后设置更新频率(我设为四小时一次),其他的自己看着办就行了。如果是需要你自己输入完整命令的方式(shell下的方式),大家可以上网去搜索Cron php,可以找到Cron命令的完整使用方式。

Neeews部分:
  1、你需要有一台能上网的Palm设备(废话),我的是Treo680。
  2、安装Neeews(网上到处都有Resco全套软件的Keygen,而且Resco财大气粗,多年不换key的生成方式……Keygen我不方便提供)
  3、新建Newspaper,加入相应的Feed,我个人建议对你在Gregarius中的每个分类建立一个Newspaper,这样不需要添加很多 Feed,也不需要把所有Feed堆在一起造成难以阅读。例如我的分类就是Blogs(朋友的Blog),Blogs-other(名人的Blog), tech(瘾科技和奇趣发现),等等等等。
  4、修改设置,记得设置所有的Newspaper都为“Show Images”,在全局设置中的“Image Options”中,选上“Offline mode”。前者的作用是在更新的时候显示出图片的图标,后者的作用是只要没有进行更新,每次进入Newspaper的时候不重新下载图片。
  5、每次更新的时候,记得在更新完内容、开始下载图片的时候,点左上角的小叉停止下载图片,然后在浏览的时候看到想要看的图片,点击图标,然后选择Download Image即可。

  Ok,现在你可以在手机上享受阅读RSS的乐趣了。我的Gregarius的地址:rss.williamgates.biz ,大家可以去看看效果。

  当然还有更好的办法,自己写一个聚合器,可以转换编码,可以针对不同的来源Feed做不同的处理,还可以下载图片到聚合器的服务器上并且修改大小来适应手机(可以避免163等的反盗链,又可以减少手机的流量)。我已经用C#写了一个并且成功运行了一年多了,但是服务器在我们校园网内,暂时无法从校外访问,我在校外也没有asp.net的服务器,所以也就没有使用这个办法。而且我的程序也有一些不足,其中我说的修改图片大小的功能还没做,对某些来源的处理不如Gregarius优秀,有的时候还要借用FeedBurner和FeedSky进行一次预转换才能完美读取。明年等我考过研,我会重新和完善这个程序,到时候也许我们就拥有更好的解决方案了。

Related posts:

  1. Directory Opus 联网验证被封证书后,清除安装痕迹的方法

3 Responses to “Gregarius+Resco Neeews打造Palm上的RSS阅读解决方案”

  1. 转载一篇RSS普及教程 | Says:

    [...]   4.如果你愿意,并且你有支持PHP的web空间,你也完全可以建一个只属于你自己的阅读器。关于这方面的内容,可以参照Williamgates的文章《Gregarius+Resco Neeews打造Palm上的RSS阅读解决方案》,这里面推荐了一个很好的自建阅读器的方案。 [...]

  2. lzhou Says:

    一直在找一个RSS聚合程序,最近找到了Gregarius,积下了很多疑问,在这里找到了一些答案,感谢

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">


LilyStudio & WordPress & N.Design Studio
Entries RSS Comments RSS Log in