我正在使用Feedzirra來解析我的RSS訂閱,它工作得非常好 - 在我的初始測試中,它的速度是FeedStateizer的兩倍。更重要的是,它有很好的包裝來檢查Feed中的更新條目。當我使用其飼料更新的方法,我遇到了一些問題:使用Feedzirra檢查更新的RSS訂閱
require 'feedzirra'
feed = Feedzirra::Feed.fetch_and_parse("http://feeds.feedburner.com/TechCrunch")
puts feed.etag #outputs the right tag
上面的代碼打印正確的ETag(Firebug的檢查)。現在,當我想檢查更新時,feedzirra會詢問您當前的etags,最後修改日期等等。當我給它正確的ETag時,它說沒有更新 - 這太好了。但是,如果我沒有指定一個ETag,它在抓取所有提要後不會抓取最新的ETag。這是一個問題,因爲如果更新發生並且我有一個陳舊的ETag,我將永遠無法在調用fetch_and_parse之前抓住當前的ETag - 浪費了另一個fetch。
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,因爲ETags經常爲Techcrunch更改。
我得到的輸出是:
true
#note the above line is blank (basically printing nil)
難道我做錯了什麼,並以任何方式不正確使用的功能呢?或者這是該程序的錯誤?有關如何查找更新的Feed的其他建議?
順便說一句,我也試過使用'最後修改日期'的值,它總是認爲即使日期與頭部響應相匹配,也有新的條目。
謝謝, -e
更新:在輸出我已經不正確地輸入了25空白線之上。我現在已經解決了。抱歉。