gpt4 book ai didi

ruby - 使用 Feedzirra 检查更新的 RSS 提要

转载 作者:太空宇宙 更新时间:2023-11-03 16:58:41 25 4
gpt4 key购买 nike

我正在使用 Feedzirra 来解析我的 RSS 提要,它运行良好——在我的初始测试中,它的速度是 Feed Normalizer 的两倍。更重要的是,它有很好的包装器,可以检查提要中的更新条目。当我使用它的 feed-update 方法时,我遇到了一些问题:

require 'feedzirra'

feed = Feedzirra::Feed.fetch_and_parse("http://feeds.feedburner.com/TechCrunch")
puts feed.etag #outputs the right tag

上面的代码打印出正确的 ETag(用 Firebug 检查)。现在,当我想检查更新时,feedzirra 会询问您当前的 etag、上次修改日期等。当我给它正确的 ETag 时,它说没有更新——这很好。但是,如果我不指定 ETag,它在抓取所有提要后不会抓取最新的 ETag。这是一个问题,因为如果发生更新并且我有一个陈旧的 ETag,我将永远无法在调用 fetch_and_parse 之前获取当前的 ETag - 浪费另一个获取。

feed_to_update = Feedzirra::Parser::Atom.new
feed_to_update.feed_url = "http://feeds.feedburner.com/TechCrunch"
feed_to_update.etag = nil
feed_to_update.last_modified = nil

last_entry = Feedzirra::Parser::AtomEntry.new
last_entry.url = nil

feed_to_update.entries = [last_entry]

updated_feed = Feedzirra::Feed.update(feed_to_update)

puts updated_feed.updated?
puts updated_feed.etag

以上示例是作者文档的一部分的修改版本:http://gist.github.com/132671 .我还尝试提供以前的 ETag 值,但它没有得到更新——我在上面的代码中选择使用 nil,因为 Techcrunch 的 ETag 经常更改。

我得到的输出是:

true    

#note the above line is blank (basically printing nil)

我是不是做错了什么并且以任何方式不正确地使用了函数?或者这是程序的错误?关于如何查找更新的提要还有其他建议吗?

顺便说一句,我也试过只使用“last-modified-date”值,它总是认为有新条目,即使日期与 header 响应匹配也是如此。

谢谢,-e

更新:在输出中,我在空白行上方错误地输入了 25。我现在已经修好了。对不起。

最佳答案

我查看了源代码,发现 etag 没有正确更新。所以这似乎解决了它:

在下面一行之后(在 feed.rb 的 add_feed_to_multi() 中)

feed.update_from_feed(updated_feed) 

我添加了这一行:

feed.etag = updated_feed.etag 

我仍然没有找到解决 last_modified 问题的方法,但现在 etags 正在工作。

关于ruby - 使用 Feedzirra 检查更新的 RSS 提要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2174970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com