Feedzirra-如何获得更新的RSS提要



以下代码来自Feedzirra上的要点,用于从RSS提要中获取更新的内容:

feed = Feedzirra::Feed.fetch_and_parse(feed_url)
feed = Feedzirra::Feed.update(feed)
do_something_with_new_feed(feed.new_entries) if feed.updated?

我不明白Feedzirra怎么会知道这个提要已经更新了。我不能让它工作。为了知道,我必须将之前(几分钟或几小时前)返回的Feedzirra::Feed.fetch_and_parse(feed_url)Feed对象传递给Feedzirra::Feed.update,不是吗?如果我使用刚刚获取并解析的提要,它怎么知道它是否已经更新?

Feeds(您正在访问的站点)可以但不一定要维护一个或两个字段,以确定自上次访问以来它们是否发生了更改。这些是etag,最后一次修改。如果网站支持其中一个或两个,则在您访问提要时,它们将返回给您。您的模型应该为每个感兴趣的提要维护这些字段。Feedzirra::Feed.update使用它们来确定自上次访问以来提要是否已更新。这将允许Feedzirra::Feed.update提取自上次访问以来新的或更改的条目。

如果您既没有etag也没有上次修改的字段,要么是因为这是您的第一次访问,要么是由于网站没有提供这些字段,那么Feedzirra::Feed.fetch_and_parse会从网站中提取所有可用的条目。这对于第一次访问是有意义的。这对后续访问来说意义不大,但如果网站不支持它,你能做什么?

需要明确的是,Feedzirra::Feed.fetch_and_parse总是提取所有可用的条目。Feedzirra::Feed.update只提取自etag和/或上次修改日期以来新的或更改的条目。

条目还维护更新/发布日期。

最新更新